Menu

Show posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Show posts Menu

Messages - hsvt

#46
Общие вопросы / Re: Стату Major
September 02, 2016, 05:07:34 PM
Expected\Unxpected state?
#47
Quote from: 2c2i on September 02, 2016, 02:12:12 PM
а нельзя просто снимать 64битный счетчик?

Так их и снимаю. В первом сообщении указывал...

ifHCInOctets 1.3.6.1.2.1.31.1.1.1.6
ifHCOutOctets 1.3.6.1.2.1.31.1.1.1.10
#48
Quote from: kozlov_ao on September 01, 2016, 11:16:13 AM
Все логично.. abort прерывает операцию, а null - обнуляет показатель.
Ради спортивного интереса - попробуй return false;

Логично то логично, но только у меня чтоли такая проблема или никто показания с роутеров не снимает в NetXMS? Простая задача вылилась в геморрой какой то.
#49
Если использовать заместо abort; -> return null;

То есть получается при abort << ERROR >> и мин 40 он не пуллит данные, при null провалы.

#50
При таком скрипте часто бывает значение в DCI << ERROR >> и фиксируется на одном времени, ни Force ни Clear не помогает, хотя при этом если сделать snmpwalk - счётчики с данными есть. :(

Похоже нормально снимать показания с роутера всё таки не удастся...
#51
Поправил ваш скрипт с помощью Виктора, для того чтобы полностью получать Unique ID.

nodeid = "0x" . right(d2x($node->id), 8, "0");
key = "IF_UNEXP_UP_".nodeid."_".$event->parameters[1];
trace(0, "Checking key ".key);
if (FindAlarmByKey(key) == null) {
trace(0, "key " .key." Not found. disable event rule");
return false;
}
trace(0, "key " .key." Found. process event rule");

return true;

//IF_UNEXP_UP_0x00000981_9374


Спасибо!
#52
Общие вопросы / Re: SYS_IF_UNKNOWN
August 30, 2016, 09:29:05 PM
Quote from: 2c2i on August 30, 2016, 07:17:44 PM
А какие еще есть алармы про эту ноду в это время?

Да ни каких, в том то и дело.

2015869 30.08.2016 19:59:06 MX80 0 SYS_IF_UP Normal Interface 'fxp0 (mgmt_port)' changed state to UP (IP Addr: UNSPEC/0, IfIndex: 1) 0
2015733 30.08.2016 19:58:01 MX80 0 SYS_IF_UNKNOWN Warning Interface "fxp0 (mgmt_port)" changed state to UNKNOWN (IP Addr: UNSPEC/0, IfIndex: 1) 0

1977412 26.08.2016 22:13:49 MX80 0 SYS_IF_UP Normal Interface 'ge-1/3/7.0' changed state to UP (IP Addr: UNSPEC/0, IfIndex: 591) 0
1977410 26.08.2016 22:12:44 MX80 0 SYS_IF_UNKNOWN Warning Interface "ge-1/3/7.0" changed state to UNKNOWN (IP Addr: UNSPEC/0, IfIndex: 591) 0


Есть коммутаторы ZyXEL где действительно SNMP глючное и UDP при опросах загоняет CPU в полку — там понятное дело такое часто, приходит сразу SYS_SNMP_UNREACHABLE и потом SYS_NODE_MAJOR SYS_IF_UNKNOWN или сразу SYS_NODE_MAJOR и SYS_IF_UNKNOWN с этими железками всё ясно и там были проблемы в других системах мониторинга к ним вопросов нет.

Но вот почему такое на Juniper (SYS_IF_UNKNOWN) - не понятно. Буду собирать и шутить, спасибо за наводку)
#53
Quote from: 2c2i on August 30, 2016, 07:16:45 PM
>Мне нужно SYS_IF_EXPECTED_DOWN создавать Alarm (Normal) только если до этого был SYS_IF_UNEXPECTED_UP, а если был SYS_NODE_DOWN или SYS_IF_UNKNOWN то НЕ создавать.
То есть если пришел SYS_IF_UNEXPECTED_UP - вы создаете аларм, а потом если пришел SYS_IF_EXPECTED_DOWN(то есть нормализация) - вы хотите не удалять аларм, а создать еще один? Если так, то вы в принципе можете применить мои фильтры, немного их поменяв.

Да, создавать еще один (у него всё равно severity Normal) или хотя бы резолвить его.

>trace - выводит сообщения в лог демона на сервере.

