zabbix2.2.9のActiveCheckができたり、できなかったりする。

お世話になります。

zabbix2.2.9のActiveCheckができたり、できなかったりする。現象が発生しています。
zabbixサーバーログは以下です。

8961:20150731:233518.319 item "ipgw01:log[D:\ipgw\log\apmessenger.log,@log_message_ap,EUC-JP]" became supported
8961:20150731:2 33634.493 item "ipgw01:log[D:\ipgw\log\apmessenger.log,@log_message_ap,EUC-JP]" became not supported: ZBX_NOTSUPPORTED
8959:20150731:233655.910 item "ipgw01:log[D:\ipgw\log\apmessenger.log,@log_message_ap,EUC-JP]" became supported
8961:20150731:233835.831 item "ipgw01:log[D:\ipgw\log\apmessenger.log,@log_message_ap,EUC-JP]" became not supported: ZBX_NOTSUPPORTED
8962:20150731:233840.853 item "ipgw01:log[D:\ipgw\log\apmessenger.log,@log_message_ap,EUC-JP]" became supported

agent側には、エラーは出ていませんでした。

常に、ログがあるアイテムは、見えているのですが、そうでないアイテムはデータ取得不可となります。
回避方法や調査について、ご教授ください。

コメント表示オプション

お好みのコメント表示方法を選び「設定の保存」をクリックすると変更が反映されます。
ユーザー TNK の写真

ログファイル自体がそのディレクトリからなくなるようなことはあ
りませんか?

ログ監視の機能でログファイルを開こうとしたときに、ファイル自
体がないと取得不可の状態になります。
空でいいので、ファイル自体は常に存在するようにしてみてくださ
い。

ユーザー k2k の写真

TNKさん

連絡ありがとうございます。

>ログファイル自体がそのディレクトリからなくなるようなことはありませんか?

ファイルは存在しているのですが、新しいログ発生で検知しますが
しばらくして、ステータスが 取得不可 となってしまいます。

タイムアウトする感じではあるのですが、ZABBIXサーバーから、ファイルが見えなくなる
現象です。(データ履歴はありますが、グレーアウトします。)

ユーザー TNK の写真

Zabbixエージェントの設定ファイル内のDebugLevelの値が0になっ
ていませんか?
4にするとログが出すぎるので、一時的に3などに設定してエージェ
ントを再起動して確認してみてください。
https://www.zabbix.com/documentation/2.2/jp/manual/appendix/config/zabbi...

ユーザー k2k の写真

TNKさん

連絡ありがとうございます。

一時的に DebugLevel=4 でログを取ってみましたが、文字コード的なエラーはない様でした。
Acticeチェックのキーは以下です。

 log[D:\SQLSERVER\MSSQL11.MSSQLSERVER\MSSQL\Log\ERRORLOG,@log_message_db]

正規表現の @log_message_db には、 エラー  文字列が含まれる にしていますが、取得不可になります。

ログを添付しますので、申し訳ありませんが、助言をお願いします。

ユーザー k2k の写真

追加情報ですが、日本語が含まれるため、Shift_JIS を記載してみましたが、ダメでした。

8961:20150804:224456.439 item "ipgw01:log[D:\test2.log.Shift_JIS,@log_message_ap]" became not supported: ZBX_NOTSUPPORTED
8961:20150804:224903.396 item "ipgw01:log[D:\SQLSERVER\MSSQL11.MSSQLSERVER\MSSQL\Log\ERRORLOG.Shift_JIS,@log_message_db]" became not supported: ZBX_NOTSUPPORTED

ユーザー TNK の写真

添付頂いたagentlog.txtを拝見すると、空行のデータを多数Zabbix
サーバ側に送信しているように見受けられます。

