fluentdでCloudWatchのELBのメトリクスをZABBIXに渡す
March 21, 2013
ELBのCloudWatchにあるメトリクスをZABBIXで取得するためにfluentdを利用しました。
これでELBのアラートの設定もZABBIXで行えるので、通知の一元化が行えます。
もちろんZABBIXでグラフにすることもできます。
fluent-plugin-zabbix
fluent-plugin-cloudwatch
この2つのfluentdプラグインを使います。
td-agent.conf
<source>
type cloudwatch
tag cloudwatch
aws_key_id YOUR_AWS_KEY_ID
aws_sec_key YOUR_AWS_SECRET/KE
cw_endpoint monitoring.ap-northeast-1.amazonaws.com
namespace AWS/ELB
metric_name HealthyHostCount,HTTPCode_Backend_2XX,HTTPCode_Backend_3XX,HTTPCode_Backend_4XX,HTTPCode_Backend_5XX,HTTPCode_ELB_4XX,Latency,RequestCount,UnHealthyHostCount
dimensions_name LoadBalancerName
dimensions_value YOUR_ELB_NAME
</source>
<match cloudwatch>
type copy
<store>
type zabbix
zabbix_server ZABBIX SERVER IP
host [ZABBIXに設定するホスト名。なんでもいい(hoge-elb)]
name_keys HealthyHostCount, HTTPCode_Backend_2XX, HTTPCode_Backend_3XX, HTTPCode_Backend_4XX, HTTPCode_Backend_5XX, HTTPCode_ELB_4XX, Latency, RequestCount, UnHealthyHostCount
add_key_prefix cloudwatch
</store>
</match>
ZABBIXの設定
ホスト名は
[ZABBIXに設定するホスト名。なんでもいい(hoge-elb)]
で指定したものを。
こんな感じでアイテムを設定します。
- キー:cloudwatch.HealthyHostCount
- データ型:整数とか浮動小数点型とか
- タイプ:ZABBIX Trapper
トリガーはこんな感じでUnHealthyHostが0よりも大きければwarningを
みたいな監視が行えるようになります。
LatencyやRequestCountなんかもグラフにできるので
良い感じっぽいです。
画像小さいのウケますね