Xymonの監視スクリプトを自作する(ファイルサイズ)

お絵かき 技術 Linux

すごい久しぶりにXymonについて書きます。
内容はタイトルそのままです。


id=”目次”>目次

自作スクリプトについて

Xymon Clientはデフォルトでも十分使えますが、自分の環境によって多少イレギュラーな監視が必要な際に自作でスクリプトを作れます。
下のサイトで丁寧に解説がありますが、基本この通りやれば自作の監視スクリプトが作れます。こちらは特定のファイルがあった場合に、ファイルの中身を送信する監視っぽいです。

Xymon監視

当方環境では特定のファイルが肥大している場合にアラートで教えて欲しいという要望があったので、自作することにしました。

ファイルサイズ監視スクリプトの作成

要件としてはこんな感じで作ります。

  • 監視対象は/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の関係でエラーでますね…

【プロフィール】

【無音鈴鹿】
お絵かきが好きなエンジニアの成れの果て

Twitter


【広告】