web-dev-qa-db-ja.com

Graylog2サーバーへのログの送信

Graylog2サーバーをセットアップしましたが、すべてのログをメインサーバーからgraylogサーバーに送信しようとしています。メインサーバーのログを有効にし、*.* @logs.example.com:1337/etc/rsyslog.confに追加して、ログをgraylogサーバーに送信しています。

私が欲しいのは、Graylog2がすべてのApacheログ、システムログ(SSHログイン、拒否されたログイン用)、および監視する必要があるその他のログを収集することです。

Apacheログの場合、Railsログも必要です。私のサイトは/srv/www/にあり、構造はsitename.com/public_htmlsitename.com/logsです。Iサーバー上に多くのサイトがあり、すべてのエラーを表示し、それらからいくつかの素敵なグラフを作成する簡単な方法が欲しいので、なぜ私はGraylog2を使用したいのですか...

ログフォルダー内のログファイルはaccess.logおよびerror.logです。

Railsログはsitename.com/public_html/logにあります。これにはproduction.logが含まれます。

11
Dean Perry

これは古いですが、私は低/中トラフィックサイトで使用するこのメソッドを書くと思いました(トラフィックが多いサイトでうまく機能するかどうかはわかりません)。

Apacheでは、アクセスログをGELF形式にフォーマットするgraylog2_accessと呼ばれるCustomLog形式を定義し、ログデータをncを介してパイプし、GELFメッセージをGraylog2の入力に送信することにより、ログをGraylog2経由で送信します。

これが作成するカスタム形式(人間が読める形式)です。

{ 
 "version": "1.1",
 "Host": "%V",
 "short_message": "%r",
 "timestamp": %{%s}t,
 "level": 6,
 "_user_agent": "%{User-Agent}i",
 "_source_ip": "%a",
 "_duration_usec": %D,
 "_duration_sec": %T,
 "_request_size_byte": %O,
 "_http_status": %s,
 "_http_request_path": "%U",
 "_http_request": "%U%q",
 "_http_method": "%m",
 "_http_referer": "%{Referer}i"
}

Apache構成の場合、コピー/貼り付けバージョンは次のとおりです。

LogFormat "{ \"version\": \"1.1\", \"Host\": \"%V\", \"short_message\": \"%r\", \"timestamp\": %{%s}t, \"level\": 6, \"_user_agent\": \"%{User-Agent}i\", \"_source_ip\": \"%a\", \"_duration_usec\": %D, \"_duration_sec\": %T, \"_request_size_byte\": %O, \"_http_status\": %s, \"_http_request_path\": \"%U\", \"_http_request\": \"%U%q\", \"_http_method\": \"%m\", \"_http_referer\": \"%{Referer}i\" }" graylog2_access

次に、ホスト構成で:

CustomLog "|nc -u graylogserver 12201" graylog2_access
10
ETL

次の簡単なコマンドを使用して、ログファイルをgraylog2サーバーに送信することもできます。

tail -F -q $yourlogfile |   while read -r line ; do   echo "<7> $hostnamesendingthelog $line" | nc -w 1 -u $graylogserver 514;   done;

私は主にテスト目的でこれを使用して、私のログ形式がgraylog2での簡単なクエリに適合しているかどうかを判断しています。本番環境では、rsyslogやsyslog-ngを設定する必要はありません。

あなたはおそらくあなたのRailsログファイルをテールにし、何が起こるか見ることができます。

5
Pierig Le Saux

Apache2gelfスクリプト ここから

2
Anton

Graylog2は、標準syslogとGraylog拡張ログ形式(別名GELF)の2つの形式のログのみを受け入れます。ディスク上の任意のログは、ログを使用して、それをユーザーにとって便利な形式に変換するために、サードパーティのプロセスを必要とします。

Logstash を見てください。ほとんどの人は、ElasticSearchを使用してログファイルにインデックスを付けるツールと考えていますが、ディスク上の一連のファイルをテールにし、Graylogなどのログコンポーネントに送信できる汎用の「ログルーター」も含まれています。

2
natacado