AWS
fluentd
S3
elb
AmazonLinux

AWS fluentdでelbのログをElasticSearch Service のkibanaで可視化

More than 1 year has passed since last update.

ログサーバーを立ててkibanaで可視化したのでメモです。

前準備
・elasticsearch serviceの作成
・IAMユーザーとポリシー作成(ESへのアクセス、S3へのアクセス)
・ELBのログをs3に保存(自分は1時間ごとにs3に保存にしました。)

fluentd 設定

fluentdと使用するプラグイン インストール

#curl -L http://toolbelt.treasuredata.com/sh/install-redhat-td-agent2.sh | sudo sh
#td-agent-gem install fluent-plugin-elasticsearch
#td-agent-gem install fluent-plugin-elb-log
#vi /etc/td-agent/td-agent.conf

[]の中は例です。

td-agent.conf
<source>
  type elb_log
  region ap-northeast-1
  s3_bucketname [buket name] #elbのログが保存されているバケット指定
  s3_prefix [logs/elb-log] #ディレクトリを指定
  timestamp_file /tmp/elb_last_at.dat
  buf_file /tmp/fluentd-elblog.tmpfile
  refresh_interval  [3600] #ELBのログが入るのが1時間なので1時間ごとに更新する。
  tag elb.access.log
  access_key_id [XXXXXXXXXXXXXXXXXXXXX] #IAMユーザーのアクセスキー
  secret_access_key [XXXXXXXXXXXXXXXXXXXXXXX] #IAMユーザーのシークレットキー
</source>

<match elb.access.log>
    type elasticsearch
    hosts https://search-[domain].ap-northeast-1.es.amazonaws.com/
    type_name elb-access
    logstash_format true
    logstash_prefix elb-access-log
    flush_interval 10
</match>

権限を変更して起動

#touch /tmp/elb_last_at.dat
#chown td-agent:td-agent /tmp/elb_last_at.dat
#touch /tmp/fluentd-elblog.tmpfile
#chown td-agent:td-agent /tmp/fluentd-elblog.tmpfile
#/etc/init.d/td-agent start

kibanaを開いてindex patternに「elb-access-log*」でindexを作成する

問題

・古いelbログが削除されないのでたまっていくばかり。ttlというやらでローテートできるらしい。
ひとまずは、#curl -XDELETE https://search-[domain].ap-northeast-1.es.amazonaws.com/[index]
でログを削除できる。
その前にcurlコマンドで操作する場合にはaws configureコマンドでIAMをインスタンスに登録する必要あり。

・/var/log/td-agent/td-agent.logに「S3 Client error occurred: Access Denied」とエラー
IAMユーザーにはS3にアクセスできるように設定してあるし、ELBのログをS3からとってきているあたりアクセスできているかと…