У меня кстати пусто в netxmsd.log по трейсам, trace 1 — это же уровень дебага\лога, может больше надо?)

>Я не совсем понял о чем речь. Мои скрипты подавляют экшны для инвентов о нормализации состояния порта в том случае если не было аларма на тему ненормального состояния. Это как раз происходит если статус интерфейсов стал UNKNOWN. То есть делаются две вещи:
- не пишется письмо что ситуация нормализовалась по SYS_IF_EXPECTED_DOWN в случае если ранее не было аларма SYS_IF_UNEXPECTED_UP( как раз если у вас был SYS_NODE_DOWN или SYS_IF_UNKNOWN)
- не пишется письмо  что ситуация нормализовалась по SYS_IF_EXPECTED_UP в случае если ранее не было проблемы SYS_IF_UNEXPECTED_DOWN(аналогично, но для интерфейсов с другим expected state).

У меня нет actions для этих правил, мне достаточно Алармов для них. Ну грубо говоря сработал внезапно где то SYS_IF_UNEXPECTED_UP (монтёр порт включил у которого expected state down или несанкционированное подключение) приходит аларм SYS_IF_UNEXPECTED_UP, потом порт погасили - приходит аларм (Normal) SYS_IF_EXPECTED_DOWN. Вручную уже  разбираешь их, удаляешь или резолвишь, например. А в остальном всё тоже самое, только без Action.

SYS_IF_EXPECTED_UP и SYS_IF_UNEXPECTED_DOWN я у себя не нахожу :) Это системные или вы сами создавали ивенты?
#54
Quote from: 2c2i on June 24, 2016, 02:22:50 PM
получилось добиться вышеописанного таким скриптом фильтрации:

sub main() {
key="IF_UNEXP_UP_".$event->parameters[1]."_".d2x($event->id);
trace(1, "Checking key ".key);
if (FindAlarmByKey(key) == null) {
trace(1, "key" .key." Not found. disable event rule");
return false;
}
return true;
}


Хотя я немного рано радовался. У меня в общем немного суть отличается, у меня нет таких EPP правил "Terminate interface unexpectedly up alarms when interface goes down" и "Terminate interface down alarms when interface is up".

То есть я их не терминирую автоматически, а хотел бы отслеживать вручную.

Мне нужно SYS_IF_EXPECTED_DOWN создавать Alarm (Normal) только если до этого был SYS_IF_UNEXPECTED_UP, а если был SYS_NODE_DOWN или SYS_IF_UNKNOWN то НЕ создавать.

Именно как вы писали:

QuoteЭту проблему можно было бы решить галкой типа "suppress event if key not found" - то есть если ключ IF_UNEXP_UP_%i_%1 при обработке SYS_IF_EXPECTED_DOWN не найден, то подавлять ивент. С помощью такой фичи можно было бы подавлять ивенты о нормализации чего либо, если до этого не было ивента о аларме.

Вроде бы вот этот ваш скрипт должен как раз помочь, но с ним почему то возвращает false. (sub main разработчики советуют уже опускать)

key="IF_UNEXP_UP_".$event->parameters[1];
trace(1, "Checking key ".key);
if (FindAlarmByKey(key) == null) {
trace(1, "key" .key." Not found. disable event rule");
return false;
}
trace(1, "key" .key." Found. process event rule");

return true;


Где вы вызываете скрипт для отладки (trace) ?
#55
Общие вопросы / Re: SYS_IF_UNKNOWN
August 29, 2016, 10:58:22 PM
2006877 29.08.2016 21:09:25 MX80 0 SYS_IF_UP Normal Interface 'ge-1/0/5' changed state to UP (IP Addr: UNSPEC/0, IfIndex: 546) 0
2006875 29.08.2016 21:08:19 MX80 0 SYS_IF_UNKNOWN Warning Interface "ge-1/0/5" changed state to UNKNOWN (IP Addr: UNSPEC/0, IfIndex: 546)


Ну не может у него быть статус Unknown ни куда этот интерфейс не девался и не отключался.

Кто нибудь что-то подскажет ? Убрать ивент полностью не вариант.

С другого коммутатора:

1998274 28.08.2016 23:46:26 Prospect N.1 (112.13) 0 SYS_IF_UP Normal Interface '1/28' changed state to UP (IP Addr: UNSPEC/0, IfIndex: 28) 0
1998266 28.08.2016 23:45:21 Prospect N.1 (112.13) 0 SYS_IF_UNKNOWN Warning Interface "1/28" changed state to UNKNOWN (IP Addr: UNSPEC/0, IfIndex: 28) 0


