ログ監視における、取得したログが欠けている
いつも参考にさせて頂いてます。
事例等がありましたら、ご教授頂きたい事象があります。
Zabbix Server:2.0.4
Zabbix Agent:2.0.4
AIX にて、エージェントからアイテムとしてキーを
[log[/var/log/syslog.log,,,]]
のように設定し、特定文字列を検索した際のトリガーを設定してます。
先日、実機のログを確認したところ、トリガーに反応すべき文字列が書き込まれていたにも関わらず、Zabbix 上でトリガーが反応しておりませんでした。
Zabbix 上のアイテム値を確認したところ、ログの途中から保存されていることが分かりました。
例:
通常だと
Feb 11 10:00:00 root: AAA DATABASE ALERT [xxxx] |zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
という値が確認できますが、このタイミングのみ
[xxxx] |zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
と、ログの途中から値を取得できており、それより前にある文字列がアイテムとして取得できていないため、[ALERT]文字列でトリガーを反応させようとしても、反応しなかった状況でした。
このように、先頭から途中まで取得できている、と言った事象では無くログの途中から取得されているような事象や事例はありますでしょうか。
TNK - 投稿数: 4769
トリガーの設定がわからないので、あくまでも可能性ですが、アイ
テムに設定された取得間隔で取得しに行ったときに、ログのファイ
ルへの書き込みが中途半端な状態で、Zabbixエージェントがファイ
ルからデータを読み込んだら、
のうち、
までしか書き込まれておらず、そこまで読み込んでしまって、次の
タイミングで、
を読み込んだ可能性が考えられます。
ログを出力する側がログ出力後にファイルへの出力同期を行ってい
なかったり、エージェントの監視間隔が短い場合に発生する可能性
は考えられるかもしれません。
# 私が管理している環境では今のところ発生していませんが。
ログ出力側で、きちんと行単位で強制的に出力させるような改善を
行うことはできますか?
また、監視間隔はどの程度に設定されていますか?
10秒未満であった場合は、10秒以上に変更することで発生頻度は下
げられると思います。
あとは、常にファイルの最後に追記するタイプではなく、固定ファ
イルサイズのログファイルで、ファイル内の書き込み場所が、最後
まで来たら最初から書き込むようなログファイルですと、log[]で
は監視できないと思います。
ちなみに、ログファイルのローテーションがある場合は、log[]よ
りもlogrt[]を利用した方が、監視間隔内でローテーションが行わ
れた場合でも、1つ前のログファイルだと思われるファイルの以前
読み込んだ場所以降からログファイルを処理するので、ローテーシ
ョン時の取りこぼしを防ぐことができます。
koji.bz - 投稿数: 20
TNK 様
コメント、ありがとうございます。
> ログ出力側で、きちんと行単位で強制的に出力させるような改善を
行うことはできますか?
→こちらの件ですが、この改善ができれば、今回のようなエラーはなくなると思われます。
確認してみます。
> また、監視間隔はどの程度に設定されていますか?
→10 秒としてます。
> ちなみに、ログファイルのローテーションがある場合は、log[]よ
りもlogrt[]を利用した方が
→ヘルプを確認しました。
ローテーションがあったはずですので、こちらも合わせて確認します。
本エラー後には、一度も同じような現象が発生していないため、再現性がなく、困惑しておりました。
ありがとうございます。