16 апр. 2013 г.

Zabbix - Настройка мониторинга по SNMP, Динамические индексы.


Пример графика на Zabbix:


Нашим отделом, в качестве ПО мониторинга корпоративных узлов связи, серверов и бесперебойников был выбран Zabbix. После одного дня разбирательств "что, куда и для чего..." появляются первые результаты. Нужно сказать, система весьма дружелюбна и продуманна. Будет не лишним сделать пару заметок, в будущем думаю еще вернусь к использованию и настройке. Скорее всего, следующей темой статьи станет настройка способов уведомлений о происходящих событиях с оборудованием. Но обо всем по порядку....
На линуксовую машину устанавливаем необходимый пакет "snmp-utils". Если требуется мониторить и эту машину по snmp, ставим пакет "snmp", файл конфигурации будет находиться в /etc/snmp/snmp.conf. Стоит отменить, что на самом сервере Zabbix, пакет "snmp-utils" предьустановлен из дистрибутива "по умолчанию", а ежели "собиралось руками", стоит это проверить, перед началом настройки мониторинга по "SNMP".

  • Все что может отдавать удаленный узел по SNMP:
snmpwalk -v 2c -c kspd_chita 10.141.172.1

-v 2c - версия snmp.
-c kspd_chita - так называемый "snmp community", по умолчанию кстати "public".

Список достаточно велик. Выбрал несколько пунктов, возможно пригодятся в будущем:
IF-MIB::ifSpeed.21 = Gauge32: 1024000
IF-MIB::ifLastChange.21 = Timeticks: (1198) 0:00:11.98
IF-MIB::ifInOctets.21 = Counter32: 2696796350
IF-MIB::ifOutOctets.21 = Counter32: 3789262932
IF-MIB::ifName.21 = STRING: Fa0/0.1
IF-MIB::ifDescr.21 = STRING: FastEthernet0/0.1-802.1Q vLAN subif


  • Вывод всех сетевых интерфейсов с именем:
snmpwalk -v 2c -c kspd_chita 10.141.171.74 IF-MIB::ifName
Пример вывода:
IF-MIB::ifName.1 = STRING: Fa0/0
IF-MIB::ifName.2 = STRING: Fa0/1
IF-MIB::ifName.3 = STRING: Fa1/0
IF-MIB::ifName.4 = STRING: Fa1/1
IF-MIB::ifName.5 = STRING: Fa1/2
IF-MIB::ifName.6 = STRING: Fa1/3
IF-MIB::ifName.7 = STRING: Fa1/4
IF-MIB::ifName.8 = STRING: Fa1/5
IF-MIB::ifName.9 = STRING: Fa1/6
IF-MIB::ifName.10 = STRING: Fa1/7
IF-MIB::ifName.11 = STRING: Fa1/8
IF-MIB::ifName.12 = STRING: Fa1/9
IF-MIB::ifName.13 = STRING: Fa1/10
IF-MIB::ifName.14 = STRING: Fa1/11
IF-MIB::ifName.15 = STRING: Fa1/12
IF-MIB::ifName.16 = STRING: Fa1/13
IF-MIB::ifName.17 = STRING: Fa1/14
IF-MIB::ifName.18 = STRING: Fa1/15
IF-MIB::ifName.19 = STRING: Nu0
IF-MIB::ifName.20 = STRING: Vl1
IF-MIB::ifName.21 = STRING: Fa0/0.1
IF-MIB::ifName.22 = STRING: Fa0/0.490
IF-MIB::ifName.23 = STRING: Vl2
IF-MIB::ifName.24 = STRING: Vl490

  • Вывод всех сетевых интерфейсов с описанием:
snmpwalk -v 2c -c kspd_chita 10.141.171.74 IF-MIB::ifDescr

IF-MIB::ifDescr.1 = STRING: FastEthernet0/0
IF-MIB::ifDescr.2 = STRING: FastEthernet0/1
IF-MIB::ifDescr.3 = STRING: FastEthernet1/0
IF-MIB::ifDescr.4 = STRING: FastEthernet1/1
IF-MIB::ifDescr.5 = STRING: FastEthernet1/2
IF-MIB::ifDescr.6 = STRING: FastEthernet1/3
IF-MIB::ifDescr.7 = STRING: FastEthernet1/4
IF-MIB::ifDescr.8 = STRING: FastEthernet1/5
IF-MIB::ifDescr.9 = STRING: FastEthernet1/6
IF-MIB::ifDescr.10 = STRING: FastEthernet1/7
IF-MIB::ifDescr.11 = STRING: FastEthernet1/8
IF-MIB::ifDescr.12 = STRING: FastEthernet1/9
IF-MIB::ifDescr.13 = STRING: FastEthernet1/10
IF-MIB::ifDescr.14 = STRING: FastEthernet1/11
IF-MIB::ifDescr.15 = STRING: FastEthernet1/12
IF-MIB::ifDescr.16 = STRING: FastEthernet1/13
IF-MIB::ifDescr.17 = STRING: FastEthernet1/14
IF-MIB::ifDescr.18 = STRING: FastEthernet1/15
IF-MIB::ifDescr.19 = STRING: Null0
IF-MIB::ifDescr.20 = STRING: Vlan1
IF-MIB::ifDescr.21 = STRING: FastEthernet0/0.1-802.1Q vLAN subif
IF-MIB::ifDescr.22 = STRING: FastEthernet0/0.490-802.1Q vLAN subif
IF-MIB::ifDescr.23 = STRING: Vlan2
IF-MIB::ifDescr.24 = STRING: Vlan490

Для информации: это cisco2811 с модулем Ethernet на 16 портов. В ней меня интересует лишь "виртуальный" интерфейс "FastEthernet0/0.1-802.1Q vLAN subif". Его, так сказать "портом" является 21 (IF-MIB::ifDescr.21)". Ниже станет понятно, для чего все это делается.

  • В Zabbix создаем шаблон, который в последующем будем применять на маршрутизаторы с идентичным названием виртуального сетевого интерфейса "FastEthernet0/0.1-802.1Q vLAN subif", и идентичным 'snmp community' - "kspd_chita". Самая главная строка "SNMP OID" будет выглядеть следующим образом:
IF-MIB::ifInOctets["index","IF-MIB::ifDescr","FastEthernet0/0.1-802.1Q vLAN subif"]

ifInOctets - Полное число полученных байтов, включая символы заголовков.
index - Метод обработки. В настоящее время поддерживается только один метод
 IF-MIB::ifDescr","FastEthernet0/0.1-802.1Q vLAN subif" - находит тот самый порт(идентификатор) нужного нам сетевого интерфейса, в моем случае это "21".
Таким образом, данный шаблон можно применять к примеру на все пограничные коммутаторы в районах, которые настроены по аналогии.

Это только в качестве примера, правильнее все же будет настраивать по имени интерфейса: 

IF-MIB::ifInOctets["index","IF-MIB::ifName","Fa0/0.1"]

  • Настройка остальных параметров шаблона:
Тип информации: Числовой (с плавающей точкой)
Единица измерения: bps
Пользовательский множитель: 0.4
Интервал обновления (в сек): 20
Хранение значения: Дельта (простое изменение)

Выше я немного извратился, переделываем:
Тип информации: Числовой (целое положительное)
Единица измерения: bps
Пользовательский множитель: 8 - переводим байты в биты
Интервал обновления (в сек): 20
Хранение значения: Дельта (скорость в секунду)


Комментариев нет:

Отправить комментарий