New event SYS_IF_PEER_CHANGED

Started by hsvt, September 09, 2015, 01:04:25 PM

Previous topic - Next topic

hsvt

Поясните пожалуйста, что значит данный эвент?

QuoteNew event SYS_IF_PEER_CHANGED (sent when peer change detected in interface)

125853   09.09.2015 11:01:12   EXsw   SYS_IF_PEER_CHANGED   Normal   New peer for interface 1/1 is sw1 interface enet0 (00:19:CB:EA:57:45)   New peer for interface 1/1 is sw1 interface enet0 (00:19:CB:EA:   0

Меняется мак на интерфейсе ? Что значит peer change detected ?

UPD: Еще не совсем понимаю как можно использовать в своих Event's %1 - %99 Event's parameter number 1 .. 99.

В системных событиях они уже предопределены? Например:

Interface "%2" changed state to DOWN (IP Addr: %3/%4, IfIndex: %5)
Generated when interface goes down.
Please note that source of event is node, not an interface itself.
Parameters:
   1) Interface object ID
   2) Interface name
   3) Interface IP address
   4) Interface netmask
   5) Interface index


Как я могу их использовать в своём событии?



hsvt

https://www.netxms.org/forum/configuration/how-to-find-out-the-event-parameters/

Прочитав эту тему выше, всё равно не вкурю как использовать свои параметры-макросы

%<name> Event's parameter with given name.
%1 - %99 Event's parameter number 1 .. 99.


Я создал Event DC_MDADM_CRITICAL и есть DCI которое проверяет харды в рейде, и есть EPP которое создаёт аларм %m

Как мне получать в аларме значение из DCI по которому срабатывает Threshold, если я не использую системные SYS_THRESHOLD_REACHED и SYS_THRESHOLD_REARMED ?



Victor Kirhenshtein

SYS_IF_PEER_CHANGED создается когда система определяет изменение в топологии (через CDP, LLDP, etc.) и интерфейсы двух узлов отмечаются как соединенные между собой.

Параметры собственных событий зависят от того, как они генерируются. Если это события по нарушению threshold, то параметры будут соответствовать SYS_THRESHOLD_REACHED/SYS_THRESHOLD_REARMED.

hsvt

Quote from: Victor Kirhenshtein on November 10, 2015, 10:37:52 PM
SYS_IF_PEER_CHANGED создается когда система определяет изменение в топологии (через CDP, LLDP, etc.) и интерфейсы двух узлов отмечаются как соединенные между собой.

Параметры собственных событий зависят от того, как они генерируются. Если это события по нарушению threshold, то параметры будут соответствовать SYS_THRESHOLD_REACHED/SYS_THRESHOLD_REARMED.

То есть свой кастомный event не получиться обработать? Например мне нужен еще отдельный event для интерфейсов - SYS_IF_VLAN_DOWN

Interface "%2" changed state to DOWN (IP Addr: %3/%4, IfIndex: %5)

Generated when interface goes down.
Please note that source of event is node, not an interface itself.
Parameters:
   1) Interface object ID
   2) Interface name
   3) Interface IP address
   4) Interface netmask
   5) Interface index


Аларм при генерации события приходит с пустыми параметрами:

Interface "" changed state to DOWN (IP Addr: /, IfIndex: )

Параметры не обрабатываются потому что они относятся только к системному SYS_IF_DOWN ?

Victor Kirhenshtein

А как это событие SYS_IF_VLAN_DOWN создается?

hsvt

Quote from: Victor Kirhenshtein on November 13, 2015, 10:48:22 PM
А как это событие SYS_IF_VLAN_DOWN создается?

Я даже не знаю как ответить... А системные events как тогда создаются ? На основании того, что заложено в коде и какое поведение определяет система, как вы сказали про SYS_IF_PEER_CHANGED.

Вот как связать event с syslog парсером по своим параметром я понял и там понятно как он создаётся - на основе пойманного сообщения syslog.

Если конкретно - мне нужно сделать свой event и привязать его к DCI и к threshold, который смотрит рейд массив и получать на почту уведомление со своим %message чтобы было понятно в чём проблема, а SYS_THRESHOLD_REACHED он как бы получается общий ко всему. То есть грубо говоря что-то типа DC_MDADM_LOOSE_HDD %Actual value %Threshold value

Victor Kirhenshtein

Ну тогда все просто - делается новое событие и указывается в настройках threshold как activation event. Параметры ему будут переданы точно такие-же как в SYS_THRESHOLD_REACHED. Т.е. скажем так - параметры события зависят не от кода события, а от того, где оно создается. Если в threshold указать SYS_NODE_DOWN, то у него будут параметры как у SYS_THRESHOLD_REACHED когда оно будет создано.

