ログ監視時、ログ格納パスに日本語が含まれる場合

お世話になっております。

Windowsのログを監視する設定をしたいのですが、
パスに日本語が含まれると以下のメッセージが出力され設定できません。
「アイテムキーのエラー: キーのフォーマットが正しくありません」

入力パスは以下です。
「C:\Documents and Settings\user\デスクトップ\Update\_log\.*.log」

何か設定方法はありますでしょうか?

agentバージョン:1.8.5
OS:Windows XP Professional

宜しくお願い致します。

コメント表示オプション

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

追記です。

日本語パスを含まないところに上記のパスへのショートカットを作成して、
ショートカットをパスに指定したのですが正常に監視ができませんでした。

ショートカットをパスに指定することは可能でしょうか?
可能な場合、どのように設定すればよろしいでしょうか?

宜しくお願い致します。

ユーザー kodai の写真

phpの設定でmbstring.func_overloadを無効(コメントアウト)してみてください。

ZABBIX-JPのRPMでインストールされた場合は、/etc/httpd/conf.d/zabbix.confで設定されています。

ユーザー smasa の写真

kodai様

ご回答ありがとうございます。
教えていただいた通りにphpの設定でmbstring.func_overloadをコメントアウトしたところ、
設定時にエラーは出力されなくなりました。

ところが、became not supported: ZBX_NOTSUPPORTEDのエラーが出力され値が出力されません。
日本語のパスを設定していない場合は正常に値が取得できます。

正常に値を取得するには何か設定が必要なのでしょうか?

宜しくお願い致します。

ユーザー kodai の写真

アイテムのキーにはどのような設定をされているでしょうか?また、Zabbixエージェントのログにはエラーログは出力されていないでしょうか?

Zabbixは内部的にUTF-8の文字列を使っています。アイテムのキー設定に日本語が含まれている場合にWindowsのエージェント上でエンコード変換が行われていないのかもしれません。

ユーザー smasa の写真

kodai様

早速のご回答ありがとうございます。

アイテムの設定は以下のようにしています。
logrt["C:\Documents and Settings\user\デスクトップ\Update\_log\.*.log",,"SHIFT_JIS",100]

また、エージェントのログには以下のメッセージが出力されていました。
Active check [logrt["C:\Documents and Settings\user\デスクトップ\Update\_log\.*.log",,"SHIFT_JIS",100]] is not supported. Disabled.

設定が間違えているのでしょうか。

宜しくお願い致します。

ユーザー kodai の写真

log[]のアイテムキーを使って試してみたところ、日本語が含まれるパスでも問題なく監視できました。

logrtを利用されているのでパス部分には正規表現の文字列として扱われるので、"\"(バックスラッシュ)がエスケープとして認識されているのだと思います。

バックスラッシュを指定する場合は、"\\"と2つ続けて設定してみてください。

ユーザー smasa の写真

kodai様

ご回答ありがとうございます。

パス指定部の"\"を"\\"として下記のように設定しました。
logrt["C:\\Documents and Settings\\user\\デスクトップ\\Update\\_log\\.*log",,"SHIFT_JIS",100]

が、値は取得できませんでした。
Agentのログには以下のように出力されていました。
ファイル名の指定の仕方が悪いのでしょうか?

