シェルスクリプトで簡易の死活監視をして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自体が落ちた時はどうしようもないけど簡易なので良しとする。

参考


Related #raspberry pi