日: 2018年11月28日

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

    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