Полезная заметка в случае использования сигнализации открытия двери ящика или падения порта индикатора электропитания.
Примером будет отдельно созданный шаблон с обнаружением.
Обнаруживать интересующие нас порты будем с помощью дескрипшенов (snmp oid .1.3.6.1.2.1.31.1.1.1.18).
1. Создаем шаблон INDICATOR-ALARM
2. Создаем правило обнаружения
Имя OpenDoorSignalSearch
Тип SNMPv2 агент
Ключ snmp.trap.search.open.door
SNMP OID .1.3.6.1.2.1.31.1.1.1.18
SNMP community {$SNMP_COMMUNITY}
Интервал обновления (в сек) 7200
3. Так как нас интересуют определенные порты добавляем фильтр
Макрос {#SNMPVALUE}
Фильтр X-DOOR-ALARM-X|Power_status|Door_status
X-DOOR-ALARM-X|Power_status|Door_status это возможные дескрипшены на портах которые нас интересуют.
4. Добавляем прототипы элементов данных
4. 1. Alias - собственно сам дескрипш.
Имя Alias of interface $1
Тип SNMPv2 агент
Ключ ifAlias[{#SNMPVALUE}]
SNMP OID IF-MIB::ifAlias.{#SNMPINDEX}
SNMP community {$SNMP_COMMUNITY}
Тип информации Символ
4.2. Добавляем прототип trap
Имя DOOR-OPEN-TRAP $1
Тип SNMP trap
Ключ snmptrap[.1.3.6.1.2.1.2.2.1.1.{#SNMPINDEX}\s*type=2 value=INTEGER: {#SNMPINDEX}$]
Тип информации Журнал(лог)
Тут необходимо обратить внимание на конструкцию \s* в ключе - она предназначено для того чтобы исключить сдвиг из-за пробелов , например в трапе от порта 1 будет на один пробел больше чем в трапе от порта 11.
5. Добавляем прототип триггера.
Так как данный прототип будет отвечать как за сигнализацию об открытии порта , так и за сигнализацию о внешнем питании , нам нужно выводить в триггер дескрипшн порта.
Имя
UZEL: {HOST.NAME}. {ITEM.LASTVALUE2} INDICATOR state changed
Выражение
{INDICATOR-ALARM:snmptrap[.1.3.6.1.2.1.2.2.1.1.{#SNMPINDEX}\s*type=2 value=INTEGER: {#SNMPINDEX}$].str(.1.3.6.1.6.3.1.1.4.1.0 type=6 value=OID: .1.3.6.1.6.3.1.1.5.3)}=1 and {INDICATOR-ALARM:ifAlias[{#SNMPVALUE}].date()}>00010101
Примером будет отдельно созданный шаблон с обнаружением.
Обнаруживать интересующие нас порты будем с помощью дескрипшенов (snmp oid .1.3.6.1.2.1.31.1.1.1.18).
1. Создаем шаблон INDICATOR-ALARM
2. Создаем правило обнаружения
Имя OpenDoorSignalSearch
Тип SNMPv2 агент
Ключ snmp.trap.search.open.door
SNMP OID .1.3.6.1.2.1.31.1.1.1.18
SNMP community {$SNMP_COMMUNITY}
Интервал обновления (в сек) 7200
3. Так как нас интересуют определенные порты добавляем фильтр
Макрос {#SNMPVALUE}
Фильтр X-DOOR-ALARM-X|Power_status|Door_status
X-DOOR-ALARM-X|Power_status|Door_status это возможные дескрипшены на портах которые нас интересуют.
4. Добавляем прототипы элементов данных
4. 1. Alias - собственно сам дескрипш.
Имя Alias of interface $1
Тип SNMPv2 агент
Ключ ifAlias[{#SNMPVALUE}]
SNMP OID IF-MIB::ifAlias.{#SNMPINDEX}
SNMP community {$SNMP_COMMUNITY}
Тип информации Символ
4.2. Добавляем прототип trap
Имя DOOR-OPEN-TRAP $1
Тип SNMP trap
Ключ snmptrap[.1.3.6.1.2.1.2.2.1.1.{#SNMPINDEX}\s*type=2 value=INTEGER: {#SNMPINDEX}$]
Тип информации Журнал(лог)
Тут необходимо обратить внимание на конструкцию \s* в ключе - она предназначено для того чтобы исключить сдвиг из-за пробелов , например в трапе от порта 1 будет на один пробел больше чем в трапе от порта 11.
5. Добавляем прототип триггера.
Так как данный прототип будет отвечать как за сигнализацию об открытии порта , так и за сигнализацию о внешнем питании , нам нужно выводить в триггер дескрипшн порта.
Имя
UZEL: {HOST.NAME}. {ITEM.LASTVALUE2} INDICATOR state changed
Выражение
{INDICATOR-ALARM:snmptrap[.1.3.6.1.2.1.2.2.1.1.{#SNMPINDEX}\s*type=2 value=INTEGER: {#SNMPINDEX}$].str(.1.3.6.1.6.3.1.1.4.1.0 type=6 value=OID: .1.3.6.1.6.3.1.1.5.3)}=1 and {INDICATOR-ALARM:ifAlias[{#SNMPVALUE}].date()}>00010101
После этого новый шаблон прикрепляем либо к узлу либо к существующему шаблону.
Комментариев нет:
Отправить комментарий