Windows event trap и netxms 2.0.2

Started by NAI, March 27, 2016, 09:18:22 PM

Previous topic - Next topic

NAI

Появилась необходимость забирать с Windows Server события входа в систему - event id: 4672(Win2008), 528 (Win2003) и пр.

Как я понимаю есть два варианта решения:
1)ставим на сервер агента, настраиваем парсер, передаем сообщения через агента - wiki.
2)Настраиваем виндоус, так чтобы она сама отсылала snmp trap.

На мой субъективный взгляд, чем меньше софта на серверах, тем проще жить.
Настраиваю SNMP стандартно: группа, сервер SNMP и пр. (забегая вперед, никаких проблем, трапы отправляются, данные снимаются)
Настраиваю отправку трапов по событию. Делается через приложение evntwin (входит в дистрибутив windows) (см. скриношот 1):


Logoff\login и в netxms вижу кракозябры (см. скриншот 2):


Методом научного тыка выясняю, проблема в "Limit trap length"
Ставлю настройки в 1400 байт (см. скриншот 3):


И начинают прилетать уже осмысленные трапы (см. скриншот 4):


Полный текст:
27.03.2016 20:36:52 192.168.0.20 hvsrv.we.ru .1.3.6.1.4.1.311.1.13.1.35.77.105.99.114.111.115.111.102.116.45.87.105.110.100.111.119.115.45.83.101.99.117.114.105.116.121.45.65.117.100.105.116.105.110.103.0.4672 .1.3.6.1.4.1.311.1.13.1.9999.1.0 == '53 70 65 63 69 61 6C 20 70 72 69 76 69 6C 65 67 65 73 20 61 73 73 69 67 6E 65 64 20 74 6F 20 6E 65 77 20 6C 6F 67 6F 6E 2E 0D 0A 0D 0A 53 75 62 6A 65 63 74 3A 0D 0A 09 53 65 63 75 72 69 74 79 20 49 44 3A 09 09 53 2D 31 2D 35 2D '; .1.3.6.1.4.1.311.1.13.1.9999.2.0 == ''; .1.3.6.1.4.1.311.1.13.1.9999.3.0 == ''; .1.3.6.1.4.1.311.1.13.1.9999.4.0 == ''; .1.3.6.1.4.1.311.1.13.1.9999.5.0 == ''; .1.3.6.1.4.1.311.1.13.1.9999.6.0 == ''; .1.3.6.1.4.1.311.1.13.1.9999.7.0 == ''; .1.3.6.1.4.1.311.1.13.1.9999.8.0 == ''; .1.3.6.1.4.1.311.1.13.1.9999.9.0 == ''; .1.3.6.1.4.1.311.1.13.1.9999.10.0 == ''

Если перевести hex в текст, то получим:
Special privileges assigned to new logon.

Subject:
Security ID: S-1-5-



Полный текст события из EventViwer:
Special privileges assigned to new logon.

Subject:
Security ID: WE\Администратор
Account Name: Администратор
Account Domain: WE
Logon ID: 0x111111


Понятно, из-за усечения пакета SNMP, строка обрезается.
С учетом вышесказанного, два вопроса:
1)Есть ли возможность принимать SNMP-пакеты с большими сообщениями? Это приколы виндоус, протокола SNMP или netxms(маленький буфер)? Какую максимальную длину пакета может принять netxms?

2)Что делать с hex-строкой? Есть ли возможность ее преобразовывать в нормальный текст средствами netxms?

P.s. Используемое ПО:netxms 2.0.2(Debian 3.2.73-2+deb7u3, postgresql), windows server 2003, 2008R2

Victor Kirhenshtein

Сервер может принимать SNMP трапы размером до 64К. Hex в текст можно попробовать перевести скриптом при обработке события, комбинацией функций x2d и chr:


sub hex2text(in)
{
pos = 1;
byte = substr(in, pos, 3);
while(length(byte) == 3)
{
value .= chr(x2d(byte));
pos += 3;
byte = substr(in, pos, 3);
}
return value;
}

// Test:
println hex2text("53 70 65 63 69 61 6C 20 70 72 69 76 69 6C 65 67 65 73 20 61 73 73 69 67 6E 65 64 20 74 6F 20 6E 65");