Настройка SNMP Traps в zabbix Debian

Процесс установки
Аватара пользователя
Артём Мамзиков
Admin
Сообщения: 367
Стаж: 2 года 9 месяцев
Откуда: Вологодская область
Контактная информация:

Настройка SNMP Traps в zabbix Debian

Сообщение Артём Мамзиков »



Про SNMP trap / трапы (ловушка) - отличие от snmp в том что мы не делаем запрос и не получаем ответ, а ждем когда устройство само отправит данные и ловим их. Прослушиваем определенный хост например IP:162 порту как только хост сам отправляет данные мы их принимаем/ловим.
Настройка передающей стороны хоста не всегда может быть доступна. Иногда это вшито в ПО и нет возможности включить или выключить snmp trap или как то его настроить, устройство само с периодичностью или изменением состояния шлет данные в сеть. Либо же если есть такие настройки можно настроить вручную включить или отключить данный snmp traps.

Настройка в Заббикс Оф. Заббикс SNMP трапы

Про SNMP я писал тут про установку настройку тестирование и тп

Как сделать отправку Службой snmp + ПО c Windows Server на zabbix server пример Dell-OpenManage snmpv2 RUS и аналогично для Kraftway PMC-Sierra Adaptec 5805

В Windows Данная служба называется SNMP Ловушка (англ. TRAP)
SNMP TRAP Ловушка.jpg
SNMP TRAP Ловушка.jpg
Служба SNMP.jpg
Служба SNMP.jpg
Как это все будет работать в заббикс Сервере

Работа заббикса сервера для SNMP трапов проходит следующим образом
snmptrapd получает трап и передает трап в > SNMPTT или Perl дальше > форматируют и записывают трап например в /var/log/snmptt/snmptt.log или /tmp/zabbix_traps.tmp дальше >
Zabbix SNMP траппер читает и анализирует файл с трапами snmptt.conf.dop
Данный файл мы указываем в конфигурации zabbix_server.conf
StartSNMPTrapper=1
SNMPTrapperFile=/var/log/snmptt/snmptt.log
#SNMPTrapperFile=/tmp/zabbix_traps.tmp

Zabbix ищет все соответствующие элементы данных с типом “SNMP трап” на интерфейсах узлов сети по каждому трапу, которые совпадают с полученным адресом из трапа.
Возьмите на заметку, только выбранный “IP” или “DNS” у интерфейса узла сети используется в процессе поиска совпадения.

Схематичный пример
zabbix_snmptrapd
zabbix_snmptrapd
В Узлах По каждому найденному SNMP интерфейсу, трап сравнивается со всеми регулярными выражениями из элементов данных “snmptrap[регулярное выражение]”. Если совпадение найдено, трап записывается значением для всех совпавших элементов данных. Если совпадений не найдено, но существует элемент данных “snmptrap.fallback”, трап записывается значением для этого элемента данных.
Если совпадений не было найдено ни с одним из соответствующих SNMP интерфейсов, Zabbix по умолчанию журналирует несовпавшие трапы. (Это поведение настраивается в “Журналировать не совпадающие SNMP трапы” в Администрирование → Общие → Прочие).



Установка пакетов
apt-get install snmp snmpd snmptrapd net-tools snmptt libsnmp-dev
Установка net-snmp-perl
apt-get install libnet-snmp-perl

Проверим установку net-snmp-perl
dpkg -l | grep net-snmp-perl

Чтобы идентификаторы OID соответствовали их текстовому описанию, активируйте несвободный репозиторий и установите
apt-get install snmp-mibs-downloader

Стандартно MIB лежат в ./usr/share/snmp/mibs/

обновить MIBS до последних версий
от root # download-mibs

В файле конфигурации nano /etc/snmp/snmp.conf включить нужные Mib
Я включил всё сделав следующее Закомментировал #MIBS: и добавил строку mibs :ALL

mibs :ALL включает все, что не совсем хорошо. Рекомендую для каждого оборудования иметь папку с mib'ами, т.к. они могут отличаться из одной прошивки к другой.
Или же прописать конкретные mib в конфиг например: mibs :BRIDGE-MIB:Q-BRIDGE-MIB:IP-MIB:IF-MIB
Конкретно одну добавить mibs +CPQPOWER-MIB

Добавление сторонних MIB для конкретного пользователя
# Создайте свой личный каталог MIBs
mkdir -p $HOME/.snmp/mibs
echo "mibdirs + $HOME/.snmp/mibs" >> $HOME/.snmp/snmp.conf
snmpwalk -v 1 -c public -m + ваша mib: еще ваша mib Хост


Настройка snmptrapd
устанавливаем community обычно public
nano /etc/snmp/snmptrapd.conf

Находим и раскомментируем строки
authCommunity log,execute,net public
authCommunity log,execute private
Примечание о authCommunity
Показать
В некоторых случаях SNMP-агенты (сетевые устройства, отсылающие трапы) не умеют работать со строкой подключения Community string и поэтому не могут быть аутентифицированы службой snmptrapd. В таком случае придётся отключить проверку строки подключения, закомментировав параметр authCommunity и включив параметр disableAuthorization.
Для лучшей производительности на продуктивных системах используйте встроенный Perl для передачи трапов от snmptrapd к SNMPTT или напрямую Zabbix'у. , SNMPTT необходимо сконфигурировать демоном с использованием snmptthandler-embedded для передачи ему трапов

Настройка через скрипт Perl zabbix_trap_receiver.pl
snmptthandler-embedded
Показать
nano /etc/snmp/snmptrapd.conf
Если ранее было настроено SNMPTT нужно Закоментировать эту строку:
по умолчанию для traphandle /usr/sbin/snmptthandler Не будет передавать данные для SNMPTT

Получатель трапов Perl взять из установочной папки /zabbix-4.2.1/misc/snmptrap/zabbix_trap_receiver.pl
можно использовать для передачи трапов в Zabbix сервер напрямую с snmptrapd
скопировать zabbix_trap_receiver.pl в /usr/lib/snmptt/

nano /etc/snmp/snmptrapd.conf
После добавить строку
perl do "/usr/lib/snmptt/zabbix_trap_receiver.pl";

Или есть дефолтный от perl но его придется настроить
perl do "/usr/lib/snmptt/snmptthandler-embedded";