----------------------------------------------------------
2856:20120104:113106.345 Sending [{
"request":"active checks",
"host":"hogehoge"}]
2856:20120104:113106.345 Before read
2856:20120104:113106.361 Got [{
"response":"success",
"data":[
{
"key":"logrt[\"C:\\Documents and Settings\\user\\デスクトップ\\Update\\_log\\.*log\",,\"SHIFT_JIS\",100]",
"delay":"60",
"lastlogsize":"0",
"mtime":"0"}]}]
2856:20120104:113106.361 In parse_list_of_checks()
2856:20120104:113106.361 In disable_all_metrics()
2856:20120104:113106.361 In add_check('logrt["C:\Documents and Settings\user\デスクトップ\Update\_log\.*log",,"SHIFT_JIS",100]', 60, 0, 0)
2856:20120104:113106.361 In process_active_checks('***.***.***.***',10051)
2856:20120104:113106.361 In process_logrt() filename [C:\Documents and Settings\user\デスクトップ\Update\_log\.*log] lastlogsize [0] mtime [0]
2856:20120104:113106.377 In split_filename() filename:'C:\Documents and Settings\user\デスクトップ\Update\_log\.*log'
2856:20120104:113106.377 split_filename() C:\Documents and Settings\user\デスクトップ\Update\_log\.*log
2856:20120104:113106.377 split_filename() ^
2856:20120104:113106.377 In split_string(): str [C:\Documents and Settings\user\デスクトップ\Update\_log\.*log] del [\.*log]
2856:20120104:113106.377 End split_string(): part1 [C:\Documents and Settings\user\デスクトップ\Update\_log\] part2 [.*log]
2856:20120104:113106.377 End split_filename() directory:'C:\Documents and Settings\user\デスクトップ\Update\_log\' format:'.*log'
2856:20120104:113106.377 cannot get entries from [C:\Documents and Settings\user\デスクトップ\Update\_log\] directory: [2] No such file or directory
2856:20120104:113106.377 Active check [logrt["C:\Documents and Settings\user\デスクトップ\Update\_log\.*log",,"SHIFT_JIS",100]] is not supported. Disabled.
2856:20120104:113106.392 In process_value() key:'Matsumura-Bussan:logrt["C:\Documents and Settings\user\デスクトップ\Update\_log\.*log",,"SHIFT_JIS",100]' value:'ZBX_NOTSUPPORTED'
2856:20120104:113106.392 In send_buffer() host:'***.***.***.***' port:10051 values:0/100
2856:20120104:113106.392 End of send_buffer():SUCCEED
2856:20120104:113106.392 Buffer: new element 0
2856:20120104:113106.392 End of process_value():SUCCEED
2856:20120104:113106.392 End of process_active_checks()
2856:20120104:113106.392 In get_min_nextcheck()
2856:20120104:113106.392 Sleeping for 1 second(s)
4148:20120104:113106.439 In collect_perfstat()
2856:20120104:113107.408 In send_buffer() host:'***.***.***.***' port:10051 values:1/100
2856:20120104:113107.424 JSON before sending [{
"request":"agent data",
"data":[
{
"host":"hogehoge",
"key":"logrt[\"C:\\Documents and Settings\\user\\デスクトップ\\Update\\_log\\.*log\",,\"SHIFT_JIS\",100]",
"value":"ZBX_NOTSUPPORTED",
"clock":1325644266}],
"clock":1325644267}]
4148:20120104:113107.455 In collect_perfstat()
2856:20120104:113107.455 JSON back [{
"response":"success",
"info":"Processed 1 Failed 0 Total 1 Seconds spent 0.000040"}]
2856:20120104:113107.455 In check_response() response:'{
"response":"success",
"info":"Processed 1 Failed 0 Total 1 Seconds spent 0.000040"}'
2856:20120104:113107.455 Info from server: Processed 1 Failed 0 Total 1 Seconds spent 0.000040
2856:20120104:113107.455 End of check_response():SUCCEED
2856:20120104:113107.455 OK
2856:20120104:113107.470 End of send_buffer():SUCCEED
2856:20120104:113107.470 Sleeping for 1 second(s)
----------------------------------------------------------

_logフォルダにあるファイル全てを監視対象としたいのですが、
どのように設定すればよろしいのでしょうか?

何度も質問してしまって申し訳ありません。
宜しくお願い致します。

ユーザー smasa の写真

ひとまずログ出力先フォルダをパスに日本語が含まれないところに変更することで対応しました。

ユーザー kodai の写真

試してみたのですが、以下の4パターンで(4)だけが取得できないようですね。

(1) logキー + 英語のみのパス
(2) logキー + 日本語を含むパス
(3) logrtキー + 英語のみのパス
(4) logrtキー + 日本語を含むパス

ソースはこれから調査しますが、いただいたログからするとwindows上のlogrtで日本語のディレクトリ取得に失敗しているように見えます。

また、パスの\(バックスラッシュ)はエスケープしなくても大丈夫なようでした。

ユーザー kodai の写真

本家BTSで同様の問題報告は見つからなかったので、新規に作成しておきました。
https://support.zabbix.com/browse/ZBX-4590

ユーザー smasa の写真

kodai様

ありがとうございます。
お手数をおかけします。