share facebook facebook2 twitter menu hatena pocket slack

2014.04.18 FRI

sensu-chef cookbookとcommunity pluginsを使う際の注意点

WRITTEN BY山口 与力

cloudpack の ヤマグチです。

はい。

sensu-chef cookbookというものがございまして、名前のとおりChefを使ってSensuによる監視システムを構築しようという向きには大変便利なわけでございます。

このcookbookではREADME.mdにもあるように以下のようなLWRPを提供します。

sensu_handler "mailer-ses" do
type "pipe"
command "mailer-ses.rb"
severities ["ok", "warning", "critical"]
additional(
mail_from: "alert@example.com",
mail_to: "alert@example.com",
)
end

AWS SESでメール通知するハンドラの設定はこんな感じです。人間が手でJSONを書くという苦行に手を染めず、Ruby DSLで書けて大変にハッピーなわけです。

このDSLを含むrecipeをcookすると以下のようなJSONが/etc/sensu/conf.d/handlers/mailer-ses.jsonに置かれます。

{
"handlers": {
"mailer-ses": {
"type": "pipe",
"command": "mailer-ses.rb",
"severities": [
"ok",
"warning",
"critical"
],
"mail_from": "alert@example.com",
"mail_to": "alert@example.com"
}
}
}

ここでmailer-ses.rbのソースを見てみましょう。

settings['mailer-ses']['mail_to']

ここ。これ、上のLWRPで生成されたJSONではNoMethodErrorになっちゃいます。

こう書き換えましょう。

settings['handlers']['mailer-ses']['mail_to']

地味なハマりポイントでした。

こちらの記事はなかの人(ヤマグチ)監修のもと掲載しています。
元記事は、こちら