はじめに
Graylog2+ElasticSearchによるログ可視化の方法(1)では、Graylog2サーバーのセットアップ方法について解説しました。今回は、ログ収集方法および、Graylog2クライアントのセットアップ方法について解説します。
2014年03月03日 23時48分
Graylog2+ElasticSearchによるログ可視化の方法(1)では、Graylog2サーバーのセットアップ方法について解説しました。今回は、ログ収集方法および、Graylog2クライアントのセットアップ方法について解説します。
前提条件は、前回の記事と同一です。
サーバーをセットアップしただけでは、ログを収集することができませんので、サーバーに対して収集するログ(入力ソース)の登録を行います。
今回は、SYSLOGを入力ソースとして登録します。
管理画面にログインし、画面上部のSystemタブを選択すると、システムの運用状況が表示されます。
http://192.168.0.50:9000/
右に配置されたメニューから、Inputsを選択すると、graylog2クラスターへの入力ソースの登録画面が表示されますので、Syslog TCPを選択した後、Launch New Inputをクリックします。
入力ソース設定画面が表示されたら、Titleを入力し、Store full messageをチェックした後、Launchをクリックすると、入力ソースが登録されます。
入力ソースが登録できたら、待ち受けポートを確認します。
$ netstat -an | grep -i tcp | grep ::514
以上で、入力ソースの登録は終了です。
クライアントでは、SYSLOGをGraylog2サーバーに転送し、Apacheのアクセスログおよび、エラーログをSYSLOGに転送します。
UDP/TCPのログを全てGraylog2サーバーに転送します。
$ sudo vi /etc/rsyslog.conf
$WorkDirectory /var/lib/rsyslog # where to place spool files $ActionQueueFileName fwdRule1 # unique name prefix for spool files $ActionQueueMaxDiskSpace 1g # 1gb space limit (use as much as possible) $ActionQueueSaveOnShutdown on # save messages to disk on shutdown $ActionQueueType LinkedList # run asynchronously $ActionResumeRetryCount -1 # infinite retries if host is down *.* @192.168.0.50:514 # UDPログの転送 *.* @@192.168.0.50:514 # TCPログの転送
設定が終了したら、rsyslogを再起動します。
$ sudo service rsyslog restart
httpd.confを修正して、アクセスログおよび、エラーログをSYSLOGに転送します。
これにより、該当のログが一旦ローカルのSYSLOGに転送された後、Graylog2サーバーに転送できます。
$ sudo vi /etc/httpd/conf/httpd.conf
ErrorLog syslog:local6 CustomLog "|/usr/bin/logger -t httpd -p local6.info" combined
設定が終了したら、設定をリロードします。
$ sudo service httpd reload
以上で、クライアントセットアップは終了です。
ここまでの作業で、システムのセットアップが終了しましたので、動作確認を行います。
loggerコマンドを使用して、テスト用のログを出力します。
$ logger -p kern.info "TEST 1" $ logger -p kern.info "TEST 2" $ logger -p kern.info "TEST 3" $ logger -p kern.info "TEST 4" $ logger -p kern.info "TEST 5" $ logger -p kern.info "TEST 6"
ログ出力を6回繰り返しているのは、前回の記事のgraylog2-server設定において設定したelasticsearch_max_docs_per_indexの値が5に設定されているためで、Graylog2では、この値を越えた段階でバッファリングされているログをクラスターに書き込みます。
Cygwinターミナルから、ab2コマンドを使用してクライアントにアクセスします。
$ ab2 -n 100 -c 10 http://192.168.0.30/
ここでは、同時接続数10、総接続数100としてクライアントにHTTPアクセスを行っています。
Graylog2の管理画面にアクセスし、送信されたログを確認します。
クエリーボックスに、TESTを入力すると該当するログが検索表示されます。
クエリーボックスの上にあるタイムスケールを変更して、ログを検索します。
ここでは、Search in the last 15 minutesを選択しています。
以上で、システムが正常に動作していることが確認できます。