3

マシンのクラスター全体に分散しているログ ファイルを追跡して検索できる優れたツールを知っている人はいますか? 複数の Web サーバーとアプリ サーバーがあり、各サーバーのログを 1 つずつ調べるのは面倒です。

4

5 に答える 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 に答える