Что значит unknown, почему он был unknown, как увеличить время таймаута чтобы сервер не считал его unknown ?
#56
Общие вопросы / SYS_IF_UNKNOWN
August 29, 2016, 12:44:43 PM
Есть подозрение, что данное событие срабатывает ложно, например на Juniper (роутере, коммутаторах) периодически на интерфейсах em, ge, lc, ae, ipip и прочее. Это порой уже начинает немного напрягать т.к. после этого прилетают SYS_IF_IP. Может быть эта проблема тесно связана с https://www.netxms.org/forum/oe-oo/ooe-aata-sys_if_up-sys_if_expected_down/ и https://www.netxms.org/forum/oe-oo/koe-eto/

А может просто сервер считает что snmp не ответил, хотя это не так. Связность и передача данных не нарушается при этом, проверял через разные snmp тестеры и net-snmp.

Есть так же действительно верная обработка данного события когда на самом деле SNMP агент не доступен и сервер не может узнать статус интерфейсов на удалённых коммутаторах доступа, но в примере выше это происходит постоянно.

Проблема может и не в самом сервере, я понимаю что его задача проверить статус и вернуть результат, но на основании чего он считает что SYS_IF_UNKNOWN?

Из того что можно покрутить в конфиге сервера:

QuoteSNMPRequestTimeout > Unfortunately this parameter does not affect SNMP agent status detection. It only affects interface status checks.
- было 2000, я поставил 3000, разницы особо нет.

QuotePollCountForStatusChange
- выставлять лично для каждого интерфейса не удобно.



#57
Quote from: 2c2i on August 22, 2016, 11:33:15 AM
Для правила EPP "Terminate interface unexpectedly up alarms when interface goes down":

sub main() {
key="IF_UNEXP_UP_".$event->parameters[1];
trace(1, "Checking key ".key);
if (FindAlarmByKey(key) == null) {
trace(1, "key" .key." Not found. disable event rule");
return false;
}
trace(1, "key" .key." Found. process event rule");

return true;
}


Для Terminate interface down alarms when interface is up:

sub main() {
key="IF_DOWN_".$event->parameters[1];
trace(1, "Checking key ".key);
if (FindAlarmByKey(key) == null) {
trace(1, "key ".key." Not found. disable event rule");
return false;
}
trace(1, "key ".key." Found. process event rule");

return true;
}


Спасибо! Так полегче :)
#58
Общие вопросы / UBNT устройства
August 20, 2016, 09:57:12 PM
На всех без исключения точках доступа UBNT(ubiquiti) NanoStation Loco m2 или обычные NanoStation постоянный event флуд с отвалом интерфейсов и SNMP. Кто нибудь здесь мониторит данные устройства? Я пробовал отключать все пулы кроме SNMP\ICMP\Status\Config - результат такой же. По пингам при этом 1% до базовой станции, точки подключены в режиме PtP. Я не пойму, это у них такой проц слабый чтоли на UDP ?

