マシンのクラスター全体に分散しているログ ファイルを追跡して検索できる優れたツールを知っている人はいますか? 複数の Web サーバーとアプリ サーバーがあり、各サーバーのログを 1 つずつ調べるのは面倒です。
Nick
質問する
1486 次
5 に答える
1
Splunk は、ログ ファイルを集約して検索し、時間ごとのヒット数のグラフとして結果を表示するのに非常に効果的ですが、費用もかかります。最近、splunk に代わるオープンソースの Kibana について知りました。
于 2014-12-14T01:10:21.990 に答える
1
インストール/構成にどれだけの作業が必要かはわかりませんが、splunkについていくつか良いことを聞いたことがあります。YMMV。
于 2009-04-02T22:51:51.113 に答える
0
ファブリックを使用して、複数のホストを調整し、すべての結果をgrepすることができます。
$ fab -P -u 'USER' -p 'PASSWORD' --linewise -H host1,host2,host3 -- tail -f /path/to/my/log.log | grep ERROR
于 2013-02-07T17:52:07.727 に答える
0
これは、小さなシェル スクリプトで実現できます。
- パラメータを定義します。
machines=("user@address1" "user@address2" "user@address3")
log_files=("/path/to/application.log" "/path2/to2/application.log" "/path3/to3/application.log" "/path4/to4/application.log")
- すべてのマシンを追跡し、中断を待ちます。
#!/bin/bash
pids_arr=()
for ((i=0;i<${#machines[@]};++i)); do
ssh "${machines[$i]}" "tail -f ${log_files[$i]}" & pids_arr+=("$!")
done
pids="${pids_arr[*]}"
trap "kill -9 $pids" SIGINT SIGKILL
for pid in ${pids}; do wait $pid; done
trap - SIGINT SIGKILL
追加: ジョブ モニターのログを表示したくない場合は、次を使用できます。
job_mon=${-//[^m]/} ; set +m
(...)
sleep 0 ; if [[ -n "$job_mon" ]]; then set -m; else set +m; fi
于 2020-05-13T14:53:36.640 に答える