check-plugin を使ってログ監視を試してみます。公式に詳しい説明があります。
check-log.conf
必須オプションは対象ファイルと検索文字列です。
[plugin.checks.test-log] command = "/usr/local/bin/check-log --file /var/log/messages --pattern error"
複数行で記載する場合は、コマンドをシングルクォート3つで囲みます。
[plugin.checks.test-log] command = ''' /usr/local/bin/check-log --file /var/log/messages --pattern 'error' --warning-over 3 --critical-over 10 --return '''
オプション
組み合わせる事で様々な要件に対応できます。
file と file-pattern は併用可能なので、1コマンドで複数ファイルを対象とするような使い方も可能なようです。 尚、複数 file 指定は後勝ちなので、単一ファイル2つというような使い方は不可です。
オプション | ロングオプション | 必須 | 説明 |
---|---|---|---|
-f | –file | ◯ | 監視対象ログファイルパス |
-F | –file-pattern | 複数ファイル指定 | |
-p | –pattern | ◯ | 検索文字列 |
-E | –exclude | 除外文字列 | |
-w | –warning-over | WARNING閾値(件数/分) | |
-c | –cretical-over | CRITICAL閾値(件数/分) | |
-warning-level | |||
–critical-level | |||
-r | –return | エラー行通知 | |
-i | –icase | 大文字小文字を区別しない | |
-s | –state-dir | ステートファイル保存場所(デフォルト:/var/mackerel-cache/check-log) | |
–no-state | ステートファイル未使用(ログファイル全体を読む) |
仕様
公式記載の内容に沿って確認します。
間隔
ログのチェックは1分ごとにおこなわれ、前回チェックした行はスキップされます。
- ステートファイルにログファイルのバイト数を保持し、以降の行をチェック
return オプション
–return オプションを付加することで、エラー行が出力され、その内容がMackerelに送信されます。
送信内容のサイズが大きい場合、表示が切り詰められることがあります。
- マルチバイト(日本語)対応
- サイズ制限は約 1,000 bytes?
- 行数にも関係がある模様 (3行検知時:約2,000 bytes / 21行検知時:約1,000 bytes を確認)
- 複数行検知された場合、検知順にサイズ制限まで複数行通知
return 無し
return 有り
サイズ制限による切り捨て
warning-over | critical-over オプション
設定値より多くエラー行が検出された場合にwarning
設定値より多くエラー行が検出された場合にcritical
- 設定値より多く
warning-over 5
の場合、6行検知すると通知
Warning例
一つのログに対して複数のチェック監視を設定
–state-dir を指定して、別の場所にステートファイルを保存するようにして下さい。
- conf例
- plugin.checks.〜 部分を変える必要有り
[plugin.checks.test-log] command = "/usr/local/bin/check-log --file /var/log/messages --pattern error" [plugin.checks.test-log2] command = "/usr/local/bin/check-log --file /var/log/messages --pattern fatal" --state-dir /var/mackerel-cache/check-log2
- 上記例の場合、ステートファイルが以下のように格納される
- var/mackerel-cache/check-log/var/log/messages
- /var/mackerel-cache/check-log2/var/log/messages
復旧通知について
必ず復旧通知がされてしまうようなのですが、復旧通知を無効にする設定箇所が見つけられていません。
通知グループを設定する際の監視ルールとしては表示されますが、監視ルールの設定ページには追加されていません。 そもそも復旧通知の有無が設定できないようなので仕様なのでしょうか。