Zabbixバージョン2.2で日本語のTrapが文字化けする件について

初めまして。

掲題の件についてご質問させて頂きたく投稿いたします。

現在、日本語のTrapをZabbixで受けた際、snmpdでUTF-8の文字コードを
正しく受け取ることができず、16進数に文字化けして受信してしまいます。

バージョン1.Xであればsnmptrap.shを修正することで
解消するという事例も見つけることができたのですが、
2.xよりTrap受信方法が大きく変わっているようで
snmptrap.shではなくsnmpttに置き換わっており、その
方法を試すことができない状況です。

詳しく調べてみると、ソースコード内にsnmptrap.shが
存在するようで、もしかするとそちらを使用し同様の
結果が得られるのではと思ったのですが、具体的に
どのようにすればよいかわからず苦慮しております。

もしお分かりの方がいらっしゃれば、上記について
ご教示頂けますと幸いです。

以上、よろしくお願いいたします。

コメント表示オプション

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

こんにちは。

1.8 のときと同様の方法でもできますよ。

(1) snmptrapd.conf はこんな感じ(パスは適当に変更)。
  authCommunity log,execute,net public
  traphandle default /bin/bash /home/zabbix/bin/snmptrap.sh

(2) snmptrap.sh 内では最終的に
  zabbix_sender -z Zabbixサーバーのアドレス(※) -p 10051 -s ホスト名 -k アイテムのキー -o "値"
というコマンドを実行すればいいので、snmptrap.sh 内の該当する部分で、各引数の値が適切になっていることを確認する。
※名前解決できるならホスト名でもいい。

(3) Zabbix でアイテムを設定する。
アイテムを設定するホストは -s で指定したホスト、アイテムのタイプは Zabbixトラッパー、キーは -k で指定したもの。(※)
※データ型は 文字列(255文字まで) または テキスト(文字数制限なし) だったと思うんですが、それでよかったですよね?>詳しい方々

ここが割と近いことをやっているようです。
http://cuturn2460.hatenablog.com/entry/20130225/1361763933

ユーザー うちだ店長 の写真

heyaさん

早々のご連絡ありがとうございます。(大変助かります!)
ご教示頂いた内容で稼働テストしてみたいと思います。
結果はまたご連絡いたします。

以上、よろしくお願いいたします。

ユーザー KAZ の写真

うちださん

snmpの仕様です。
snmpのプロトコルは1バイト文字以外は16進に変換する仕様になっています。

なので、snmpttでHEX-String受けたら16進文字列 -> 16進変換すれば良いです。
ただし、16進にしても文字コードがUTF-8でないとZabbixは対応できないので届いた文字コードが何なのかも分からないといけません。
UTF-8以外ならUTF-8に変換が必要です。