Zabbix 2.2で、WindowsからZabbix_Senderで日本語文字列を送信してみる


Zabbix 2.2で、 WindowsからZabbix_Senderで日本語文字列(2バイト文字列)を含んだものを送信した場合、残念ながら文字化けします。

ZabbixSeverの内部では、UTF-8で管理されていますが、
Windowsの場合、基本的に文字列はShift-JIS(正確にはWindows-31J,MS932)になるため、
そのまま処理すると、文字化けすることになるようです。

試しに、NKF(Network Kanji Filter)で、SJISからUTF-8(BOM 無し)に変換してあげることで
正しくデータを送信できました。

必要なもの
・Zabbix_Sender.exe
Windows用Zabbix Agentに付属のもの。
zabbix_agent-1.8.15-1.JP_installer.exeでテスト

・nkf.exe nkf32.dll Windows用
http://www.vector.co.jp/soft/dl/win95/util/se295331.html

nkfwin\vc2005\win32(98,Me,NT,2000,XP,Vista,7)Windows-31J\内の
nkf32.exeを利用出来ます。

 

そのまま日本語文字列を送信した場合

すると、ZabbixServerには、以下のように取り込まれます(文字化けします)。

タイムスタンプ
2014/01/13 23:53:22 Windows?????{??

 

今度は文字コードをNKFを使用してSJISからUTF8(BOM無し)に変換して送信した場合

この場合として以下のように正しく取り込まれます。

タイムスタンプ
2014/01/13 23:53:57 Windowsから日本語を送信します

これを使えば、SNMPgetやSNMPTrap受信でも文字化けせずに取得できるかも・・・・・

そのうち試してみます。

 

ただ、SNMP関係の文字化けの問題点って、私の環境だと

  • 特定WindowsEventlogのSNMPTrap変換(EVNTWIN.exe)の受信
  • VMware(vCeneter)からのイベント発生時SNMPTrapメッセージ送信
  • WindowsのSNMPAgentの場所(Device location)や連絡先(Device contact details)に
    日本語文字列をセットされている場合のSNMP取得

の部分がおかしくなるぐらいなので、なんとか回避策が立てられそうです。

 

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です