Мониторинг SNMP трапов#

В текущей реализации поддерживаются версии SNMP v1 и v2c.

Файл правил состоит из пяти основных частей:

  • Header — документация с определением переменных;

  • Lookup — таблицы приведения числовых обозначений в человекочитаемый формат;

  • Preparation — подготовка служебной информации и предварительная обработка трапов;

  • Body — ветвление правил по SNMP трапам;

  • Footer — подготовка результата для дальнейшей обработки.

Lookup — таблицы приведения#

IANAifType = {
    "1": "Other", // other - none of the following
    "2": "Regular 1822", // regular1822
    "3": "HDH 1822", // hdh1822
    "4": "DDN X.25", // ddnX25
    "5": "RFC-877 X.25", // rfc877x25
    "6": "Ethernet CSMA-CD", // ethernetCsmacd
    "7": "ISO 8802.3 CSMA-CD", // iso88023Csmacd
    "8": "ISO 8802.4 Token Bus", // iso88024TokenBus
    ...
    "212": "Voice FGD Exchange Access North American", // voiceFGDEANA - voice FGD Exchange Access North American
    "213": "Voice Direct Inward Dialing" // voiceDID - voice Direct Inward Dialing
}

ifAdminStatus = {
    "1": "Up", // up - ready to pass packets
    "2": "Down", // down
    "3": "Testing" // testing - in some test mode
}

ifOperStatus = {
    "1": "Up", // up - ready to pass packets
    "2": "Down", // down
    "3": "Testing", // testing - in some test mode
    "4": "Unknown", // unknown - status can not be determined for some reason.
    "5": "Dormant", // dormant
    "6": "Not Present", // notPresent - some component is missing
    "7": "Lower Layer Down" // lowerLayerDown - down due to state of lower-layer interface(s)
}

Preparation — подготовка данных#

// Устанавливаем стандартный Agent, Manager и Class
_Manager = "SNMP Trap adapter on " + hostname()
_Agent = "SNMPagent"
_Class = "300"

// Проверяем если получили SNMPv2 трап и ковертируем его в SNMPv1 стилÑ