すごい久しぶりにXymonについて書きます。
内容はタイトルそのままです。
目次
自作スクリプトについて
Xymon Clientはデフォルトでも十分使えますが、自分の環境によって多少イレギュラーな監視が必要な際に自作でスクリプトを作れます。
下のサイトで丁寧に解説がありますが、基本この通りやれば自作の監視スクリプトが作れます。こちらは特定のファイルがあった場合に、ファイルの中身を送信する監視っぽいです。
当方環境では特定のファイルが肥大している場合にアラートで教えて欲しいという要望があったので、自作することにしました。
ファイルサイズ監視スクリプトの作成
要件としてはこんな感じで作ります。
- 監視対象は/tmp/test
- 1Gbyte超えたらYellow、2Gbyte超えたらRed、3Gbyte超えたらファイルを削除
- 実行は5分に一回実行
/tmp/testの監視
まずはXymonに通知する機能だけをサイトから抜き出します。
実行ファイルは/usr/lib/xymon/client/ext/以下に作成します。各自環境で異なるかもや。。
#!/bin/sh COLUMN=filesize COLOR=green MSG="File size status:" # Tell Xymon about it $BB $BBDISP "status $MACHINE.$COLUMN $COLOR `date` ${MSG} " exit 0
これだけでとりあえずXymonの監視項目としては機能しそうです。
後はファイルサイズを取得して、ファイルサイズによってステータスとメッセージを分岐する機能を書きます。
#!/bin/sh COLUMN=filesize COLOR=green MSG="File size :" CHECKFILE="/tmp/test" if test -f $CHECKFILE; then FILESIZE=$(wc -c < $CHECKFILE) FILESIZE=`expr $FILESIZE` if test $FILESIZE -ge 3096000000 ; then rm -rf $CHECKFILE COLOR=clear MSG="${MSG} file delete. " elif test $FILESIZE -ge 2048000000 ; then COLOR=red MSG="${MSG} ${FILESIZE} " elif test $FILESIZE -ge 1024000000 ; then COLOR=yellow MSG="${MSG} ${FILESIZE} " else COLOR=green MSG="${MSG} ${FILESIZE} " fi else MSG="${MSG} File not exist. " fi # Tell Xymon about it $BB $BBDISP "status $MACHINE.$COLUMN $COLOR `date` ${MSG} " exit 0
作成したら、権限と所有者を変更しておいて下さい。
# chown xymon:xymon /usr/lib/xymon/client/ext/filesize.sh # chmod 700 /usr/lib/xymon/client/ext/filesize.sh
実行
後は5分毎に実行させます。
/usr/lib/xymon/client/etc/clientlaunch.cfg に以下を追記します。
[filesize] ENVFILE $XYMONCLIENTHOME/etc/xymonclient.cfg CMD $XYMONCLIENTHOME/ext/filesize.sh LOGFILE $XYMONCLIENTHOME/logs/filesize.log INTERVAL 5m
INTERVALを変更すると実行間隔を変更出来ます。
うまく実行出来ない場合は、LOGFILEに指定した場所にlogが吐かれるのでそちらを参照ください。
※これでOKかと思ったんですが、当然ですけどファイル削除はXymonの権限で消せるファイルじゃないとPermitの関係でエラーでますね…