hsvt

Quote from: Victor Kirhenshtein on November 17, 2015, 03:21:56 PM
Ну тогда все просто - делается новое событие и указывается в настройках threshold как activation event. Параметры ему будут переданы точно такие-же как в SYS_THRESHOLD_REACHED. Т.е. скажем так - параметры события зависят не от кода события, а от того, где оно создается. Если в threshold указать SYS_NODE_DOWN, то у него будут параметры как у SYS_THRESHOLD_REACHED когда оно будет создано.

Сделал, посмотрите пожалуйста скриншоты, всё верно?

Victor Kirhenshtein

Достаточно оставить один threshold на != 0 - он и будет генерировать 2 события (критическое когда условие выполняется и нормальное когда больше не выполняется).

hsvt

Quote from: Victor Kirhenshtein on November 30, 2015, 11:23:20 PM
Достаточно оставить один threshold на != 0 - он и будет генерировать 2 события (критическое когда условие выполняется и нормальное когда больше не выполняется).

Quote from: Victor Kirhenshtein on November 30, 2015, 11:23:20 PM
Достаточно оставить один threshold на != 0 - он и будет генерировать 2 события (критическое когда условие выполняется и нормальное когда больше не выполняется).

Всё вроде хорошо, но почему то событие (NORMAL) которое генерирует threshold приходит со странными значениями:

nf_conntrack: nf_conntrack_count (Parameter: nf_conntrack_count; Threshold value: 0x0000049B; Actual value: )

Само событие:

SYS_NF_CONNTRACK_COUNT_NORMAL
nf_conntrack: "%2" (Parameter: %1; Threshold value: %3; Actual value: %4)

SYS_NF_CONNTRACK_COUNT_HIGH
nf_conntrack: "%2" (Parameter: %1; Threshold value: %3; Actual value: %4)

2c2i

Потому что для события SYS_THRESHOLD_REACHED и SYS_THRESHOLD_REARMED(в место которых вы генерируете свои SYS_NF_CONNTRACK_COUNT_HIGH и SYS_NF_CONNTRACK_COUNT_NORMAL значения переменных разные. Посмотрите в описание параметров для SYS_THRESHOLD_REACHED и SYS_THRESHOLD_REARMED в  Event configuration и поймете в чем дело.

hsvt

Quote from: 2c2i on December 13, 2015, 10:45:56 PM
Потому что для события SYS_THRESHOLD_REACHED и SYS_THRESHOLD_REARMED(в место которых вы генерируете свои SYS_NF_CONNTRACK_COUNT_HIGH и SYS_NF_CONNTRACK_COUNT_NORMAL значения переменных разные. Посмотрите в описание параметров для SYS_THRESHOLD_REACHED и SYS_THRESHOLD_REARMED в  Event configuration и поймете в чем дело.

Спасибо, сейчас попробую разобраться. Хотел еще спросить не поднимая новой темы: есть event SYS_IF_DISABLED (Interface "%2" disabled (IP Addr: %3/%4, IfIndex: %5) а вот обратного SYS_IF_ENABLED не вижу, самому создавать?

kozlov_ao

да, либо терминировать созданный аларм чем нить другим.

Victor Kirhenshtein

Придет SYS_IF_UP либо SYS_IF_DOWN, смотря в каком состоянии будет интерфейс после того как его переведут в enabled состояние.

hsvt

#14
Quote from: Victor Kirhenshtein on December 18, 2015, 04:05:26 PM
Придет SYS_IF_UP либо SYS_IF_DOWN, смотря в каком состоянии будет интерфейс после того как его переведут в enabled состояние.

SYS_IF_UP придёт в любом случае (даже если Operational State будет = DOWN?)  и он и является антонимом SYS_IF_ENABLED  ?

А если из Administrative State=UP в Administrative State=DOWN переходит это уже как раз SYS_IF_DISABLED\ENABLED. При этом не обязательно что Operational State будет = UP. Может в порту ничего не воткнуто и линка не будет. Я к тому спрашиваю, чтобы отслеживать действия инженера\оператора port state disable\enable по событию не только SYS_IF_DISABLED, но и знать еще, что кто-то порт включил обратно.

Я уже сделал SYS_IF_ENABLED по аналогии с SYS_IF_DISABLED.

Interface "%2" enabled (IP Addr: %3/%4, IfIndex: %5)

Generated when interface administratively enabled.
Please note that source of event is node, not an interface itself.
Parameters:
   1) Interface object ID
   2) Interface name
   3) Interface IP address
   4) Interface netmask
   5) Interface index