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 и наслаждаемся красотой.