Graylog2+ElasticSearchによるログ可視化の方法(2)

2014年03月03日 23時48分

201403032348OELC00.png

サーバーセットアップ

サーバーをセットアップしただけでは、ログを収集することができませんので、サーバーに対して収集するログ(入力ソース)の登録を行います。
今回は、SYSLOGを入力ソースとして登録します。

  1. 管理画面へのログイン

    管理画面にログインし、画面上部のSystemタブを選択すると、システムの運用状況が表示されます。

    http://192.168.0.50:9000/
    
    201403032348OELC01.png
    201403032348OELC02.png
    201403032348OELC03.png

  2. 入力ソースの表示

    右に配置されたメニューから、Inputsを選択すると、graylog2クラスターへの入力ソースの登録画面が表示されますので、Syslog TCPを選択した後、Launch New Inputをクリックします。

    201403032348OELC04.png
    201403032348OELC05.png
  3. 入力ソースの登録

    入力ソース設定画面が表示されたら、Titleを入力し、Store full messageをチェックした後、Launchをクリックすると、入力ソースが登録されます。

    201403032348OELC06.png
    201403032348OELC07.png
  4. 待ち受けポートの確認

    入力ソースが登録できたら、待ち受けポートを確認します。

    $ netstat -an | grep -i tcp | grep ::514
    
    201403032348OELC08.png

    以上で、入力ソースの登録は終了です。

クライアントセットアップ

クライアントでは、SYSLOGをGraylog2サーバーに転送し、Apacheのアクセスログおよび、エラーログをSYSLOGに転送します。

  1. 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ログの転送
    
    201403032348OELC09.png
  2. SYSLOG再起動

    設定が終了したら、rsyslogを再起動します。

    $ sudo service rsyslog restart
    
    201403032348OELC10.png
  3. Apache設定

    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
    
    201403032348OELC11.png
    201403032348OELC12.png
  4. 設定のリロード

    設定が終了したら、設定をリロードします。

    $ sudo service httpd reload
    
    201403032348OELC13.png

    以上で、クライアントセットアップは終了です。

動作確認

ここまでの作業で、システムのセットアップが終了しましたので、動作確認を行います。

  1. SYSLOGへのログ出力

    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"
    
    201403032348OELC14.png

    ログ出力を6回繰り返しているのは、前回の記事のgraylog2-server設定において設定したelasticsearch_max_docs_per_indexの値がに設定されているためで、Graylog2では、この値を越えた段階でバッファリングされているログをクラスターに書き込みます。

  2. HTTPアクセスのログ出力

    Cygwinターミナルから、ab2コマンドを使用してクライアントにアクセスします。

    $ ab2 -n 100 -c 10 http://192.168.0.30/
    

    ここでは、同時接続数10、総接続数100としてクライアントにHTTPアクセスを行っています。

    201403032348OELC15.png
    201403032348OELC16.png
  3. クエリーによるログ確認

    Graylog2の管理画面にアクセスし、送信されたログを確認します。
    クエリーボックスに、TESTを入力すると該当するログが検索表示されます。

    201403032348OELC17.png
  4. タイムスケールによるログ確認

    クエリーボックスの上にあるタイムスケールを変更して、ログを検索します。
    ここでは、Search in the last 15 minutesを選択しています。

    201403032348OELC18.png

    以上で、システムが正常に動作していることが確認できます。