Sensu 0.12にPagerDuty handlerを導入するまでの道のり
こんばんは俺です。最近SensuにPagerDuty handlerを導入して、PJに投下中です。
PagerDuty handlerは下記URLに記載されているとおりに導入できます。
Sensu Integration Guide - PagerDuty
ただ今回PagerDuty handlerを導入したsensu serverは0.12を使っており、
これが古すぎたためハマったので、手順を残しておきます。
ハマリポイントを産業以内で
1.sensu-pluginのバージョンを1.0以上にしてPagerDuty handlerを導入する
以上終わり。
詳細
sensu-pluginのバージョンアップ
- PagerDuty handlerはsensu-pluginが1.0以上でなければ動きませんのでsensu-plugin1.0以上をインストールします
$ /opt/sensu/embedded/bin/gem list sensu-plugin *** LOCAL GEMS *** sensu-plugin (0.2.2) $ /opt/sensu/embedded/bin/gem install sensu-plugin $ /opt/sensu/embedded/bin/gem list sensu-plugin *** LOCAL GEMS *** sensu-plugin (1.1.0, 0.2.2)
handler定義作成
- /etc/sensu/conf.d/handlersに任意の名称でPagerDutyをkickする定義を記述します。
OKもPagerDutyで制御するときは severities に含めましょう。
{
"pagerduty": {
"api_key": "**************************"
},
"handlers": {
"hogehoge_pagerduty": {
"type": "pipe",
"command": "pagerduty.rb",
"severities": [
"warning",
"critical",
"unknown"
]
}
}
}
sensu-server/apiの再起動
再起動してハンドラを有効にします。
$ sudo service sensu-server restart $ sudo service sensu-api restart
以上でsensu serverの設定は完了です。
client設定例(Chef LWRP)
Chef LWRPでSensuの監視定義を管理しているのであれば、以下の通り
sensu serverで設定したハンドラ名をattributeなりrecipesの handlers に記述します
- attributes/default.rb
default.sensu.default_handlers = ["mail", "hogehoge_pagerduty"]
- recipes/default.rb
sensu_check "check_resource_cpu" do
command %{check-cpu.rb -w 80 -c 90}
standalone true
handlers node.sensu.default_handlers
interval node.sensu.check_interval
additional occurrences: node.sensu.check_occurrences
end
以上です。