fluentd+Elasticsearch+kibanaでnginxのログを視覚化する
nginxのアクセスログをfluentdを経由してElasticsearchに保存します。 ログの視覚化にはkibanaを使います。
こんな感じで500系のエラーの発生具合を時系列のグラフで見れるようにします。
仕組みについてはこちらの記事が参考になります
設定
Elasticsearchはyumでインストールして起動するだけです。 fluentdの設定は以下のようになります。
webサーバのアクセスログをfluentd集約側サーバに流す
nginxのログはltsv形式で出力しています。
<source> type tail time_format %d/%b/%Y:%H:%M:%S %z path /var/log/nginx/staging.web.access.log tag staging.nginx.access pos_file /var/lib/td-agent/staging.nginx.access.pos format ltsv </source> <match staging.nginx.access> type copy <store> type forward <server> host staging-log-1 port 24224 </server> <server> host staging-log-2 port 24224 standby </server> buffer_type file buffer_path /var/lib/td-agent/staging.nginx.access.buffer retry_limit 18 flush_interval 3s flush_at_shutdown true </store> </match>
fluentdに流れてきたログをElasticsearchに流し込む設定
プラグインをインストール
#/usr/lib64/fluent/ruby/bin/gem install fluent-plugin-elasticsearch
/etc/td-agent/td-agent.conf
<match staging.nginx.access> <store> index_name adminpack type_name nginx type elasticsearch include_tag_key true tag_key @log_name host localhost port 9200 logstash_format true retry_limit 18 flush_interval 3s flush_at_shutdown true </store> </match>