0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Zabbix2.4でトラップの文字化け回避(zabbix_trap_receiver.pl版)

Posted at

やりたいこと

日本語版vCenterからのSNMPTRAP文字化けを直す。
こんな感じ・・・

対応前(16進数+スペースの羅列)

image.png

対応後(日本語に!!)

image.png

制約事項

UTF8以外(シフトJIS等のマルチバイト)は対応できていません。

環境

SNMPTRAPの経由方法として「zabbix_trap_receiver.pl」を使用している環境

対処方法

既存プログラム「zabbix_trap_receiver.pl」をちょっぴり変更

元はZabbixソースコード2.4.8の「zabbix_trap_receiver.pl」を以下のように変更。
いつもながら適当ですが動くと思いますw。
PERLの正規表現のスマートな記述方法がわからず、ごちゃごちゃですいません。

zabbix_trap_receiver.pl
[localhost]# diff  zabbix-2.4.8/misc/snmptrap/zabbix_trap_receiver.pl /usr/local/bin/zabbix_trap_receiver.pl 
97c97,103
< 		printf OUTPUT_FILE "  %-30s type=%-2d value=%s\n", $x->[0], $x->[2], $x->[1];
---
> 		my $value = $x->[1];
> 		if( $value =~ s/^Hex-STRING: //) {
> 			$value =~ s/(\n|\r|\r\n)//g;
> 			$value =~ s/(..) /chr(hex($1))/ge;
> 			$value = "Hex-STRING: " . $value;
> 		}
> 		printf OUTPUT_FILE "  %-30s type=%-2d value=%s\n", $x->[0], $x->[2], $value;

変更箇所は、TRAP情報の型が"Hex-STRING"の時、文字列16進数をバイナリに置換するだけ。

最後に

  • SNMPTTを利用している場合の文字化け対応は、こっちを参照してください。

文字化けとは関係ないですが、
SNMPTRAPの鳴り分け処理する場合は、SNMPTTがとても便利だなと思います。

0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?