こんばんは俺です。最近SensuにPagerDuty handlerを導入して、PJに投下中です。
PagerDuty handlerは下記URLに記載されているとおりに導入できます。
Sensu Integration Guide – PagerDuty
ただ今回PagerDuty handlerを導入したsensu serverは0.12を使っており、
これが古すぎたためハマったので、手順を残しておきます。
ハマリポイントを三行以内で
- 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
以上です。