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


11

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

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

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

あるフォルダのログ内のログファイルaccess.logerror.log

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


ここで質問は何ですか?rsyslogがインストールされている場合は、それを使用してRails / ApacheログをGraylog2(rsyslog.com/doc/imfile.html)に送信できます
多項式

これを試してみましたか?docs.graylog.org/en/1.2/pages/collector.html
zx1986

回答:


10

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

Apacheではgraylog2_access、アクセスログをGELF形式にフォーマットするというCustomLog形式を定義し、ncを介してログデータをパイプすることによりGraylog2を介してログを送信し、GELFメッセージを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

+1いいね!いずれかのシステムでこれを試す必要がありますが、代わりにエラーが発生します。
ヘンク14年

@Henk-エラーログのフォーマットを作成する場合は、お知らせください。まだ時間がかかりません。また、serverfault.com / questions / 582510 / …で、後で遭遇したことに関する情報を確認してください。
ETL 14年

5

次の簡単なコマンドを使用して、ログファイルを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ログファイルを追跡して、何が起こるかを確認できます。


この返事のシンプルさが気に入っています。簡単で、追加のツールはありません。ログファイルのタイムスタンプについて何をすべきかわかりません。おそらく何もする必要はなく、重要ではないでしょうか。
テキサスブロニウス

2

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

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


2
Rsyslogは簡単にログを読み取ることができます:rsyslog.com/doc/imfile.html
多項式

1
rsyslogは入力として他のファイルを使用できますが、logstashを使用すると、事前定義されたGrokの正規表現(logstash.net/docs/1.0.17/filters/grokを参照)を使用してログメッセージに構造を取得できるという利点があります。平文だけではありません。
joschi

syslog-ngはrsyslogと比較して、よりクリーンな構成でも同じことができます。loggly.com
support

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.