Вам также нужно отредактировать скрипт INIT, чтобы добавить дополнительную опцию.

Отредактируйте файл nano /etc/default/snmptrapd

Найдите эту строку: TRAPDOPTS='-Lsd -p /run/snmptrapd.pid'
Добавить строку: TRAPDOPTS='-Lsd -On -p /run/snmptrapd.pid'

Автозагрузка snmptrapd
Меняем параметр на no на yes
TRAPDRUN=yes

Теперь перезапустите сервис SNMPTRAPD :
systemctl daemon-reload
systemctl restart snmptrapd.service


Так как в файле zabbix_trap_receiver.pl по дефолту вывод настроен /tmp/zabbix_traps.tmp так же настроен формат времени date_time_format = %H:%M:%S %Y/%m/%d

В конфигурации nano /usr/local/etc/zabbix_server.conf указываем
StartSNMPTrapper=1
SNMPTrapperFile=/tmp/zabbix_traps.tmp


Перезапускаем заббикс
service zabbix-server restart

Если используется systemd параметр PrivateTmp, этот файл вряд ли заработает в /tmp. Нужно будет указать вывод в другую паку например в /var/log/snmptt/zabbix_traps.tmp

Поданному пути /zabbix-4.2.1/misc/snmptrap/ есть еще скрипт snmptrap.sh остался он от старой версии 1.8
О скрипте snmptrap.sh
Показать
Для старой версии заббикс 1.8


Скрипт используется для получения SNMP трапов. Скрипт должен быть использован в сочетании с snmptrapd, который является частью пакета Net-SNMP.

Руководство по конфигурации:

Установите snmptrapd (часть net-snmp или ucd-snmp)
Измените snmptrapd.conf.
Добавьте следующую строку:

traphandle default /bin/bash /usr/local/bin/snmptrap.sh

Скопируйте misc/snmptrap/snmptrap.sh в /usr/local/bin
Отредактируйте snmptrap.sh для настройки некоторых основных параметров
Добавьте в Zabbix специальный узел сети с элементом данных типа “Zabbix траппер” (тип информации “Текст”). Ключ элемента данных смотрите в snmptrap.sh
Запустите snmptrapd
Включаем опцию на автоматический запуск snmptrapd
nano /etc/default/snmptrapd

Меняем параметр на
TRAPDRUN=yes

Перезапускаем snmptrapd
systemctl daemon-reload
service snmptrapd restart
systemctl restart snmptrapd.service
/etc/init.d/snmptrapd restart

Разрешить входящие на 162 порт
iptables -A INPUT -p udp -m udp --dport 162 -m comment --comment "SNMP Traps" -j ACCEPT

Проверяем слушет наш демон 162-q порт
netstat -nlup | grep 162 или netstat -nlup | grep snmp
Ответ
udp 0 0 0.0.0.0:162 0.0.0.0:*
2964/snmptrapd

Проверка работы для Варианта работы через скрипт Perl
Используйте следующую команду для отправки тестового трапа:
snmptrap -v 1 -c public 127.0.0.1 '.1.3.6.1.6.3.1.1.5.3' '0.0.0.0' 6 33 '55' .1.3.6.1.6.3.1.1.5.3 s "teststring000"
Проверяем следующими командами
tail -n 1 /var/log/syslog
nano /tmp/zabbix_traps.tmp

Лог Заббикс сервера
nano /tmp/zabbix_server.log

Проверка в заббиксе
Создайте ТЕСТ элемент в узле данных с типом SNMP трап:
Узел сети с IP адресом SNMP: 127.0.0.1
Ключ: snmptrap["General"]
Формат времени журнала: hh:mm:ss yyyy/MM/dd


Если Мы выбрали что будем работать через скрипт PERL snmptthandler-embedded Дальше можно не настраивать SNMPTT

#Получаемые службой snmptrapd сообщения SNMP Trap передаются службе-транслятору SNMPTT для обработки с помощью snmptthandler
nano /etc/snmp/snmptrapd.conf добавляем строку:
#traphandle default /usr/bin/traptoemail -s smtp.example.org foobar@example.org
traphandle default /usr/sbin/snmptthandler
#traphandle default snmptt


Настройка SNMPTT
Наши mib файлы которые лежат /usr/share/snmp/mibs/ нужно с конвертировать при помощи snmpttconvertmib специальные правила в snmptt.conf
nano /etc/snmp/snmptt.conf
Добавить
EVENT general .* "General event" Normal
FORMAT ZBXTRAP $aA $1 $2 $3

#FORMAT ZBXTRAP $aA $ar
Конвертация вручную
Показать
Переходим в папку с mib файлами
cd /usr/share/snmp/mibs/
Запускаем команду путь на mib вывод правил в новый conf
snmpttconvertmib --in = path-to-mib --out = output-file-name
snmpttconvertmib --in=/usr/share/snmp/mibs/CPQHOST.mib --out=/etc/snmp/snmptt.conf.compaqhost
Если модуль Perl Net-SNMP установлен и требуется более подробное описание переменных, добавьте --net_snmp_perl в командную строку
snmpttconvertmib --in=/usr/share/snmp/mibs/CPQHOST.mib --out=/etc/snmp/snmptt.cong.compaq --net_snmp_perl
snmpttconvertmib --in=/etc/snmp/mibs/BGP4-MIB.txt --out /etc/snmp/BGP4.conf --net_snmp_perl

Утилита snmpttconvertmib умеет формировать и добавлять строку с определением EXEC, в которой указывается действие, выполняемое при получении этого трапа. Для этого используется опция --exec=command, где command строка заключенная в одиночные кавычки. К строке указаной в качестве command добавляется содержимое строки с опрелением FORMAT, заключённое в двойные ковычки:

snmpttconvertmib --in=/usr/share/snmp/mibs/UPS-MIB.txt --out=snmptt.conf.apc -net_snmp_perl --exec='/usr/local/icinga/libexec/eventhandlers/submit_check_result $r TRAP 1'

snmpttconvertmib --in=UPS-MIB.txt --out=/etc/snmp/snmptt.conf.dop --exec='/usr/lib/nagios/plugins/submit_snmp_trap $r "SNMP Trap" 1' | grep translations


Почему конвертируя разные файлы конвертируются по разному читать в документации
Разбор одного пример
Показать
Разберём первое событие построчно.
Первая строка:
EVENT linkDown .1.3.6.1.6.3.1.1.5.3 "Status Events" Normal

