Определить что "Node Down"

Started by VSS, April 16, 2014, 08:29:45 AM

Previous topic - Next topic

VSS

Всем привет!

Возник вопрос с определением когда нода становится недоступной (Node Down). Если мы все правильно понимаем, то состояние ноды определяется Internal - Status. Статусы есть:

0 = Normal
1 = Warning
2 = Minor
3 = Major
4 = Critical
5 = Unknown
6 = Unmanaged

Опять же, если мы все правильно понимаем, то данные статусы - это внутренние статусы. Статус определяется комбинацией событий. Т.е. вполне возможно, что "3" - означает, что какая-то проблемы с DCI, но нода доступна.

Основной вопрос, как именно определить, что нода недоступна (нет связи с агентом)?

kozlov_ao

Когда нода уходит в даун, срабатывает эвент "sys_node_down". Как вариант, можно повесить запись ситуации, и при необходимости читать ее.

Victor Kirhenshtein

Есть несколько путей - смотря что надо получить:

1. Можно обрабатывать события SYS_NODE_DOWN, SYS_NODE_UNREACHABLE, SYS_AGENT_UNREACHABLE, SYS_SNMP_UNREACHABLE и слать оповещения например.

2. Можно сделать "internal" DCI и в transformation script получать состояние ноды через $node->runtimeFlags. Например, проверить что нода полностью недоступна можно так:

if ($node->runtimeFlags & 0x0004)
{
   // node is unreachable
}

Полный список флагов из runtimeFlags:

QUEUED_FOR_STATUS_POLL     0x0001
QUEUED_FOR_CONFIG_POLL     0x0002
UNREACHABLE                0x0004
AGENT_UNREACHABLE          0x0008
SNMP_UNREACHABLE           0x0010
QUEUED_FOR_DISCOVERY_POLL  0x0020
FORCE_STATUS_POLL          0x0040
FORCE_CONFIGURATION_POLL   0x0080
QUEUED_FOR_ROUTE_POLL      0x0100
CPSNMP_UNREACHABLE         0x0200
RECHECK_CAPABILITIES       0x0400
POLLING_DISABLED           0x0800
CONFIGURATION_POLL_PASSED  0x1000
QUEUED_FOR_TOPOLOGY_POLL   0x2000
DELETE_IN_PROGRESS         0x4000
NETWORK_PATH_PROBLEM       0x8000