null

Мониторинг сетевых интерфейсов по snmp в Zabbixe

Zabbix agent не умеет снимать некоторые показатели с некоторых ОС. Например, счётчик net.if в системе OpenBSD. Можно, конечно, прикрутить UserParameter, но если есть шанс этого избежать, то им надо пользоваться. Это одна из причин использовать snmp. Другая, например, может заключаться в том, что в большой организации многие сетевые устройста мониторятся по snmp и нет особого желания увеличивать количество агентов и протоколов в сети, хотя бы, потому что почти всё ПО и почти все реализуемые им протоколы – это баги, а много багов – это плохо. Итак, приступим.

Ставим net-snmp из портов (у нас FreeBSD):

#cd /usr/ports/net-mgmt/net-snmp && make install

Создаём пользователя snmp:

#net-snmp-config --create-snmpv3-user -ro -A password -X password  

Добавляем его в конфиг:

#echo “rouser username” >> /usr/local/share/snmp/snmpd.conf

Добавляем snmp в rc.conf и запускаем:

#echo “snmpd_enable="YES"” >> /etc/rc.conf
#/usr/local/etc/rc.d/snmpd start

Проверяем, как оно:

#snmpwalk -v 3 -u username -A password -l authNoPriv 127.0.0.1 interface

мы должны получить все показатели по сетевым интерфейсам, присутствующим в системе.

Нас интересуют два счётчика – IF-MIB::ifInOctets и IF-MIB::ifOutOctets. Переходим к настройке Zabbix'a. К этому моменту у вас уже должена быть произведена начальная настройка Zabbix'a и создан нужный хост.

Добавляем item для исходящего траффика:

Configuration → Hosts → Items → Create Item
Host – имя_хоста
Description – net out K/s
Type - SNMPv3 agent
SNMP OID - interfaces.ifTable.ifEntry.ifOutOctets.1 (1 – это номер интерфейса)
SNMPv3 security name	 - username
SNMPv3 security level – AuthNoPriv
SNMPv3 auth passphrase – password
SNMPv3 priv passphrase – password
SNMP port – 161
Key – net.if.out.from.snmp
Type of information – Numeric (float)
Use multiplier – Custom multiplier
Custom multiplier – 0.0009765 (snmp отдаёт значение в байтах, умножим его на 0.0009765, чтобы получить килобайты)
Update interval (in sec) – 5
Store value – Delta (Speed per second)

Добавляем item для входящего траффика:

Configuration → Hosts → Items → Create Item
Host – имя_хоста
Description – net in K/s
Type - SNMPv3 agent
SNMP OID - interfaces.ifTable.ifEntry.ifInOctets.1 (1 – это номер интерфейса)
SNMPv3 security name	 - username
SNMPv3 security level – AuthNoPriv
SNMPv3 auth passphrase – password
SNMPv3 priv passphrase – password
SNMP port – 161
Key – net.if.in.from.snmp
Type of information – Numeric (float)
Use multiplier – Custom multiplier
Custom multiplier – 0.0009765 (snmp отдаёт значение в байтах, умножим его на 0.0009765, чтобы получить килобайты)
Update interval (in sec) – 5
Store value – Delta (Speed per second)

Теперь нам нужно добавить item, который бы складывал значения этих двух счётчиков:

Configuration → Hosts → Items → Create Item
Host – имя_хоста
Description – net in+out K/s
Type - Calculated
Key – net.if.inout.from.snmp
Expression - last("net.if.in.from.snmp")+last("net.if.out.from.snmp")
Type of information – Numeric (float)
Use multiplier – Do not use
Update interval (in sec) – 5
Store value – As is

Делаем Graph добавляем его в Screen и наслаждаемся красотой.

О себе

В компании TUNE IT я занимаю должность инженера. В сферу моих профессиональных интересов входят следующие направления:

  • Администрирование UNIX систем (Solaris, Freebsd);
  • Обслуживание серверов и систем хранения данных фирмы Sun Microsystems;
  • Обеспечение безопасности вычислительных систем и сетей;
  • Виртуализация вычислительных инфраструктур.