cronで簡易監視スクリプトを作る

はじめに

zabbixやcloudWatchのような”ちゃんとした監視”ではなく、本当にシンプルな値だけを監視して、敷地を超えた場合は通知のみしたいことがある。今回はdisk使用量のみを監視するスクリプトを作った。

設定

disk使用率は60%を超えた場合、通知する簡易シェル

$ df -h
ファイルシス   サイズ  使用  残り 使用% マウント位置
devtmpfs         484M   56K  484M    1% /dev
tmpfs            494M     0  494M    0% /dev/shm
/dev/xvda1       493G  302G  191G   62% /

通知の部分は以下の記事を流用する。

https://tsukada.sumito.jp/2018/11/27/chatwork/

 

sshでserverにログインし、dfコマンドでxvda1をgrep、必要なところをawkで取得し、sedで%を削除。

その値をtestコマンドで比較し、true(閾値超え)であればchatworkへ通知する処理がこちら。

10 12 * * 1-5 test $(/usr/bin/ssh server df | /usr/bin/grep xvda1 | /usr/bin/awk '{print $5}' | /usr/bin/sed -e 's/\%//g') -gt 60 && sh /usr/local/src/server-disk.sh

単純にプロセスを監視して、プロセスが落ちてたら起動する処理はこちら

* * * * * ps ax |grep -v grep | grep -q sample.sh || sh /bin/sample.sh