みんなのちからになりたい

コピペでブログラムつくっていきたい

fluentdでログを整形してElasticsearchに送ってやる方法

Kibanaでグラフ表示するまでよくわからない問題

プロの方はElasticsearchでみただけでわかるのかもしれないですけど、初心者なぼくとしてはKibanaでグラフ表示してみてなんだこりゃあってのが多くてつらいので、ログ整形がんばっていくという話です。

要は、これの続きです。

ginzanomama.hatenablog.com

ソリューション

すごく勉強になるページがあったので、これみてやっていきます。

qiita.com

fluentのプラグイン入れまくる

何に使うのかはよくわかってないけどあとで調べます。

  • fluent-plugin-file-alternative
  • fluent-plugin-parser
  • fluent-plugin-forest
  • fluent-plugin-amplifier-filter
  • fluent-plugin-numeric-monitor
  • fluent-plugin-growthforecast
  • fluent-plugin-rewrite
/opt/td-agent/embedded/bin/fluent-gem install fluent-plugin-file-alternative fluent-plugin-parser fluent-plugin-forest fluent-plugin-amplifier-filter fluent-plugin-numeric-monitor fluent-plugin-growthforecast fluent-plugin-rewrite

レスポンスタイムをミリ秒に

流れ的に言うと、Elasticsearchに入れる前にフィルタしてログ整形してElasticsearchに流すという感じのようです。

ざっくりこのように変更。

<source>
    # 入力に in_tail プラグインを指定
    type tail
    # 監視するログファイルのパスを指定
    path /var/log/httpd/access_log
    # ログにつけるタグを指定
#    tag apache.access
    tag apache.access_filter
    # 監視するファイルをどの行まで読み込んだかを記録するファイルの指定
    pos_file /var/log/td-agent/httpd-access_log.pos
    # ログの書式を指定
    #format apache2
    format /^(?<host>[^ ]*) [^ ]* (?<user>[^ ]*) \[(?<time>[^\]]*)\] "(?<method>\S+)(?: +(?<path>[^ ]*) +\S*)?" (?<status>[^ ]*) (?<size>[^ ]*)(?: "(?<referer>[^\"]*)" "(?<agent>[^\"]*)" (?<response_time>[^ ]*))?$/
    time_format %d/%b/%Y:%H:%M:%S %z
</source>

<match apache.access_filter.**>
  type amplifier_filter
  remove_prefix apache.access_filter
  add_prefix apache.access
  ratio      0.001
  key_names  response_time
</match>

<match apache.access>
    type elasticsearch
    type_name access_log
    host localhost
    port 9200

    logstash_format true
    logstash_prefix apache-log
    logstash_dateformat %Y%m%d
    include_tag_key true
    tag_key @log_name
    flush_interval 10s
</match>

確認すると

f:id:ginzanomama:20151224211218p:plain

うまくいったあ!

ここまでくればあとはなんとかなりそうです。

まとめ

fluentd、奥が深い。


高速スケーラブル検索エンジン ElasticSearch Server (アスキー書籍)

高速スケーラブル検索エンジン ElasticSearch Server (アスキー書籍)