share facebook facebook2 twitter menu hatena pocket slack

2016.05.30 MON

Mackerel事始め check-plugin ログ監視(動作確認)

WRITTEN BY大住 孝之

check-plugin を使ってログ監視の色々を確認してみました。

20160424150544

初回登録時

対象ログファイルの先頭から読まれます。
大量通知を避けるため、一度コマンド実行でステートファイル作成後にconfファイル有効化を行った方が安全だと思います。

ログファイルのパーミッション

mackerel-agent は root で動作しているため、syslogなどroot権限でのみ参照可能なログファイルについても、パーミッション変更は不要です。

$ ps -ef | grep [m]ackerel
root     17493     1  0 07:30 pts/0    00:00:04 /usr/local/bin/mackerel-agent --pidfile=/var/run/mackerel-agent.pid --root=/var/lib/mackerel-agent

大括弧”[]”検索

エラーレベルが大括弧で囲われているパターンを指定したい場合は、 大括弧前にバックスラッシュ””を付与します。 付与しないと囲われていない文字列も一致してしまいます。

  • “[error]”を検索したい場合
正:
--pattern '[error]'
誤:
--pattern '[error]'

agentエラーメッセージ

  • 必須オプション不足
# pattern無し
the required flag `-p, --pattern' was not specified
# file無し
LOG UNKNOWN: No log file specified
  • ログファイルが存在しない
LOG UNKNOWN: open /var/log/test.log: no such file or directory
  • 権限不足(手動実行での確認時)
writeByteToSkip failed: mkdir /var/mackerel-cache: permission denied
  • confのKey重複
    — plugin.checks.〜 部分を変えなかった場合にagentが起動失敗となる
failed to load config: Failed to load the config file: while loading included config file /etc/mackerel-agent/conf.d/check-log.conf: Near line 13 (last key parsed 'plugin.checks'): Key 'plugin.checks.test-log' has already been defined.
  • 設定ファイル誤り(parseは通っている)
    — 通知メッセージのステータスが UNKNOWN となる

単一ファイル指定(fileオプション)時のログローテーション時の動作

ログローテーション等でログファイルが上書き・新規作成された場合の挙動を確認します。
エラーログ等で普段はログ出力されず、出力された時に同時にファイル作成・ローテーションが行われるような処理の場合等を想定しています。

出力前サイズ > 出力後サイズ

  • ログローテーション等でファイルが初期化された場合等を想定
    — 正常に動作(通知される)

出力前サイズ = 出力後サイズ

  • ログローテーション等でファイルが初期化された場合等を想定
  • 且つ前後でサイズが同じ場合に誤動作しないか
    通知されない

通知されませんでした。 単一ファイル指定の場合サイズのみで判断となります。 発生する状況はあまり無いと思いますが、出力数が少ないログなどは注意が必要です。

出力前サイズ < 出力後サイズ

  • stacktrace が出力されるログファイル等でローテーション後の出力がローテーション前のサイズより大きくなる場合を想定
    — 出力前サイズ以前の出力部分に関しては通知されない
    — 出力前サイズ以降の出力部分に関しては正常に動作

追記と見做されます。 想定通りの動作ですが、ログ出力とローテーションの方式によって発生する可能性はあります。

オプションで回避

常に追記ではなく上書きされるようなログには no-state 、 ログ出力時にファイル作成されるようなログには file-pattern で回避可能と思います。

元記事はこちら

Mackerel事始め check-plugin ログ監視(動作確認)

大住 孝之

構築運用担当。 個性的な面々の中で無個性という個性を打ち出していこうと画策中。