начинается с определения EVENT, далее следуют:
- наименование события, в данном случае linkDown, уникальная текстовая метка (алиас) не должна содержать пробелы;
- OID события, в данном случае .1.3.6.1.6.3.1.1.5.3, в цифровом виде, можно использовать и символьный вариант. Допустимо использование шаблонов поиска, например, .1.3.6.1.6.3.1.1.5.*, но при этом необходимо учитывать, что OID'ы будут обрабатываться в порядке их перечисления;
- категория, в данном случае "Status Events", символьная строка заключенная в двойные кавычки, используется для логирования. Если указать категорию "IGNORE", то никаких действий по выполнению определений EXEC и FORMAT не будет выполнено. Также существует категория "LOGONLY", которая отключает выполнение определения EXEC, но логирование осуществляется;
- уровень статуса, в данном случае Normal, символьная строка указывающая статус, например, Minor, Major, Normal, Critical, Warning, используется для логирования. Можно связать с уровнями syslog'а (см. snmptt.ini, опции syslog_level_*).

Вторая строка:
FORMAT Port name: $2 Status: $4

начинается с определения FORMAT за которым следует строка генерирующая текст при логировании. У каждого события может быть только одна строка с определением FORMAT.
Для генерации возможно использование следующих переменных:

$A - имя узла агента;
$aA - IP адрес агента;
$Be - securityEngineID (snmpEngineID) (доступно только при использовании встроенного обработчика);
$Bu - securityName (snmpCommunitySecurityName) (доступно только при использовании встроенного обработчика);
$BE - contextEngineID (snmpCommunityContextEngineID) (доступно только при использовании встроенного обработчика);
$Bn - contextName (snmpCommunityContextName) (доступно только при использовании встроенного обработчика);
$c - категория;
$C - общая строка (community string);
$D - текстовое описание их snmptt.conf или MIB файла (см. опцию description_mode в snmptt.ini);
$E - OID трапа в символьном виде;
$e - OID трапа в числовом виде;
$Fa - звуковой сигнал (bell) (BEL);
$Ff - прогон страницы, новая страница (FF);
$Fn - перевод строки (LF, NL);
$Fr - перевод каретки (CR);
$Ft - символ горизонтальной табуляции (HT, TAB);
$Fz - транслированная строка FROMAT (работает только в опредлении EXEC);
$G - номер общего трапа (generic trap, 0 в случае enterprise trap);
$H - имя узла на котором запущен snmptt;
$S - номер особого трапа (specific trap, 0 в случае enterprise trap);
$N - имя события, которое определено в .conf файле
$i - OID события (может быть шаблонным);
$O - OID трапа в символьном формате (необходимо включить опцию translate_trap_oid_format в snmptt.ini, также требуются установленный модуль Perl Net-SNMP и его включённая поддержка - опция net_snmp_perl_enable в snmptt.ini);
$o - OID трапа в числовом формате;
$R, $r - имя узла отправившего трап;
$aR, $ar - IP адрес узла отправившего трап;
$s - уровень статуса (указанный определение EVENT);
$T - Uptime: время прошедшее после инициализации сетевого объекта;
$X - время попадания трапа в очередь обработки (в случае режима daemon) или текущее время (в случае режима standalone);
$x - дата попадания трапа в очередь обработки (в случае режима daemon) или текущее время (в случае режима standalone);
$# - количество переменных, которые передаются в трапе;
$$ - печатает символ $;
$@ - количество секунд прошедших от начала времён (01.01.1970 г.) до момента попадания трапа в очередь обработки (в случае режима daemon) или текущее время (в случае режима standalone);
$n - выводит значение переменной n;
$+n - выполняет подстановку переменной n в виде: имя переменной:значение;
$-n - выполняет подстановку переменной n в виде: имя переменной (тип переменной):значение;
$vn - выводит имя переменной n;
$* - выводит значение всех переменных n;
$+* - тоже самое, что и $+n только делает подстановку для всех переменных;
$-* - тоже самое, что и $-n только делает подстановку для всех переменных.
Чтобы не возиться отдельно с конвертацией каждого mib-файла, создадим скрипт
в /usr/share/snmp/
touch /usr/share/snmp/snmptt-mib-convert.sh
chmod 700 /usr/share/snmp/snmptt-mib-convert.sh
nano /usr/share/snmp/snmptt-mib-convert.sh
Содержимое скрипта
#!/bin/bash
#
for vMIB in /usr/share/snmp/mibs/*
do
echo "Processing $vMIB"
snmpttconvertmib --in=$vMIB --out=/etc/snmp/snmptt.conf.dop --debug
done


Запускаем скрипт
./usr/share/snmp/snmptt-mib-convert.sh
После проверяем содержимое нашего файла и создался ли он
nano /etc/snmp/snmptt.conf.dop

Так как мы создали отдельный файл snmptt.conf.dop пропишем его в snmptt.ini
Настройка snmptt.ini
nano /etc/snmp/snmptt.ini
Добавим наш файл

[General]
#mode = standalone
mode = daemon
#чтобы snmptt задействовал дополнительный функционал нормализации значений OID
#установленный модуль Perl Net-SNMP
net_snmp_perl_enable = 1
net_snmp_perl_cache_enable = 0

#или настройка файла snmp.conf
mibs_environment = ALL
#задайте формат времени/даты
date_time_format = %H:%M:%S %Y/%m/%d

[DaemonMode]
#игнорировать повторяющиеся трапы в течение некоторого интервала времени
duplicate_trap_window = 300

[Logging]
#журналирование трапов в файл с трапами, который Zabbix будет читать:
log_enable = 1
log_file = /var/log/snmptt/snmptt.log

#log_file = /tmp/my_zabbix_traps.tmp
unknown_trap_log_enable = 1
unknown_trap_log_file = /var/log/snmptt/snmpttunknown.log

[TrapFiles]
snmptt_conf_files = <<END
/etc/snmp/snmptt.conf
/etc/snmp/snmptt.conf.dop
END

После изменений snmptt.ini
service snmptt restart

В конфигурации nano /usr/local/etc/zabbix_server.conf указываем
StartSNMPTrapper=1
SNMPTrapperFile=/var/log/snmptt/snmptt.log

Либо после всех изменений перезапускаем службы для применения измененных конфигурация
systemctl daemon-reload
service snmpd restart
service snmptt restart
service snmptrapd restart
service zabbix-server restart

о netstat
Показать
Версия
netstat -v

Просмотр таблицы маршрутизации сети
флаг -r для отображения таблицы сетевой маршрутизации
Опция -n заставляет netstat выводить адреса, разделенные точками, вместо использования символических сетевых имен
netstat -nr

Просмотр статистики сетевого интерфейса
Флаг -i, чтобы получить статистические данные о настроенном сетевом интерфейсе. Опция -a выводит все существующие в ядре интерфейсы
netstat -ai

Просмотр сетевых подключения
ктивные или пассивные сокеты с помощью параметров -t, -n и -a. Флаги показывают разъемы подключения RAW, UDP, TCP или UNIX. Добавив опцию -a, утилита будет создавать сокеты, готовые к соединению
netstat -ant

Просмотр сетевых сервисов
netstat -pnltu

Более новая утилита ss
Об ss
Показать
Вывод списка всех соединений
ss

Вывод списка прослушиваемых так и не прослушиваемых портов
ss -a

Вывод списка прослушивающих сокетов
ss -l

Вывод всех TCP соединений
ss -t

Вывод всех прослушиваемых соединений TCP
ss -lt

Вывод списка всех UDP-соединения
ss -ua

Вывод списка всех прослушиваемых соединений UDP
ss -lu

Просмотр PID (идентификаторы процессов) сокетов
ss -p

Просмотр сводной статистики
ss -s

Просмотр сокетов IPv4 и IPv6
ss -4 и ss -6

Фильтр соединений по номеру порта
ss -at '( dport = :22 or sport = :22 )'
ss -at '( dport = :ssh or sport = :ssh )'

справочные команды ss
man ss
Инфо об
Показать
snmptrapd – Служба SNMP Trap Daemon из состава Net-SNMP. Данная служба отвечает за прослушивание на сервере мониторинга UDP-порта и получение от внешних сетевых устройств сообщений SNMP Trap

snmptt - для получения и обработки SNMP TRAP сообщений от оборудования.
snmptt – Служба SNMP Trap Translator (SNMPTT). Данный элемент отвечает за разбор и интерпретацию сообщений SNMP Trap, полученных от службы snmptrapd. В частности он преобразует числовые идентификаторы OID в читаемый формат, используя подключаемые MIB-файлы.

submit_snmp_trap – Скрипт, который принимает от службы snmptt нормализованное Trap-сообщение и, преобразовав данные этого сообщения в понятный для Icinga формат, отправляет их в командный pipe-файл Icinga.

SNMP Trap - специальная пассивная Служба Icinga, в которую будут "прилетать" данные из pipe-файла Icinga. Данная Служба будет служить нам для визуализации конечного результата в веб-интерфейсе Icinga Web 2, а также организации оповещений администратора о проблеме.
Пример содержания файла лог
SNMPTT Diagram
SNMPTT Diagram
В терминале выполните тестовые запросы
Локальный запрос
snmpwalk -v 2c -c public localhost

Для проверки запустим тестовый trap на себя (127.0.0.1), с помощю утилиты snmptrap.
snmptrap -c public -v 2c 127.0.0.1 "" 1.5.5.5.5.5.5.5 1.7.7.7.7.7.7 s "Test TRAP"

Используйте следующую команду для отправки тестового трапа:
snmptrap -v 1 -c public 127.0.0.1 '.1.3.6.1.6.3.1.1.5.3' '0.0.0.0' 6 33 '55' .1.3.6.1.6.3.1.1.5.3 s "teststring000"

Проверяем прилетели ли данные
tail -n 1 /var/log/syslog или весь лог nano /var/log/syslog
nano /var/log/snmptt/snmptt.log Лог Заббикс сервера nano /tmp/zabbix/zabbix-server.log

Должно быть
Полученный трап:
15:48:18 2011/07/26 .1.3.6.1.6.3.1.1.5.3.0.33 Normal "General event" localhost - ZBXTRAP 127.0.0.1 127.0.0.1
Значение ТЕСТ элемента данных:
15:48:18 2011/07/26 .1.3.6.1.6.3.1.1.5.3.0.33 Normal "General event" localhost - 127.0.0.1

Неизвестные trap
nano /var/log/snmptt/snmpttunknown.log

Проверка с удаленной стороны
snmptrap -c public -v 2c IP-zabbix-server "" 1.5.5.5.5.5.5.5 1.7.7.7.7.7.7 s "Rest TRAP REMOTE"

Проверяем
tail -n 1 /var/log/syslog

Проверка в заббиксе
Создайте ТЕСТ элемент в узле данных с типом SNMP трап:
Узел сети с IP адресом SNMP: 127.0.0.1
Ключ: snmptrap["General"]
Формат времени журнала: hh:mm:ss yyyy/MM/dd


Для удаленного управления утилитой snmpwalk
изменяем в конфигурации
nano /etc/snmp/snmpd.conf
#Настройки по умолчанию:
agentAddress udp:127.0.0.1:161
#Удаленный доступ
agentAddress udp:IP-zabbix-servera:162

Изменение параметров "sysLocation" и "sysContact", для более легкой идентификации трапа.
Настройки по умолчанию:
sysLocation Sitting on the Dock of the Bay
sysContact Me
Пример:
sysLocation MY HOST
sysContact MY EMAIL

Изменение коммьюнити
Настройки по умолчанию:
rocommunity public default -V systemonly
Пример:
rocommunity private default -V systemonly

Перезапускаем для применения настроек
/etc/init.d/snmpd restart

Скачать файлы конфигурации snmp.conf snmpd.conf snmptrapd snmptrapd.conf snmptt.conf snmptt.ini
snmp-trap-conf-rus.zip
snmp-trap-conf-rus.zip
(29.92 КБ) 23 скачивания
Если в логе заббикса лезут следующие ошибки
Cannot find module (PowerNet-MIB): At line 1 in (none)
Означает что нужно скачать или обновить библиотеку PowerNet-MIB если билиотека новая нужно проверить ее на зависимости
после перезапустить службу systemctl restart snmpd

Пример зависимостей MIB
Ошибки
Cannot find module (PowerNet-MIB): At line 1 in (none)
Cannot find module (DELL-SHADOW-MIB): At line 1 in (none)
Cannot find module (IDRAC-MIB): At line 1 in (none)

Все три mib ссылаются на одни и те же файлы mib
IDRAC-MIB
DELL-SHADOW-MIB
PowerNet-MIB

Ссылаются на
IMPORTS
FROM RFC1155-SMI + не ссылается никуда
FROM RFC1213-MIB + сылается
FROM RFC1155-SMI +
FROM RFC-1212 +
FROM RFC1155-SMI +
FROM RFC1158-MIB +
FROM RFC1155-SMI +
FROM SNMPv2-TC +
FROM SNMPv2-SMI + не ссылается никуда
FROM IANAifType-MIB
FROM SNMPv2-SMI +
FROM SNMPv2-TC +
FROM RFC-1212 + ссылается
FROM RFC1155-SMI +
FROM RFC1158-MIB +
FROM RFC-1215; + не ссылается никуда
-- IMPORTS End

SNMPv2-MIB DEFINITIONS ::= BEGIN
FROM SNMPv2-SMI
FROM SNMPv2-TC
FROM SNMPv2-CONF
FROM SNMPv2-SMI

Мои mib файлы
Скачать
mibs.zip
mibs.zip
(3.13 МБ) 26 скачиваний
Содержимое архива mib
Показать
ADAPTEC-ASM-EXT-STORAGE-MGMT-STN-MIB.mib
ADAPTEC-STORAGE-MANAGER-TRAP-MIB.mib
ADAPTEC-UNIVERSAL-STORAGE-MIB.mib
BASP-Config-MIB.mib
BASP-Statistics-MIB.mib
Brcm-adapterInfo-MIB.mib
Brcm-BASPTrap-MIB.mib
CISCO-SMI.mib
CPKM2&3-MIB.mib
DCS3FRU-MIB.mib
DCS3RMT-MIB.mib
DELL-ASF-MIB.mib
DELL-MM-MIB.mib
DELL-RAC-MIB.txt
DELL-SHADOW-MIB.mib
DELLRAC-MIB.mib
DNS-340L-MIB.mib
DrWeb-Base.mib
DrWeb-Snmpd.mib
FOUNDRY-SN-ROOT-MIB.txt
GNOME-SMI.txt
IDRAC-MIB-SMIv2.mib
IDRAC-MIB.mib
INTEL-LAN-ADAPTERS-MIB.mib
LM-SENSORS-MIB.txt
MIB-Dell-10892.mib
MIB-Dell-10900.mib
MIB-Dell-CM.mib
MIB-Dell-OME.mib
NET-SNMP-AGENT-MIB.txt
NET-SNMP-EXAMPLES-MIB.txt
NET-SNMP-EXTEND-MIB.txt
NET-SNMP-MIB.txt
NET-SNMP-MONITOR-MIB.txt
NET-SNMP-PASS-MIB.txt
NET-SNMP-PERIODIC-NOTIFY-MIB.txt
NET-SNMP-SYSTEM-MIB.txt
NET-SNMP-TC.txt
NET-SNMP-VACM-MIB.txt
PowerNet-MIB.mib
QLASP-Config-MIB.mib
QLASP-Statistics-MIB.mib
QLGC-adapterInfo-MIB.mib
QLGC-QLASPTrap-MIB.mib
RFC-1212-MIB.txt
RFC-1215.txt
RFC1066-MIB.mib
RFC1156-MIB.mib
RFC1158-MIB.mib
RFC1229-MIB.mib
RFC1231-MIB.mib
RFC1232-MIB.mib
RFC1233-MIB.mib
RFC1253-MIB.mib
RFC1271-MIB.mib
RFC1289-phivMIB.mib
RFC1304-MIB.mib
RFC1315-MIB.mib
RFC1316-MIB.mib
RFC1317-MIB.mib
RFC1318-MIB.mib
RFC1389-MIB.mib
RFC1398-MIB.mib
RFC1406-MIB.mib
RFC1407-MIB.mib
SNMP-TLS-TM-MIB.txt
SNMPv2-SMI-v1.mib
StorageManagement-MIB.mib
UCD-DEMO-MIB.txt
UCD-DISKIO-MIB.txt
UCD-DLMOD-MIB.txt
UCD-IPFILTER-MIB.txt
UCD-IPFWACC-MIB.txt
UCD-SNMP-MIB-OLD.txt
UCD-SNMP-MIB.txt
IANA-ADDRESS-FAMILY-NUMBERS-MIB
IANA-CHARSET-MIB
IANA-FINISHER-MIB
IANA-GMPLS-TC-MIB
IANA-IPPM-METRICS-REGISTRY-MIB
IANA-ITU-ALARM-TC-MIB
IANA-LANGUAGE-MIB
IANA-MALLOC-MIB
IANA-MAU-MIB
IANA-PRINTER-MIB
IANA-PWE3-MIB
IANA-RTPROTO-MIB
IANAifType-MIB
IANATn3270eTC-MIB
IPFIX-SELECTOR-MIB
ACCOUNTING-CONTROL-MIB
ADSL-LINE-EXT-MIB
ADSL-LINE-MIB
ADSL-TC-MIB
ADSL2-LINE-MIB
ADSL2-LINE-TC-MIB
AGENTX-MIB
AGGREGATE-MIB
ALARM-MIB
APM-MIB
APPC-MIB
APPLETALK-MIB
APPLICATION-MIB
APPN-DLUR-MIB
APPN-MIB
APPN-TRAP-MIB
APS-MIB
ARC-MIB
ATM-ACCOUNTING-INFORMATION-MIB
ATM-MIB
ATM-TC-MIB
ATM2-MIB
BGP4-MIB
BRIDGE-MIB
CAPWAP-BASE-MIB
CAPWAP-DOT11-MIB
CHARACTER-MIB
CIRCUIT-IF-MIB
CLNS-MIB
COPS-CLIENT-MIB
DECNET-PHIV-MIB
DIAL-CONTROL-MIB
DIFFSERV-CONFIG-MIB
DIFFSERV-DSCP-TC
DIFFSERV-MIB
DIRECTORY-SERVER-MIB
DISMAN-EVENT-MIB
DISMAN-EXPRESSION-MIB
DISMAN-NSLOOKUP-MIB
DISMAN-PING-MIB
DISMAN-SCHEDULE-MIB
DISMAN-SCRIPT-MIB
DISMAN-TRACEROUTE-MIB
DLSW-MIB
DNS-RESOLVER-MIB
DNS-SERVER-MIB
DOCS-BPI-MIB
DOCS-CABLE-DEVICE-MIB
DOCS-IETF-BPI2-MIB
DOCS-IETF-CABLE-DEVICE-NOTIFICATION-MIB
DOCS-IETF-QOS-MIB
DOCS-IETF-SUBMGT-MIB
DOCS-IF-MIB
DOT12-IF-MIB
DOT12-RPTR-MIB
DOT3-EPON-MIB
DOT3-OAM-MIB
DPI20-MIB
DS0-MIB
DS0BUNDLE-MIB
DS1-MIB
DS3-MIB
DSA-MIB
DSMON-MIB
DVB-RCS-MIB
EBN-MIB
EFM-CU-MIB
ENTITY-MIB
ENTITY-SENSOR-MIB
ENTITY-STATE-MIB
ENTITY-STATE-TC-MIB
ETHER-CHIPSET-MIB
EtherLike-MIB
FC-MGMT-MIB
FCIP-MGMT-MIB
FDDI-SMT73-MIB
FIBRE-CHANNEL-FE-MIB
Finisher-MIB
FLOW-METER-MIB
FORCES-MIB
FR-ATM-PVC-SERVICE-IWF-MIB
FR-MFR-MIB
FRAME-RELAY-DTE-MIB
FRNETSERV-MIB
FRSLD-MIB
GMPLS-LABEL-STD-MIB
GMPLS-LSR-STD-MIB
GMPLS-TC-STD-MIB
GMPLS-TE-STD-MIB
GSMP-MIB
HC-ALARM-MIB
HC-PerfHist-TC-MIB
HC-RMON-MIB
HCNUM-TC
HDSL2-SHDSL-LINE-MIB
HOST-RESOURCES-MIB
HOST-RESOURCES-TYPES
HPR-IP-MIB
HPR-MIB
IBM-6611-APPN-MIB
IF-CAP-STACK-MIB
IF-INVERTED-STACK-MIB
IF-MIB
IFCP-MGMT-MIB
IGMP-STD-MIB
INET-ADDRESS-MIB
INTEGRATED-SERVICES-GUARANTEED-MIB
INTEGRATED-SERVICES-MIB
INTERFACETOPN-MIB
IP-FORWARD-MIB
IP-MIB
IPATM-IPMC-MIB
IPFIX-MIB
IPMCAST-MIB
IPMROUTE-STD-MIB
IPOA-MIB
IPS-AUTH-MIB
IPSEC-SPD-MIB
IPV6-FLOW-LABEL-MIB
IPV6-ICMP-MIB
IPV6-MIB
IPV6-MLD-MIB
IPV6-TC
IPV6-TCP-MIB
IPV6-UDP-MIB
ISCSI-MIB
ISDN-MIB
ISIS-MIB
ISNS-MIB
ITU-ALARM-MIB
ITU-ALARM-TC-MIB
Job-Monitoring-MIB
L2TP-MIB
LANGTAG-TC-MIB
LMP-MIB
MALLOC-MIB
MAU-MIB
MGMD-STD-MIB
MIDCOM-MIB
MIOX25-MIB
MIP-MIB
MOBILEIPV6-MIB
Modem-MIB
MPLS-FTN-STD-MIB
MPLS-L3VPN-STD-MIB
MPLS-LC-ATM-STD-MIB
MPLS-LC-FR-STD-MIB
MPLS-LDP-ATM-STD-MIB
MPLS-LDP-FRAME-RELAY-STD-MIB
MPLS-LDP-GENERIC-STD-MIB
MPLS-LDP-STD-MIB
MPLS-LSR-STD-MIB
MPLS-TC-STD-MIB
MPLS-TE-STD-MIB
MSDP-MIB
MTA-MIB
NAT-MIB
NEMO-MIB
NETWORK-SERVICES-MIB
NHRP-MIB
NOTIFICATION-LOG-MIB
OPT-IF-MIB
OSPF-MIB
OSPF-TRAP-MIB
OSPFV3-MIB
P-BRIDGE-MIB
PARALLEL-MIB
PerfHist-TC-MIB
PIM-BSR-MIB
PIM-MIB
PIM-STD-MIB
PINT-MIB
PKTC-IETF-EVENT-MIB
PKTC-IETF-MTA-MIB
PKTC-IETF-SIG-MIB
POLICY-BASED-MANAGEMENT-MIB
POWER-ETHERNET-MIB
PPP-BRIDGE-NCP-MIB
PPP-IP-NCP-MIB
PPP-LCP-MIB
PPP-SEC-MIB
Printer-MIB
PTOPO-MIB
PW-ATM-MIB
PW-ENET-STD-MIB
PW-MPLS-STD-MIB
PW-STD-MIB
PW-TC-STD-MIB
PW-TDM-MIB
Q-BRIDGE-MIB
RADIUS-ACC-CLIENT-MIB
RADIUS-ACC-SERVER-MIB
RADIUS-AUTH-CLIENT-MIB
RADIUS-AUTH-SERVER-MIB
RADIUS-DYNAUTH-CLIENT-MIB
RADIUS-DYNAUTH-SERVER-MIB
RAQMON-MIB
RAQMON-RDS-MIB
RDBMS-MIB
RFC1155-SMI
RFC1213-MIB
RFC1381-MIB
RFC1382-MIB
RFC1414-MIB
RIPv2-MIB
RMON-MIB
RMON2-MIB
ROHC-MIB
ROHC-RTP-MIB
ROHC-UNCOMPRESSED-MIB
RS-232-MIB
RSERPOOL-MIB
RSTP-MIB
RSVP-MIB
RTP-MIB
SCSI-MIB
SCTP-MIB
SFLOW-MIB
SIP-COMMON-MIB
SIP-MIB
SIP-SERVER-MIB
SIP-TC-MIB
SIP-UA-MIB
SLAPM-MIB
SMON-MIB
SMUX-MIB
SNA-NAU-MIB
SNA-SDLC-MIB
SNMP-COMMUNITY-MIB
SNMP-FRAMEWORK-MIB
SNMP-IEEE802-TM-MIB
SNMP-MPD-MIB
SNMP-NOTIFICATION-MIB
SNMP-PROXY-MIB
SNMP-REPEATER-MIB
SNMP-SSH-TM-MIB
SNMP-TARGET-MIB
SNMP-TSM-MIB
SNMP-USER-BASED-SM-MIB
SNMP-USM-AES-MIB
SNMP-USM-DH-OBJECTS-MIB
SNMP-VIEW-BASED-ACM-MIB
SNMPv2-CONF
SNMPv2-M2M-MIB
SNMPv2-MIB
SNMPv2-PARTY-MIB
SNMPv2-PDU
SNMPv2-SMI
SNMPv2-TC
SNMPv2-TM
SNMPv2-USEC-MIB
SONET-MIB
SOURCE-ROUTING-MIB
SSPM-MIB
SYSAPPL-MIB
SYSLOG-MSG-MIB
SYSLOG-TC-MIB
T11-FC-FABRIC-ADDR-MGR-MIB
T11-FC-FABRIC-CONFIG-SERVER-MIB
T11-FC-FABRIC-LOCK-MIB
T11-FC-FSPF-MIB
T11-FC-NAME-SERVER-MIB
T11-FC-ROUTE-MIB
T11-FC-RSCN-MIB
T11-FC-SP-AUTHENTICATION-MIB
T11-FC-SP-POLICY-MIB
T11-FC-SP-SA-MIB
T11-FC-SP-TC-MIB
T11-FC-SP-ZONING-MIB
T11-FC-VIRTUAL-FABRIC-MIB
T11-FC-ZONE-SERVER-MIB
T11-TC-MIB
TCP-ESTATS-MIB
TCP-MIB
TCPIPX-MIB
TE-LINK-STD-MIB
TE-MIB
TIME-AGGREGATE-MIB
TN3270E-MIB
TN3270E-RT-MIB
TOKEN-RING-RMON-MIB
TOKENRING-MIB
TOKENRING-STATION-SR-MIB
TPM-MIB
TRANSPORT-ADDRESS-MIB
TRIP-MIB
TRIP-TC-MIB
TUNNEL-MIB
UDP-MIB
UDPLITE-MIB
UPS-MIB
URI-TC-MIB
VDSL-LINE-EXT-MCM-MIB
VDSL-LINE-EXT-SCM-MIB
VDSL-LINE-MIB
VDSL2-LINE-MIB
VDSL2-LINE-TC-MIB
VPN-TC-STD-MIB
VRRP-MIB
WWW-MIB
количество слов: 2892
Аватара пользователя
Артём Мамзиков
Admin
Сообщения: 367
Стаж: 2 года 9 месяцев
Откуда: Вологодская область
Контактная информация:

Настройка SNMP Traps в zabbix Debian

Сообщение Артём Мамзиков »

Формат SNMP трапа

Все пользовательские получатели трапов perl и конфигурация SNMPTT трапов должны форматировать трап следующим образом:

[штамп времени] [трап, часть 1] ZBXTRAP [адрес] [трап, часть 2], где

[штамп времени] - штамп времени используемый в элементах данных типа 'Журнал (лог)'
ZBXTRAP - заголовок, который указывает, что с этой строки начался новый трап
[адрес] - IP адрес, используемый для поиска узла сети для этого трапа

Обратите внимание, что “ZBXTRAP” и “[адрес]” при обработке отрезаются из сообщения. Если трап форматируется как-то иначе, Zabbix может разобрать такие трапы неожиданным образом.

Пример трапа:
11:30:15 2011/07/27 .1.3.6.1.6.3.1.1.5.3 Normal “Status Events” localhost - ZBXTRAP 192.168.1.1 Link down on interface 2. Admin state: 1. Operational state: 2
Такое сообщение будет результатом следующего трапа для SNMP интерфейса с IP=192.168.1.1:
11:30:15 2011/07/27 .1.3.6.1.6.3.1.1.5.3 Normal “Status Events” localhost - Link down on interface 2. Admin state: 1. Operational state: 2


В Узле В поле Ключ используйте один из ключей SNMP трапов:
snmptrap[регулярное выражение]
Отлов всех SNMP трапов , который совпадают с регулярным выражением, указанном в поле регулярное выражение. Если регулярное выражение не указано, принимаются все трапы.

snmptrap.fallback
Отлов всех SNMP трапы, которые не совпадают ни с одним из элементов данных snmptrap[] для этого интерфейса.

Укажите Тип информации равным 'Журнал (лог)' для обработки штампов времени. Обратите внимание, что другие форматы, такие как 'Числовой' также приемлемы, но для этого может потребоваться пользовательский обработчик трапов

Формат времени в журнале (логе) hh:mm:ss yyyy/MM/dd


snmptrapzabbixtest3
snmptrapzabbixtest3
snmptrapzabbixtest3dannie
snmptrapzabbixtest3dannie
сперва показывает дату
17.03.2020 15:34:46 17.03.2020 15:34:45 15:34:45 2020/03/17 PDU INFO:
Потом общую инфу подробно откуда как
notificationtype TRAP
errorstatus 0
version 0
receivedfrom UDP: [127.0.0.1]:46624->[127.0.0.1]:162
requestid 0
community public
transactionid 9
errorindex 0
messageid 0

А потом с какими файлами mib совпал оид и где что он означает
VARBINDS:
DISMAN-EVENT-MIB::sysUpTimeInstance type=67 value=Timeticks: (55) 0:00:00.55
SNMPv2-MIB::snmpTrapOID.0 type=6 value=OID: IF-MIB::linkDown.0.33
IF-MIB::linkDown type=4 value=STRING: "teststring000"
SNMP-COMMUNITY-MIB::snmpTrapCommunity.0 type=4 value=STRING: "public"
SNMPv2-MIB::snmpTrapEnterprise.0 type=6 value=OID: IF-MIB::linkDown

Делаем регулярку и предобработку
snmp trap reg.jpg
snmp trap reg.jpg
Пред обработка Регулярное выражение
Показать
начало совпадения в строке этого текста уже не будет
^начало совпадения в строке > начало совпадения в строке

^точное совпадение строки $ > точное совпадение строки

^ -начало сторки
$ - конец строки

[0-9.]* -любое количество цифр или точек
[0-9._]* -необязательно, любое количество цифр, точек или подчёркиваний

если [0-9.] значение 594 будет выглядеть [0-9][0-9][0-9]

Проверка на
SNMPv2-MIB::coldStart type=4 value=STRING: "proverka"
SNMP-COMMUNITY-MIB::snmpTrapCommunity.0 type=4 value=STRING: "public"
SNMP-COMMUNITY-MIB::snmpTrapCommunity.0 type=4 value=STRING: "594"

type=[0-9] value=STRING: "[0-9]*"
ответ type=4 value=STRING: "594"

type=[0-9] value=STRING: "[a-z]*" (без * выйдет одна буква, со * выйдет слово proverka . Так как у нас значение в кавычках из также указваем ")
ответ type=4 value=STRING: "proverka"
берет самое первое совпадаение дальше не ищет

type=[0-9] value=STRING: "[a-z]*[0-9]*"
либо слово или числовой или слово с числами

вывод - шаблон форматирования вывода.
\N (где N=1..9) - управляющая последовательность заменяется N-нной совпадающей группой.
Управляющая последовательность \0 заменяется совпадающим текстом
Делаем тестовые trap
root@ZABBIXSERVER:~# snmptrap -v 1 -c public 127.0.0.1 '.1.3.6.1.6.3.1.1.5.1' '0.0.0.0' 6 33 '55' .1.3.6.1.6.3.1.1.5.1 s "proverka"
root@ZABBIXSERVER:~# snmptrap -v 1 -c public 127.0.0.1 '.1.3.6.1.6.3.1.1.5.1' '0.0.0.0' 6 33 '55' .1.3.6.1.6.3.1.1.5.1 s "proverka111"

Смотрим Последние данные
test trap zabbix.jpg
test trap zabbix.jpg

Регулярные выражения
Еще пример по СРК2М
Показать
23.03.2020 14:01:50 23.03.2020 14:01:49

14:01:49 2020/03/23 PDU INFO:
receivedfrom UDP: [192.168.60.17]:161->[192.168.60.111]:162
requestid 0
community public
notificationtype TRAP
messageid 0
version 0
errorstatus 0
transactionid 9
errorindex 0
VARBINDS:
DISMAN-EVENT-MIB::sysUpTimeInstance type=67 value=Timeticks: (2166420) 6:01:04.20
SNMPv2-MIB::snmpTrapOID.0 type=6 value=OID: SNMPv2-MIB::sysObjectID.0.0.1
SNMPv2-SMI::enterprises.43573.1.1.1.0 type=4 value=STRING: "SRKM2-AC865E"
SNMPv2-SMI::enterprises.43573.1.1.2.0 type=2 value=INTEGER: 0
SNMPv2-SMI::enterprises.43573.1.1.3.0 type=2 value=INTEGER: 0
SNMPv2-SMI::enterprises.43573.1.1.4.0 type=2 value=INTEGER: 0
SNMP-COMMUNITY-MIB::snmpTrapAddress.0 type=64 value=IpAddress: 192.168.358.26
SNMP-COMMUNITY-MIB::snmpTrapCommunity.0 type=4 value=STRING: "public"
SNMPv2-MIB::snmpTrapEnterprise.0 type=6 value=OID: SNMPv2-MIB::sysObjectID.0

Ключ будет snmptrap[deviceName]
Обрабатываем 1 строку
SNMPv2-SMI::enterprises.43573.1.1.1.0 type=4 value=STRING: "SRKM2-AC865E"
Делаем регулярку
.43573.1.1.1.0 type=4 value=STRING: "[A-Z]*[a-z]*[0-9-]*[A-Z]*[a-z]*[0-9]*[A-Z]*[a-z]*"
Получаем
.43573.1.1.1.0 type=4 value=STRING: "SRKM2-AC865E"

Делаем обрезку с лева с права и получаем чистое имя SRKM2-AC865E

Код предупреждения о состоянии системы
Ключ будет snmptrap[warnCode]
Обрабатываем 1 строку
SNMPv2-SMI::enterprises.43573.1.1.3.0 type=2 value=INTEGER: 0
Делаем регулярку
.43573.1.1.3.0 type=[0-9] value=INTEGER: [0-9]
Получаем
.43573.1.1.3.0 type=2 value=INTEGER: 0
Обрезать с лева .43573.1.1.3.0 type=2 value=INTEGER
Обрезать слева :
Получаем 0

И так далее.


Так как trap приходит одним логом, а данные там для 4х элементов делаем один общий трап,
а от него делаем 4 зависимых элемента с пред обработкой.
traps srk2m zabbix.jpg
traps srk2m zabbix.jpg
Запрос по всем mib и OID
root@ZABBIXSERVER:~# snmpwalk -v 2c -c public 192.168.***.*** > IPsnmp.log выгрузка всего поддерживаемого через snmp
~# snmpwalk -v 2c -c public 192.168.***.*** |wc -l кол-во строк
3878
количество слов: 672
Аватара пользователя
Артём Мамзиков
Admin
Сообщения: 367
Стаж: 2 года 9 месяцев
Откуда: Вологодская область
Контактная информация:

Настройка SNMP Traps в zabbix Debian

Сообщение Артём Мамзиков »

При настройке коммутатора D-link DGS-1210 добавил DLINK-DGS-1210-F1-SERIES-MIB.mib
При запросе получаем ошибку
snmpwalk -v 1 -c public 192.168.175.45 .1.3.6.1.4.1.171.11.153.1000.1.30.1
Expected "(" (_): At line 9002 in /usr/share/snmp/mibs/DLINK-DGS-1210-F1-SERIES-MIB.mib
Should be ACCESS (Server): At line 9002 in /usr/share/snmp/mibs/DLINK-DGS-1210-F1-SERIES-MIB.mib
Bad parse of OBJECT-TYPE: At line 9002 in /usr/share/snmp/mibs/DLINK-DGS-1210-F1-SERIES-MIB.mib

Ошибка связана то что в строке 9002 videoManagement_Server(0), есть нижнее подчеркивание _ и ему не нравится меняем _ на - и ошибка уходит!

Исправленная MIB
Скачать
DLINK-DGS-1210-F1-SERIES-MIB.zip
DLINK-DGS-1210-F1-SERIES-MIB.zip
(60.34 КБ) 3 скачивания
количество слов: 110
Ответить Вложения 12 Пред. темаСлед. тема

Вернуться в «Установка Заббикс»