Posted on Apr 22
Sensu から InfluxDB を扱えるようなので試してみるExtension not a handler と書かれていました…Extension を使ってみるAWS 上に構築したドキュメントは下記。
今回も Powered by Google 翻訳 だが、Extension は下記のようなもののようだ。
Sensu の EventMachine 内の処理で実行されるHandle や Mutate するのにオススメのようだInfluxDB 側で sensu というデータベースを作っておくソースコードは以下に公開されている。
ちなみに sensu から取り扱う場合には influxdb とかではなく influx と設定したりするので注意。
プラグインと同様にダウンロードして権限設定したいところだが、extensions にダウンロードする。
cd /etc/sensu/extensions
sudo wget https://raw.githubusercontent.com/lusis/sensu_influxdb_handler/master/influx.rb
sudo chmod 755 influx.db
まずは Metrics の Extension としての設定を /etc/sensu/conf.d 以下に metrics.json というファイル名で設置する。
{
"handlers": {
"metrics": {
"type": "set",
"handlers": [ "debug", "influx"]
}
}
}
次に Extension 自身の設定(InfluxDB のホストや認証情報等)を /etc/sensu/conf.d/influx.jsonに設定する。
{
"influx": {
"host": "localhost",
"port": "8086",
"user": "root",
"password": "root",
"database": "sensu"
//"strip_metric": "somevalue"
}
}
今回は Load Average のメトリクスを採りたいので以下のプラグインを利用する。
/etc/sensu/plugins/ 以下にダウンロードして権限を付ける。
wget -O /etc/sensu/plugins/load-metrics.rb https://raw.github.com/sensu/sensu-community-plugins/master/plugins/system/load-metrics.rb
chmod 755 /etc/sensu/plugins/load-metrics.rb
そして /etc/sensu/conf.d 以下に check_load.json というファイル名で以下を作成する。
{
"checks": {
"load_metrics": {
"type": "metric",
"handlers": ["influx"],
"command": "/etc/sensu/plugins/load-metrics.rb",
"subscribers": [
"test"
],
"interval": 10
}
}
}
設定が終わったら sensu-server を再起動する。
/etc/init.d/sensu-server restart
再起動すると以下のようなログが出力される。
{"timestamp":"2014-04-23T07:13:49.954990+0900","level":"info","message":"loaded extension","type":"handler","name":"influx","description":"outputs metrics to InfluxDB"}
また、正常にメトリクスを送っている場合には下記のようなログも出力される。
{"timestamp":"2014-04-23T07:14:54.290269+0900","level":"info","message":"handler extension output","extension":{"type":"extension","name":"influx"},"output":"InfluxDB: Handler finished"}
早速、InfluxDB の Data Interface からクエリを投げてみる。series は sensu で設定した check_load.json の load_metrics が定義されている。
また、下記の値が InfluxDB に登録されることになる。
以下のようなクエリを投げることでメトリクスが取得出来る。
以下のようなクエリを投げることでメトリクスが取得出来る。

実行すると…以下のようにグラフが表示された!

おお。
Grafana や Tasseo で見てみるinfluxdb-cli という CLI ツールがあるようなので試してみるInfluxDB に入ったデータをちゃんと見てみる2014 かっぱのほげふが