1905394  19.08.2016 12:27:29  node1 BASE  0  SYS_NODE_NORMAL  Normal  Node status changed to NORMAL    0
1905379  19.08.2016 12:24:04  node1 BASE  0  SYS_SNMP_OK  Normal  Connectivity with SNMP agent restored    0
1905380  19.08.2016 12:24:04  node1 BASE  0  SYS_IF_UP  Normal  Interface 'lo' changed state to UP (IP Addr: UNSPEC/0, IfIndex: 1)    0
1905381  19.08.2016 12:24:04  node1 BASE  0  SYS_IF_UP  Normal  Interface 'eth0' changed state to UP (IP Addr: UNSPEC/0, IfIndex: 2)    0
1905382  19.08.2016 12:24:04  node1 BASE  0  SYS_IF_DISABLED  Minor  Interface 'eth1' change state to disabled (IP Addr: UNSPEC/0, IfIndex: 3)    0
1905383  19.08.2016 12:24:04  node1 BASE  0  SYS_IF_UP  Normal  Interface 'wifi0' changed state to UP (IP Addr: UNSPEC/0, IfIndex: 4)    0
1905384  19.08.2016 12:24:04  node1 BASE  0  SYS_IF_UP  Normal  Interface 'ath0' changed state to UP (IP Addr: UNSPEC/0, IfIndex: 5)    0
1905385  19.08.2016 12:24:04  node1 BASE  0  SYS_IF_UP  Normal  Interface 'br0' changed state to UP (IP Addr: UNSPEC/0, IfIndex: 6)    0
1905386  19.08.2016 12:24:04  node1 BASE  0  SYS_NODE_UP  Normal  Node up    0
1905387  19.08.2016 12:24:04  node1 BASE  0  SYS_NODE_NORMAL  Normal  Node status changed to NORMAL    0
1905388  19.08.2016 12:24:04  node1 BASE  0  SYS_NODE_MINOR  Minor  Node status changed to MINOR    0
1905368  19.08.2016 12:23:00  node1 BASE  0  SYS_SNMP_UNREACHABLE  Major  SNMP agent is not responding 10.10.10.18    1905375
1905369  19.08.2016 12:23:00  node1 BASE  0  SYS_IF_UNKNOWN  Warning  Interface "lo" changed state to UNKNOWN (IP Addr: UNSPEC/0, IfIndex: 1)    0
1905370  19.08.2016 12:23:00  node1 BASE  0  SYS_IF_UNKNOWN  Warning  Interface "eth0" changed state to UNKNOWN (IP Addr: UNSPEC/0, IfIndex: 2)    0
1905371  19.08.2016 12:23:00  node1 BASE  0  SYS_IF_UNKNOWN  Warning  Interface "eth1" changed state to UNKNOWN (IP Addr: UNSPEC/0, IfIndex: 3)    0
1905372  19.08.2016 12:23:00  node1 BASE  0  SYS_IF_UNKNOWN  Warning  Interface "wifi0" changed state to UNKNOWN (IP Addr: UNSPEC/0, IfIndex: 4)    0
1905373  19.08.2016 12:23:00  node1 BASE  0  SYS_IF_UNKNOWN  Warning  Interface "ath0" changed state to UNKNOWN (IP Addr: UNSPEC/0, IfIndex: 5)    0
1905374  19.08.2016 12:23:00  node1 BASE  0  SYS_IF_UNKNOWN  Warning  Interface "br0" changed state to UNKNOWN (IP Addr: UNSPEC/0, IfIndex: 6)    0
1905375  19.08.2016 12:23:00  node1 BASE  0  SYS_NODE_DOWN  Critical  Node down    0
1905376  19.08.2016 12:23:00  node1 BASE  0  SYS_NODE_UNKNOWN  Normal  Node status changed to UNKNOWN    0
1905377  19.08.2016 12:23:00  node1 BASE  0  SYS_NODE_CRITICAL  Critical  Node status changed to CRITICAL    0
#59
Подтверждаю. Но на 2.0.2 показывает нормально: Agent status=Connected
#60
Quote from: Harun on August 15, 2016, 09:48:10 PM
Я использую такой transformation script, спасает также от всплесков при перезагрузке устройств и обнулении счетчиков:

value = $1 * 8;
p = rindex ($dci->name,".") + 1;
id = substr($dci->name, p);
i = GetInterfaceObject($node, id);
if (i != null && i->speed>0 && i->speed < value ) return null;
return value;

или для интерфейсов 10G
value = int64($1) * 8L;
p = rindex ($dci->name,".") + 1;
id = substr($dci->name, p);
i = GetInterfaceObject($node, id);
if (i != null && i->speed>0 && i->speed < value ) return null;
return value;


Но очень нехватает шаблонов для создания DCI, есть стандартные шаблоны для интерфейсов bytes, bits, packets, error, нужен функционал добавления в шаблоны своих transformation script, иначе при создании dci приходится вручную лезть в data collection conf и добавлять код. Это очень сильно раздражает при необходимости быстро создать счетчик.

Вот подобная тема:
https://www.netxms.org/forum/e-eoe-o-koaot-netxms/dci-maximum-value/

Больше спасибо! Только вот вчера когда общался с Виктором он написал следующее:

Quote[15.08.2016 11:20:42] Victor Kirhenshtein: return null только для скриптов сбора данных уимеет смысл, не для трансформаций
[15.08.2016 11:20:49] Victor Kirhenshtein: надо использовать abort
[15.08.2016 11:21:28] Victor Kirhenshtein: при реальной трансформации все будет как надо
[15.08.2016 11:21:42] Victor Kirhenshtein: скрипт прервется, событие ошибки скрипта не будет создаваться
[15.08.2016 11:22:01] Victor Kirhenshtein: и сбор данных не пройдет, значения не будет

То есть лучше всё таки abort видимо?