Mackerelプラグインのckeck-logでファイルの存在チェックを追加してみた

今回は、Mackerelのログ監視用のプラグインcheck-logを利用して、ファイルの存在チェックの監視を追加できないか試してみました。

Mackerelプラグインcheck-logとは

Mackerelプラグインのcheck-logの利用方法について調べてみました。
参考にしたURLは以下の通りです。

利用可能なオプションとしては、以下の通りです。

オプション省略形説明初期値
–file-f監視対象ファイルのパスを指定(glob形式での指定可)
–pattern-p検出したいパターンを正規表現で指定 *1
–exclude-E検出から除外するパターンを正規表現で指定 *1
–warning-over-w検出パターンにマッチする行数が指定値を超えたらWarningアラートを発生
–critical-over-c検出パターンにマッチする行数が指定値を超えたらCriticalアラートを発生
–warning-level検出パターンで抽出した数値が指定値を超えたらWarningアラートを発生
–critical-level検出パターンで抽出した数値が指定値を超えたらCriticalアラートを発生
–return-rパターンにマッチしたログ行をアラートで通知する *2
–search-in-directory監視対象ファイルがあるディレクトリパスを指定(Windows環境において--file-patternと併用)
–file-pattern-F監視対象ファイルを正規表現で指定
–icase-i大小文字を区別せずにマッチングを行う
–state-dir-sStateファイルの保存先ディレクトリパスを指定
–no-stateStateファイルを使用せず全てのログを対象とする
–encoding監視対象ファイルの文字エンコーディングを指定
–missing監視対象ファイルが存在しなかった場合のアラートレベルを指定UNKNOWN
–check-firstファイルの初回チェック時に内容のチェックを行う *3
–suppress-pattern検出パターンをホスト詳細画面に表示しない

check-logプラグインは、ログ監視に利用されるプラグインです。
特定のログに特定のメッセージ(ERROR等)が出力された場合に検知する形が基本的な利用方法のようです。

ファイル存在有無については、「–missing」を利用して実現可能かと思います。
「–missing」オプションなしで、検知対象のファイルがない場合、ステータスは「UNKNOWN」で返ってきます。
これを「WARNING」に変更することで、WARNINGでアラート検知できるように設定し、ファイル存在有無の検知をしてみます。

Mackerelプラグインcheck-log〜設定方法〜

Mackerelの設定ファイル(/etc/mackerel-agent/mackerel-agent.conf)に、下記のプラグイン設定を追加します。

今回はテストファイル(/tmp/test.txt)の存在有無確認の設定を実施します。
「–missing」オプションで”WARNING”を指定します。

[plugin.checks.access_log]
command = ["check-log", "--file", "/tmp/test.txt", "--pattern", ".*", "--missing", "WARNING", "--suppress-pattern"]

設定反映のため、サービス再起動を実施します。

systemctl status mackerel-agent.service
systemctl restart mackerel-agent.service

Mackerelプラグインcheck-log〜動作確認〜

設定後、正常にファイルの存在確認を検知できるかの動作確認を行います。

最初に、/tmp/test.txtが存在しない状態で、アラートが発生するか確認します。
以下の通り、サーバ上はファイルがない状態です。

[root@test ~]# ls -l /tmp/test.txt
ls: '/tmp/test.txt' にアクセスできません: そのようなファイルやディレクトリはありません
[root@test ~]#

しばらく経って、Mackerel上で、正常に、アラートが発生しました。

次に、/tmp/test.txtを作成します。

[root@test ~]# touch /tmp/test.txt
[root@test ~]# ls -l /tmp/test.txt
-rw-r--r-- 1 root root 0 12月 30 15:00 /tmp/test.txt
[root@test ~]#

しばらく経って、Mackerel上で、アラートが解消されました。

まとめ

今回は、Mackerelプラグインのckeck-logでファイルの存在チェックを検知できないか検証してみました。

ご参考になれば、幸いです。

以上になります。ありがとうございました。

コメント

タイトルとURLをコピーしました