シェルスクリプトで簡易の死活監視をしてSlackに通知する
Raspberry Pi上で動かしているサービスで簡易の死活監視がしたかったので以下のシェルスクリプトを作った。
ヘルスチェックURLが[[{"message":"ok"}]]を返さなかった場合はSlackにアラート通知を飛ばすようになっている。
#!/bin/bash
health=`/usr/bin/curl -s 'https://localhost:3000/'`
if [ "$health" != '{"message":"ok"}' ]; then
echo $health
data=$(cat << EOS
{
"attachments":[
{
"fallback":"xxx service is down",
"pretext":"",
"color":"#D00000",
"fields":[
{
"title":"xxx service is down",
"value": "please check this"
},
]
}
]
}
EOS
)
/usr/bin/curl -X POST -H 'Content-type: application/json' --data "${data}" 'https://hooks.slack.com/services/WEBHOOK_TOKEN'
fi
cronで5分おきにスクリプトを実行するようにすれば簡易の死活監視のできあがり。
*/5 * * * * $HOME/health_alert/xxx-service.sh
RaspberryPi自体が落ちた時はどうしようもないけど簡易なので良しとする。