ログサーバーを立てて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からとってきているあたりアクセスできているかと…