Как правильно настроить сбор Windows EventLog через SNMP? Настраиваю сбор логов Windows на Zabbix сервер через ловушки SNMP.
Настройки /etc/snmp/snmptrapd.confdisableAuthorization yes
perl do "/usr/local/bin/zabbix_trap_receiver.pl"
Настройки /usr/local/etc/zabbix_server.conf SNMPTrapperFile=/tmp/zabbix_traps.tmp
StartSNMPTrapper=1
Соответственно, используется стандартный скрипт на Perl.
Рассылка журнала на Windows сделана через evntwin.
Все вроде работает, но сообщения приходят в таком формате:16:16:35 2014/07/03 PDU INFO:
notificationtype TRAP
version 0
receivedfrom UDP: [10.0.XXX.XXX]:61082->[10.0.XXX.YYY]
errorstatus 0
messageid 0
community zabbix
transactionid 61
errorindex 0
requestid 0
VARBINDS:
iso.3.6.1.2.1.1.3.0 type=67 value=Timeticks: (2976282) 8:16:02.82
iso.3.6.1.6.3.1.1.4.1.0 type=6 value=OID: iso.3.6.1.4.1.311.1.13.1.23.83.101.114.118.105.99.101.32.67.111.110.116.114.111.108.32.77.97.110.97.103.101.114.0.1073748860
iso.3.6.1.4.1.311.1.13.1.9999.1.0 type=4 value=Hex-STRING: D1 EB F3 E6 E1 E0 20 22 CF EB E0 ED E8 F0 EE E2
F9 E8 EA 20 EA EB E0 F1 F1 EE E2 20 EC F3 EB FC
F2 E8 EC E5 E4 E8 E0 22 20 EF E5 F0 E5 F8 EB E0
20 E2 20 F1 EE F1 F2 EE FF ED E8 E5 20 CE F1 F2
E0 ED EE E2 EB E5 ED E0 2E 0D 0A
iso.3.6.1.4.1.311.1.13.1.9999.2.0 type=4 value=STRING: "Unknown"
iso.3.6.1.4.1.311.1.13.1.9999.3.0 type=4 value=STRING: "computer.domain.com"
iso.3.6.1.4.1.311.1.13.1.9999.4.0 type=4 value=STRING: "4"
iso.3.6.1.4.1.311.1.13.1.9999.5.0 type=4 value=STRING: "0"
iso.3.6.1.4.1.311.1.13.1.9999.6.0 type=4 value=Hex-STRING: CF EB E0 ED E8 F0 EE E2 F9 E8 EA 20 EA EB E0 F1
F1 EE E2 20 EC F3 EB FC F2 E8 EC E5 E4 E8 E0
iso.3.6.1.4.1.311.1.13.1.9999.7.0 type=4 value=Hex-STRING: CE F1 F2 E0 ED EE E2 EB E5 ED E0
iso.3.6.1.6.3.18.1.3.0 type=64 value=IpAddress: 10.0.XXX.XXX
iso.3.6.1.6.3.18.1.4.0 type=4 value=STRING: "zabbix"
iso.3.6.1.6.3.1.1.4.3.0 type=6 value=OID: iso.3.6.1.4.1.311.1.13.1.23.83.101.114.118.105.99.101.32.67.111.110.116.114.111.108.32.77.97.110.97.103.101.114
Можно ли это привести в нормальный вид? Или хотя бы отправлять сообщение в нормальной кодировке, а не HEX числами?
Пробовал Windows 7 и Windows 2003 Server. Версия Zabbix 2.0.8 на Ubuntu 12.04 Server.

21 Авг 2019 в 06:56
455 +1
1
Ответы
1

Для того чтобы привести сообщение в нормальный вид или отправлять сообщение в нормальной кодировке, а не HEX числами, вам необходимо изменить скрипт /usr/local/bin/zabbix_trap_receiver.pl на Perl.

В этом скрипте можно добавить код для обработки VARBINDS и преобразования значений из HEX в нормальный вид. Например, вы можете использовать функцию pack() для этого.

Пример кода для обработки VARBINDS и преобразования HEX в нормальный вид:

use strict;
use warnings;
my %varbinds;
# Обработка VARBINDS
while (<>) {
chomp;
last if /^VARBINDS:/;
}
while (<>) {
last if /^$/;
chomp;
my ($oid, $type, $value) = split /\s+/, $_, 3;
$value =~ s/Hex-STRING:\s//;
if ($type eq 'STRING') {
$value =~ s/^"//;
$value =~ s/"$//;
} elsif ($type eq 'Hex-STRING') {
$value = pack("H*", $value);
}
$varbinds{$oid} = $value;
}
# Вывод в нормальный вид
foreach my $oid (keys %varbinds) {
print "$oid: $varbinds{$oid}\n";
}

Помимо этого, перед использованием скрипта убедитесь, что на вашей системе установлен Perl и необходимые модули для работы с SNMP и преобразования HEX в нормальный вид.

После внесения изменений в скрипт, перезапустите службу SNMPTrapd на вашем сервере, чтобы изменения вступили в силу.

20 Апр в 13:11
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 92 588 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир