はじめに
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