logrt[]で不明な値を検知してしまう
いつもお世話になっております。
ログ監視で、不明な文字列を検知してしまう事象が発生し、頭を悩ませております。
(http://www.zabbix.jp/node/2805のログ監視で、問題解決後に発生した別障害となります。
上記スレッドでお世話になった方々には、心より御礼を申し上げます。)
サーバ側のOSはCentOS6.5、zabbixサーバはzabbix-server-2.2.0-1、
エージェント側はCentOS5.6、zabbixエージェントはzabbix-agent-2.2.0-2.el5を使用しています。
webサーバのログファイルである/var/xxx_xxxx_xxx/logs/ssl_error_logに何か出力が
あれば検知する目的で、監視間隔86400秒(24時間)で監視を行っております。
(パス名は一部伏せさせて頂きます。)
ssl_error_logは毎日9:00にローテートするため、直近24時間分を見るためには、
ssl_error_logとssl_error_log.1を巡回すれば良い事になりますので、
はじめにアイテムをlogrt[/var/xxx_xxxx_xxx/logs/ssl_error_log.*]として設定し、
16:43:19から巡回を行いましたが、下記のように「?」を含む不明な文字列が2個、
余分に検出されてしまいました。
---------------------------------------
タイムスタンプ ローカル時間 値
2014/07/08 16:43:19 - test07080921
2014/07/08 16:43:19 - ??9&HCS$???? ←(不明ログ)
2014/07/08 16:43:19 - ? ←
2014/07/08 16:43:19 - test07071820
---------------------------------------
※値「testMMDDhhmm」のものは、検知させるために自分で直接書き込んだテストログとなります。
/var/xxx_xxxx_xxx/logs/には、ssl_error_logとssl_error_log.1のみ
解凍された状態で保存され、ssl_error_log.2.gz以降は圧縮されております。
そこで、圧縮ファイルにも巡回しようとしてしまっている事が原因かも知れないと考え、
logrt[/var/xxx_xxxx_xxx/logs/ssl_error_(log|log.1)]とパスの正規表現を変更
したものも作成し、同時に走らせているのですが、両方とも不明なログを2個ずつ
検知してしまった状況となります。
---------------------------------------
2014/07/09 16:43:19 - test07091343
2014/07/09 16:43:19 - test07090941
2014/07/09 16:43:19 - test07090941
2014/07/09 16:43:19 - test07090940
2014/07/09 16:43:19 - ?0 ←
2014/07/09 16:43:19 - ? ←
2014/07/09 16:43:19 - test07081907
---------------------------------------
翌日は、テストログを書き込まずに巡回時間の16:43:19を迎えたのですが、
不明ログ(今回は1個でした)を採取し、判定としてはダウン扱いとなってしまっています。
---------------------------------------
2014/07/10 16:43:19 - ? ←
---------------------------------------
似たような経験をお持ちの方、何か原因や対策をご存じの方いらっしゃいましたら、
ご教示頂けませんでしょうか。
TNK - 投稿数: 4769
logrt[]を利用する場合、引数で指定するファイル名の最後に明示
的に「$」を付けておかないと、同じ名前で始まるファイルがあれば
読み込んでしまったと思うので、圧縮されたログファイルを読み込
んでしまっているかもしれません。
ファイル名が明確になっているのであれば、
・ファイル名の最後に「$」を付加する
・ログファイルを圧縮しない
・圧縮するログファイルは他のディレクトリに移動させる
のうちいずれかの方法をとってみてはいかがでしょうか。
ryo_k - 投稿数: 13
TNKさん
ryo_kです。いつもコメント有難うございます。
やはり、圧縮ファイルを読み込んでしまっている可能性ありますよね。
ログローテートの運用変更は、サーバ管理者の許可が要りますので、
まず、logrt[/var/xxx_xxxx_xxx/logs/ssl_error_(log$|log.1$)]から試してみます。
それでもダメなら、圧縮ファイルを一度別の階層へ移して検証してみようと思います。
ryo_k - 投稿数: 13
TNKさん
お世話になります。ryo_kです。
本障害のその後ですが、管理者の許可を得て、同じディレクトリにある同名の圧縮
ファイル(ssl_error_log.*.gz)を一時的に/tmpへ移動し、Zabbixの巡回時間を迎えた
ところ、不明ログを検知しない事が確認できました。
TNKさんの仰る通り、圧縮ファイルを読み込んでしまっている説が濃厚となってきま
したので、一旦圧縮ログをディレクトリへ戻し、
logrt[/var/xxx_xxxx_xxx/logs/ssl_error_(log$|log.1$)]と、元の
logrt[/var/xxx_xxxx_xxx/logs/ssl_error_(log|log.1)]を同時に走らせて翌日の巡
回を迎えたところ、前者には問題なく、後者のみに不明ログを検知しました!
お陰様で、後者のアイテムを使用し、ようやく運用開始にこぎつける事ができました。
本当に感謝しております。ありがとうございましたm(__)m