シェルスクリプトを利用して、logmonで除外キーワードを設定

2018-08-29

logmonでの除外キーワードを設定する

logmonのログ監視では、指定した文字列のみヒットするとメールを送付する、任意のシェルスクリプトを実行するなどのアクションが実行できます。

※ logmonのインストール方法は「logmonでログ監視 」を参照

除外キーワードを利用してのログ監視ですが、以前の記事(logmonでの除外キーワード)でも書きましたが、設定ファイルでの除外キーワードの設定がなくlogmonでは特定の文字列を除外してログ監視はできません。

但し、ログ監視で特定の文字列を検知した場合に、一旦のその内容をファイルに出力し任意のシェルスクリプトを利用してログ監視すれば可能です

シェルスクリプトを利用して除外キーワードを設定してログ監視する

logmonで除外キーワードを設定してログ監視する場合はですが、以下のような流れなら除外キーワードを設定してログ監視ができます

  1. 特定の文字列を書き込まれると、その内容を別のファイルに出力する
  2. シェルスクリプトを実行され、出力されたファイルに除外キーワードがある場合は、その行を削除する
  3. ファイルが空ファイルじゃない場合は、任意のアドレスにメールする

特定の文字列を書き込まれるとファイルに出力され、シェルスクリプトを実行する必要があるので、logmon.confを編集します。

下記の設定では、「/var/log/messages」に「error|ERROR|fail|FAIL」の文字列が含まれると「/var/tmp/logmon.log」に出力されます。その後「/root/script/excluding_logmon_.sh」が実行されます。このシェルスクリプトで除外キーワードを含む場合の処理をしています

下記のシェルスクリプトでは、除外キーワードを設定してその行が含まれる場合は、sedコマンドでその行を削除しています。
その後、if [ ! -s ${LOGFILE} ]; でファイルの0バイト以上の場合で処理を分けています。
0バイトの場合はエラーメッセージを含まれていないので空ファイルを削除しています。
0バイトではない場合は、sedコマンドで除外キーワードを除外してもエラーメッセージが含まれているので、メール送信してからファイルを削除しています

logmon.confを編集して、シェルスクリプト等のを設定した場合は、logmonの再起動が必要なので再起動をおこないます

再起動後はloggerコマンドなどで、/var/log/messagesにエラーや除外キーワードを書き込みを行なって動作確認をおこないます

除外キーワードの場合はメール送信されなくて、errorなどの監視キーワードの場合はメール送信されればOKです

 

スポンサーリンク