例えば、

 2672:20150804:230847.918 JSON before sending [{

の部分のJSON内のvalueが""になって空の状態が50行分です。

 2672:20150804:230852.054 JSON before sending [{

ではJSON内のvalueが""になって空の状態が20行分です。

2672:20150804:230857.148 JSON before sending [{

さらにJSON内のvalueが""になって空の状態が8行分です。

どのvalueも空で文字列が入っていません。
もしかしたら、空のデータが送られ続けていることが問題かもしれ
ません。

ざっと拝見した中では、さらに前のタイミングの、

 2672:20150804:230846.843 JSON before sending [{

の時の最初の行だけ、文字化けしたvalueになっているようです。

これらの時間帯に、

 D:\\SQLSERVER\\MSSQL11.MSSQLSERVER\\MSSQL\\Log\\ERRORLOG

にはどのような文字列が出力されていますか?

log[]やlogrt[]は、デフォルトだと文字コードがUTF-8であると仮
定して処理を行いますので、ログファイルに利用されている文字コ
ードが、Shift-JISであるならば、オプションできちんと指定して
ください。

続いて、別のホスト(ipgw01)で、

 log[D:\test2.log.Shift_JIS,@log_message_ap]

というアイテムを設定されたようですが、

 D:\test2.log.Shift_JIS

というファイル名なのですか?
それにしても、ファイルの中身の文字コードがShift-JISであるな
らば、オプションが指定されていないので正常に文字列を取得する
ことはできないと思います。

ですので、それぞれのキーを以下のように指定しなおしてみてくだ
さい。

log[D:\\SQLSERVER\\MSSQL11.MSSQLSERVER\\MSSQL\\Log\\ERRORLOG,,SHIFT_JIS]
log[D:\test2.log.Shift_JIS,@log_message_ap,SHIFT_JIS]

後者のファイル名が「D:\test2.log」であるならば、

log[D:\test2.log,@log_message_ap,SHIFT_JIS]

です。

ユーザー k2k の写真

TNKさん

連絡に感謝いたします。

さっそく、キーを以下に変更してみました。

log[D:\\SQLSERVER\\MSSQL11.MSSQLSERVER\\MSSQL\\Log\\ERRORLOG,,SHIFT_JIS]

以下は、検知している様ですが、大量は空白を検知し、まれに TMRk0 文字が入る形でした。

こちらはMS SQLのSERVERのERRORLOGログになるのですが、このログ監視(active)は、難しいでしょうか?
※イベントログのアプリケーション監視が可能も検討しています。

log[D:\test2.log,@log_message_ap,SHIFT_JIS]

こちらは、ダメでした。

単純に自分で、testfile.log を作成して、@log_message_ap に指定している ERROR 文字を
書き込み、キー を以下にしてあげる分にはうまくいきますので、やはり、文字コードやファイル形式に
問題がありそうです。

  log[D:\testfile.log,@log_message_ap] 

ユーザー TNK の写真

触れるMS SQLの環境が無いので確認できないのですが、通常のテキ
ストファイルで、後ろにどんどん追記されているタイプではないの
でしょうか?
通常のテキストファイルで追記されていくタイプのログファイルで
あれば、log[]などを利用して監視できます。

さっと試せたのはWindows 7の環境ですが、日本語も問題なくZabbix
側で受け取れています。
キーの指定は、

log[C:\Test\test.log,,SHIFT_JIS]

といった感じです。

echo 文字列 >> C:\Test\test.log

で追記したものを受け取れます。

環境を用意できるかわかりませんが、利用されているWindowsの
詳細なバージョンをお教えください。

あと、日本語版のWindowsですか?
英語版でランゲージパックとかで日本語対応させたものですか?

ユーザー k2k の写真

TNKさん

連絡ありがとうございます。

SHIFT_JIS は実現できました。ありがとうございました。

8961:20150806:172812.561 item "ipgw01:log[D:\ipgw\log\apmessenger.log,@log_message_ap,SHIFT_JIS]" became supported

>触れるMS SQLの環境が無いので確認できないのですが、通常のテキ
>ストファイルで、後ろにどんどん追記されているタイプではないの
>でしょうか?

WINDOWSは、20012です。 
MS SQLはERRORLOG はTXT形式ではないですが、MS SQLにてファイルロックをしていました。
そうなると難しいですか?

ユーザー TNK の写真

Zabbixのログ監視log[]やlogrt[]で監視できるのは、ファイルの最
後にデータが追加されていくテキストファイルにしか対応していま
せん。

同じファイルをループさせて書き込むようなものや、DBMSのデータ
ファイルのようなものは監視できません。

ERRORLOGがメモ帳で開くことができて平文で読めるようなもので、
かつログが最後の行に追加されるようなものであればZabbixで監視
できますが、そのようなフォーマットではないのではありませんか?
そうであるならば、そのファイルを直接監視することはできません。

もしも、MS SQLのエラーが、イベントログに出力されているのであ
れば、Zabbixのeventlog[]を利用してイベントログの内容を監視す
ることができます。

ユーザー k2k の写真

TNKさん

MS SQLのERRORLOGは、UTF-16 ということが解り、以下の感じで、ERRORLOGの監視ができました。

キー:

log[D:\SQLSERVER\MSSQL11.MSSQLSERVER\MSSQL\Log\ERRORLOG,,"UTF-16"]

しかし、最初に質問した他サーバーで、activeでログ監視はできるが、しばらくデータの書き込みがないと
ステータスが 取得不可 となる点は、未解決です。
監視そのものは、できているので、運用できなくはないです。

同じサーバーでも、常にログデーターが書き込みするサーバーのログファイル監視は問題なく、そうでないサーバーや
ログファイルにて、この現象がおきています。

agentのタイムアウトの調整あたりでしょうか?