Zabbix2.4에서 트랩의 깨짐 방지 (zabbix_trap_receiver.pl 버전)
3405 단어 zabbix
하고 싶은 일
일본어 버전 vCenter에서 SNMPTRAP 깨짐을 고치십시오.
이런 느낌・・・
대응전(16진수+스페이스의 열)
대응 후(일본어로!!)
제한사항
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진수를 바이너리로 대체할 뿐.
마지막으로
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진수를 바이너리로 대체할 뿐.
마지막으로
기존 프로그램 "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진수를 바이너리로 대체할 뿐.
마지막으로
편지와는 상관없지만,
SNMPTRAP의 소리 처리하는 경우는 SNMPTT가 매우 편리하다고 생각합니다.
Reference
이 문제에 관하여(Zabbix2.4에서 트랩의 깨짐 방지 (zabbix_trap_receiver.pl 버전)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/mishikawan/items/1f8eaa7cba5ef8bb4799텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)