Есть три варианта настройки получения snmp трапов zabbix'ом.
1. SNMPTT (SNMP Trap Translator)
2. Perl скрипт
3. Bash скрипт и zabbix_sender
Примеры(почти копипаст) рассматриваются для zabbix 2.0.6 установленный на CentOS 6.4 minimal
Настройка правил для файрвола
iptables -I INPUT -p udp --dport 161 -j ACCEPT
service iptables save
На время настройки можно отключить SElinux, чтобы не было проблем с созданием файлов. Позже необходимо будет настроить соответствующие политики.
setenforce 0
Не забыть настроить ротацию файла трапов если используется 1 или 2 метод.
При использовании 2 и 3 методов, скрипты можно переписать под свои нужды и свои форматы.
Установка snmp, если еще не установлен
yum install net-snmp net-snmp-utils net-snmp-perl
chkconfig snmptrapd on
1. SNMPTT (SNMP Trap Translator)
Установка репозитория epel
rpm -Uvh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
yum install snmptt
Настройка snmptrapd
/etc/snmp/snmptrapd.conf
disableAuthorization yes
traphandle default snmptthandler
#для ведения логов самого snmptrapd
# logoption f /tmp/snmptrapd.log
Настройка snmptt
/etc/snmp/snmptt.ini
net_snmp_perl_enable = 1
mibs_environment = ALL
date_time_format = %H:%M:%S %Y/%m/%d
log_enable = 1
log_file = /tmp/my_zabbix_traps.tmp
#Если что-то не работает можно включить отладку
DEBUGGING = 2
DEBUGGING_FILE = /tmp/snmptt.debug
Создать шаблоны представления трапов
/etc/snmp/snmptt.conf
#Каждая инструкция FORMAT должна начинаться с "ZBXTRAP [адрес]"
# для всех трапов
EVENT general .* "General event" Normal
FORMAT ZBXTRAP $aA $1
#
# конкретный трап
EVENT coldStart .1.3.6.1.6.3.1.1.5.1.0.33 "Status Events" Normal
FORMAT ZBXTRAP $aA Device reinitialized (coldStart)
Перезапустить сервисы
service snmptt restart
service snmptrapd restart
Включить в автозагрузку
chkconfig snmptt on
chkconfig snmptrapd on
Выполнить тестовые трапы
snmptrap -v 1 -c public 127.0.0.1 '.1.3.6.1.6.3.1.1.5.1' '0.0.0.0' 6 1 '55' .1.3.6.1.6.3.1.1.5.1 s "teststring000"
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 "teststring000"
В файле /tmp/my_zabbix_traps.tmp должны появиться подобные строки
11:28:38 2013/06/05 .1.3.6.1.6.3.1.1.5.1.0.1 Normal "General event" localhost - ZBXTRAP 127.0.0.1 teststring000
11:29:46 2013/06/05 .1.3.6.1.6.3.1.1.5.1.0.33 Normal "Status Events" localhost - ZBXTRAP 127.0.0.1 Device reinitialized (coldStart)
/usr/local/etc/zabbix_server.conf
SNMPTrapperFile=/tmp/my_zabbix_traps.tmp
StartSNMPTrapper=1
Настроить Item:
Пример Item для всех остальных
Выполнить еще раз тестовые трапы.
Аналогично можно настроить трапы для других хостов и создавать триггеры как обычно.
2. Perl скрипт
Распаковать(или скопировать) скрипт из архива zabbix
cd /usr/local/bin/
tar xvf /tmp/zabbix-2.0.6.tar.gz zabbix-2.0.6/misc/snmptrap/zabbix_trap_receiver.pl --strip-components=3
Настройка snmptrapd
/etc/snmp/snmptrapd.conf
disableAuthorization yes
perl do "/usr/local/bin/zabbix_trap_receiver.pl";
#для ведения логов snmptrapd
# logoption f /tmp/snmptrapd.log
service snmptrapd restart
Выполнить тестовые трапы. И проверить содержимое
/tmp/zabbix_traps.tmp
Должно быть подобное
11:28:05 2013/06/06 ZBXTRAP 127.0.0.1
PDU INFO:
notificationtype TRAP
version 0
receivedfrom UDP: [127.0.0.1]:40882->[127.0.0.1]
...
Включить траппер
/usr/local/etc/zabbix_server.conf
SNMPTrapperFile=/tmp/zabbix_traps.tmp
StartSNMPTrapper=1
Настройка Item аналогична SNMPTT.
3. Bash скрипт и zabbix_sender
В данном варианте не потребуются промежуточные файлы, скрипт будет отправлять трапы через zabbix_sender. Соответственно в данном варианте не требуется ротация файла трапов.
Тип данных будет не snmptrap, а zabbix trap.
Распаковать(или скопировать) скрипт из архива zabbix
cd /usr/local/bin/
tar xvf /tmp/zabbix-2.0.6.tar.gz zabbix-2.0.6/misc/snmptrap/snmptrap.sh --strip-components=3
Настройка snmptrapd
/etc/snmp/snmptrapd.conf
disableAuthorization yes
traphandle default ./usr/local/bin/snmptrap.sh
Настроить скрипт
/usr/local/bin/snmptrap.sh
ZABBIX_SERVER="localhost";
ZABBIX_PORT="10051";
ZABBIX_SENDER="/usr/local/bin/zabbix_sender";
KEY="zabbixTrapKey";
HOST="Zabbix server";
#В данном примере имя хоста содержит пробелы, поэтому надо добавить "" вокруг $HOST
$ZABBIX_SENDER -z $ZABBIX_SERVER -p $ZABBIX_PORT -s "$HOST" -k $KEY -o "$str"
service snmptrapd restart
Key должен быть равен KEY из файла snmptrap.sh
Отправить тестовый трап
В LastData должно появиться следующе
1. SNMPTT (SNMP Trap Translator)
2. Perl скрипт
3. Bash скрипт и zabbix_sender
Примеры(почти копипаст) рассматриваются для zabbix 2.0.6 установленный на CentOS 6.4 minimal
Общее
Настройка правил для файрвола
iptables -I INPUT -p udp --dport 161 -j ACCEPT
service iptables save
На время настройки можно отключить SElinux, чтобы не было проблем с созданием файлов. Позже необходимо будет настроить соответствующие политики.
setenforce 0
Не забыть настроить ротацию файла трапов если используется 1 или 2 метод.
При использовании 2 и 3 методов, скрипты можно переписать под свои нужды и свои форматы.
Установка snmp, если еще не установлен
yum install net-snmp net-snmp-utils net-snmp-perl
chkconfig snmptrapd on
1. SNMPTT (SNMP Trap Translator)
Установка репозитория epel
rpm -Uvh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
yum install snmptt
Настройка snmptrapd
/etc/snmp/snmptrapd.conf
disableAuthorization yes
traphandle default snmptthandler
#для ведения логов самого snmptrapd
# logoption f /tmp/snmptrapd.log
Настройка snmptt
/etc/snmp/snmptt.ini
net_snmp_perl_enable = 1
mibs_environment = ALL
date_time_format = %H:%M:%S %Y/%m/%d
log_enable = 1
log_file = /tmp/my_zabbix_traps.tmp
#Если что-то не работает можно включить отладку
DEBUGGING = 2
DEBUGGING_FILE = /tmp/snmptt.debug
Создать шаблоны представления трапов
/etc/snmp/snmptt.conf
#Каждая инструкция FORMAT должна начинаться с "ZBXTRAP [адрес]"
# для всех трапов
EVENT general .* "General event" Normal
FORMAT ZBXTRAP $aA $1
#
# конкретный трап
EVENT coldStart .1.3.6.1.6.3.1.1.5.1.0.33 "Status Events" Normal
FORMAT ZBXTRAP $aA Device reinitialized (coldStart)
Перезапустить сервисы
service snmptt restart
service snmptrapd restart
Включить в автозагрузку
chkconfig snmptt on
chkconfig snmptrapd on
Выполнить тестовые трапы
snmptrap -v 1 -c public 127.0.0.1 '.1.3.6.1.6.3.1.1.5.1' '0.0.0.0' 6 1 '55' .1.3.6.1.6.3.1.1.5.1 s "teststring000"
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 "teststring000"
В файле /tmp/my_zabbix_traps.tmp должны появиться подобные строки
11:28:38 2013/06/05 .1.3.6.1.6.3.1.1.5.1.0.1 Normal "General event" localhost - ZBXTRAP 127.0.0.1 teststring000
11:29:46 2013/06/05 .1.3.6.1.6.3.1.1.5.1.0.33 Normal "Status Events" localhost - ZBXTRAP 127.0.0.1 Device reinitialized (coldStart)
Настройка приёма трапов в zabbix
Включить траппер/usr/local/etc/zabbix_server.conf
SNMPTrapperFile=/tmp/my_zabbix_traps.tmp
StartSNMPTrapper=1
Настроить Item:
Пример Item для конкретного трапа
Выполнить еще раз тестовые трапы.
Аналогично можно настроить трапы для других хостов и создавать триггеры как обычно.
2. Perl скрипт
Распаковать(или скопировать) скрипт из архива zabbix
cd /usr/local/bin/
tar xvf /tmp/zabbix-2.0.6.tar.gz zabbix-2.0.6/misc/snmptrap/zabbix_trap_receiver.pl --strip-components=3
Настройка snmptrapd
/etc/snmp/snmptrapd.conf
disableAuthorization yes
perl do "/usr/local/bin/zabbix_trap_receiver.pl";
#для ведения логов snmptrapd
# logoption f /tmp/snmptrapd.log
service snmptrapd restart
Выполнить тестовые трапы. И проверить содержимое
/tmp/zabbix_traps.tmp
Должно быть подобное
11:28:05 2013/06/06 ZBXTRAP 127.0.0.1
PDU INFO:
notificationtype TRAP
version 0
receivedfrom UDP: [127.0.0.1]:40882->[127.0.0.1]
...
Включить траппер
/usr/local/etc/zabbix_server.conf
SNMPTrapperFile=/tmp/zabbix_traps.tmp
StartSNMPTrapper=1
Настройка Item аналогична SNMPTT.
3. Bash скрипт и zabbix_sender
В данном варианте не потребуются промежуточные файлы, скрипт будет отправлять трапы через zabbix_sender. Соответственно в данном варианте не требуется ротация файла трапов.
Тип данных будет не snmptrap, а zabbix trap.
Распаковать(или скопировать) скрипт из архива zabbix
cd /usr/local/bin/
tar xvf /tmp/zabbix-2.0.6.tar.gz zabbix-2.0.6/misc/snmptrap/snmptrap.sh --strip-components=3
Настройка snmptrapd
/etc/snmp/snmptrapd.conf
disableAuthorization yes
traphandle default ./usr/local/bin/snmptrap.sh
Настроить скрипт
/usr/local/bin/snmptrap.sh
ZABBIX_SERVER="localhost";
ZABBIX_PORT="10051";
ZABBIX_SENDER="/usr/local/bin/zabbix_sender";
KEY="zabbixTrapKey";
HOST="Zabbix server";
#В данном примере имя хоста содержит пробелы, поэтому надо добавить "" вокруг $HOST
$ZABBIX_SENDER -z $ZABBIX_SERVER -p $ZABBIX_PORT -s "$HOST" -k $KEY -o "$str"
service snmptrapd restart
Настройка приёма трапов в zabbix
Key должен быть равен KEY из файла snmptrap.sh
Отправить тестовый трап
В LastData должно появиться следующе
Добрый день!
ОтветитьУдалитьСтатья хорошая, но пример приведен только для локального хоста. У меня вот не получается настроить трапы с оборудования Huawei.Сами трапы приходят и складываются в файл в таком виде :
IF-MIB::linkUp Normal "Switch" Switch_IP - ZBXTRAP Switch_IP IF-MIB::ifIndex.31:31 IF-MIB::ifAdminStatus.31:up IF-MIB::ifOperStatus.31:up IF-MIB::ifDescr.31:Vlanif100
И все, Zabbix их не отображает!Не подскажите куда смотреть?
Проверить включен ли траппер в файле zabbix_server.conf
УдалитьДалее смотреть лог /var/log/zabbix/zabbix_server.log
У меня аналогичная проблема. Трапы с коммутатора до сервера доходят, т.е. логах записи присутствуют, но в zabbix они не попадают.
УдалитьВ файле /etc/zabbix/zabbix_server.conf включил:
SNMPTrapperFile=/tmp/zabbix_traps.tmp
StartSNMPTrapper=1
в логе /var/log/zabbix/zabbix_server.log записи одного содержания
32108:20130821:131922.534 cannot send list of active checks to [127.0.0.1]: host [Zabbix server] not found
Сервис zabbix_server перезапускали? Какой метод используете для передачи трапов snmptt, perl или bash?
УдалитьОтсутствие active checks с snmp не связано, возможно Вы переименовывали хост Zabbix server или что не настроили в конфиге агента.
сервис zabbix_server перезапускал. использую bash (3-й способ).
УдалитьФайл конфига агента вы имеет в виду zabbix_agentd.conf или что-то другое. Этот файл я вообще не конфигурировал.
bash вообще не использует тип snmptrap (как написано используется тип zabbix trapper). Скрипт сам отправляет trap напрямую в zabbix. Поэтому наверно в файле zabbix_agentв.conf надо указать ServerActive=127.0.0.1
УдалитьВ файле /etc/zabbix/zabbix_agentd.conf строка ServerActive=127.0.0.1 прописана.
УдалитьПопробуйте запустить sender вручную, и посмотреть что получится
Удалитьесли Вы про zabbix_sender то вот что он мне выдал:
Удалить~$ zabbix_sender -z localhost -p 10051
sent: 0; skipped: 1; total: 1
ну так параметры же надо указывать
Удалитьzabbix_sender -z localhost -p 10051 -s HOST -k KEY -o VALUE
HOST - должен быть указан точно как заведен на сервере
KEY - ключ item, куда должны складываться значения
Теперь я наконец-то понял что такое HOST. Это же "Узел сети". :-)
УдалитьПолучилось отправить данные в заббикс:
~$ zabbix_sender -z localhost -p 10051 -s snmptraps -k snmptraps -o TestTraps
info from server: "Processed 1 Failed 0 Total 1 Seconds spent 0.000118"
sent: 1; skipped: 0; total: 1
Правда теперь я в озадачен как разделять трапы по узлам, ведь все трапы будут сыпаться на один узел.
Либо разбирать тарп внутри скрипта, что imho дело не удобное для bash.
УдалитьПоэтому и рекомендовали использовать или snmptt или perl.
Perl самый быстрый и на мой взгляд самый гибкий метод, поэтому я лично использую именно perl скрипт с мелкими доработками.
Да!
УдалитьДумаю мне пока проще сделать опрос OID нужных мне портов, а уже в будущем разобраться с perl и использовать трапы.
На данном этапе мне в zabbix пришел не полный текст, только адрес хоста и знаки "=" :-) Текст где-то потерялся.
Спасибо за помощь.
Траппер включен, в логах заббикса появляются записи вида : unmatched trap received from ... и сам трап.
ОтветитьУдалитьНастроено используя snmptt.
я думаю, здесь unmatched означает, что не найден Item куда надо сложить значение. В документации
Удалитьhttps://www.zabbix.com/documentation/doku.php?id=2.0/manual/config/items/itemtypes/snmptrap
написано
snmptrap[regex]
Catches all SNMP traps from a corresponding address that match regex
Т.е. regex - должен совпадать с каким-то текстом содержащимся в самом трапе.
Не подскажите, как можно узнать приходят ли трапы с коммутатора к серверу?
ОтветитьУдалитьЧем их можно отловить?
Для этого и есть сервис snmptrapd. В конфиге указываете, например,
Удалитьlogoption f /tmp/snmptrapd.log
и смотрите этот лог. Или в чем точнее вопрос?
Я только начал заниматься данной темой и не могу понять правильно ли я настроил коммутатор Huawei. Все статьи в инете, которые описывают настройку трапов основаны на оборудовании Cisco.
УдалитьУ меня пока что-то этот файл не создался, видимо или я сервер не правильно настроил или ничего не приходит от коммутатора.
УдалитьP.S. Я от здешней капчи под большим впечатлением )))
Нашел еще проще способ проверки сервера, когда результат будет выбрасываться в консоль. Запустил сервер с командной строки со следующими параметрами:
Удалитьsnmptrapd -f -L o
и с помощью вашей тестового трапа:
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 "teststring000"
отправлял трапы с соседнего компьютера.
Можно вообще слушать SNMP трафик, как то так:
Удалить# tcpdump udp port snmp
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
19:31:12.223545 IP 192.168.1.231.40522 > 192.168.1.233.snmp: GetRequest(35) E:41193.1.1.2.2.1.7.1
19:31:12.254265 IP 192.168.1.233.snmp > 192.168.1.231.40522: GetResponse(36) E:41193.1.1.2.2.1.7.1=0
19:31:13.254507 IP 192.168.1.231.40730 > 192.168.1.233.snmp: GetRequest(35) E:41193.1.1.2.2.1.6.1
19:31:13.274421 IP 192.168.1.233.snmp > 192.168.1.231.40730: GetResponse(36) E:41193.1.1.2.2.1.6.1=0
Пардон, речь о трапах же, вот так:
Удалить# tcpdump udp port snmptrap
У меня Debian 7, ставил zabbix из пакетов. Где искать файл snmptrap.sh? (если конечно знаете)
ОтветитьУдалитьПридется еще скачать исходники с сайта zabbix
Удалитьzabbix-2.X.X.tar.gz
в архиве путь:
zabbix-2.0.6/misc/snmptrap/snmptrap.sh
лучше использовать perl скрипт, у шела проблемы с производительностью.
ОтветитьУдалитьнадо так: iptables -I INPUT -p udp --dport 162 -j ACCEPT
ОтветитьУдалитьudp:161 это для snmp-get,set,walk
udp:162 для трапов
Помогите пож-та разобраться ...
ОтветитьУдалитьУ меня трапы посылаются из java code from App servers to localhost : with "Error" status (когда есть проблема) и "OK" (когда проблема исчезла) .
какой метод мне подходит ?
как мне настроить перенаправку трапов к заббих серверу ?
что должно быть в item/trigger что бы каждый трап был отдельным alert in dashboard и "нормал" alert ack. the "error" alert. ?
Спасибо за помощь!
Natalia
Настройка трапов описана, все методы делают одно и тоже разными способами(наиболее быстрый и настраиваемый perl), а для генерации алерта по по каждому событию, можно пропробовать в trigger поставить галочку Multiple PROBLEM events generation
ОтветитьУдалитьСпасибо ! Попробую.
УдалитьНастройка приёма трапов в zabbix только для "Zabbix server " 127.0.0.1 или для каждого host кот. посылает трап ?
УдалитьThanks !
Natalia
Для каждого
Удалитьне могу найти zabbix_sender на agent host, как же тогда использовать "Bash скрипт и zabbix_sender" на каждом hosts ?
УдалитьThanks !
Natalia
Bash не самый удачный вариант, придется допиливать скрипт чтобы он научился различать хосты из самого трапа. Либо сделать хост который будет обрабатывать все трапы.
УдалитьНужна еще ваша помошь,
Удалитьпытаюсь настроить "1. SNMPTT (SNMP Trap Translator)" на одном из host (не zabbix server).
1. Настройка snmptrapd
/etc/snmp/snmptrapd.conf
disableAuthorization yes
traphandle default snmptthandler
2. Настройка snmptt
/etc/snmp/snmptt.ini
net_snmp_perl_enable = 1
mibs_environment = ALL
date_time_format = %H:%M:%S %Y/%m/%d
log_enable = 1
log_file = /tmp/my_zabbix_traps.tmp
3. Создать шаблоны представления трапов
/etc/snmp/snmptt.conf
EVENT general .* "General event" Normal
FORMAT ZBXTRAP $aA $1
4. Перезапустить сервисы
service snmptt restart
service snmptrapd restart
Посылаю тест трап и вижу его в /tmp/my_zabbix_traps.tmp но в zabbix он не пересылается (ничего нет в LastData ) , хотя Item есть для этого host.
в чем может быть проблема ?
еще не очень понимаю как agent знает что надо проверять /tmp/my_zabbix_traps.tmp, ведь "Настройка приёма трапов в zabbix : Включить траппер" было только в zabbix_server.conf на zabbix сервере ?
Спасибо !
Natalia
На клиенте настраивается только встроенный snmp траппер, в соответствии с документацией на это оборудование (там нет никаких zabbix агентов).
УдалитьТрап приходит на сервер, и там уже обрабатывается.
но у меня трапы посылаются на localhost (я не могу это изменить) и ловятся местным snmptt.
Удалитьразве в item : type - SNMP trap подходит только для zabbix server ?
(у меня v2.0.6)
Спасибо !
Natalia
Что отправляет трапы? Это тестовые трапы?
УдалитьFORMAT ZBXTRAP $aA <- вот эта переменная и задает адрес хоста , т.е. сюда будет подставлен адрес отправителя трапа. Соответственно в zabbix должен быть хост с таким адресом, и у этого хоста дожен быть Item с snmp trap типом.
+ смотрите логи заббикса, что он пишет.
нашла ошибку !!! , не правильно указала log_file = /tmp/my_zabbix_traps.tmp
Удалитьогромное вам спасибо за помощь,терпение и быстрые ответы !!!!!!!
Natalia
Добрый день, ситуация следующая, не обрабатываются трапы от 1 машины.
ОтветитьУдалитьвсе остальные трапы (полученные от других машин) обрабатываются, т.е. запускается snmptrap.sh и отправляет все это в zabbix
При приходе трапа от "кривой" машины не запускается snmptrap.sh и в лог snmptrapd.log этот трап не записывается (трап приходит проверял tcpdump'ом)
zabbix 1.8, net-snmp 5.6.2
не знаю что делать, помогите плиз) а статья очень даже полезная
Иван
В дефолтных конфигах /etc/zabbix/zabbix_server.conf
Удалитьнет подобных опций
SNMPTrapperFile=/tmp/zabbix_traps.tmp
StartSNMPTrapper=1
если их вписать, то заббикс сервер не запустится
поясните плиз для чего вообще эти опции
Я не знаю с какой версии эти настройки появились(вроде с 2.0), но в 2.0.6 они есть. Данные опции используются только при использовании snmptt и perl, именно в указанный файл будут складываться пришедшие трапы, а забикс этот файл регулярно читает. При использовании bash эти настройки не нужны, так как пересылка трапа в забикс осуществляется sender'ом
Удалитьвидел похожую проблему
Удалитьhttp://www.opennet.ru/openforum/vsluhforumID1/83605.html
но решения так и не нашел
Иван
спасибо большое, очень ценная статья. бился вчера целый день с debian 7, так и не смог заставить snmptt писать трапы в файл. а тут все получилось за 15 минут с развертыванием виртуального CentOS
ОтветитьУдалитьВ debian 7, проблема решается так
УдалитьВ файле /etc/default/snmpd
TRAPDRUN=no
Меняем на
TRAPDRUN=yes
И
/etc/init.d/snmpd restart
netstat -nlup | grep 162
udp 0 0 0.0.0.0:162 0.0.0.0:* 12098/snmptrapd
Будет все работать
помогите !!!!
ОтветитьУдалитьчто такое ZBXTRAP ? как он знает пересылать трапы на zabbix server ? должен ли он вообще пересылать трапы на zabbix server или читать локальный /tmp/my_zabbix_traps.tmp ?
я настроила 1. SNMPTT (SNMP Trap Translator) все работает когда посылаю тест на самом zabbix server , но когда настроила SNMPTT на хосте и посылаю тестовые трапы то
вижу их только в локальном /tmp/my_zabbix_traps.tmp :
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 "test1"
tail -1 /tmp/my_zabbix_traps.tmp
01:17:18 2014/01/06 .1.3.6.1.6.3.1.1.5.1.0.33 Normal "Status Events" localhost - ZBXTRAP 127.0.0.1 127.0.0.1 Device reinitialized (coldStart)
и не вижу ничего нет в LastData , хотя Item есть для этого хоста.
почему он не читает локальный /tmp/my_zabbix_traps.tmp ?
все работает если я посылаю трап с адресом zabbix server (192.xxx.xx.xx):
snmptrap -v 1 -c public 192.xxx.xx.xx '.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 "test1"
как мне настроить что б ловились трапы посылаемые локально на 127.0.0.1 ?
с Bash скрипт и zabbix_sender все работает но мне удобнее с snmptt
спасибо !
Что-то совсем запуталась.
ОтветитьУдалитьЕсли я хочу чтобы, например, Cisco мне прислал в Zabbix, что entConfigChange с OID 1.3.6.1.2.1.47.2.0.1 изменилась , что и где мне нужно прописать? И можно ли и если да, то как, чтобы траппер слал инфо, если только, что-то не работает.
скажите лучше, что уже настроено и что конкретно не работает?
УдалитьВсе настройки сделала по вашей инструкции со скриптом Perl.
УдалитьТут прописала адрес нашего Cisco AP и пока для примера поставила, чтобы он только инфо собирал.
/etc/snmp/snmptt.conf
EVENT general .* "General event" Normal
FORMAT ZBXTRAP 192.168.ххх.хх
В самом Zabbixe у этого хоста создала новый Item и настроила как у вас в примере General Traps.
В Lates data в результате получила вот это всё:
Timestamp Local time Value
2014.Jan.30 08:38:34 - 08:38:34 2014/01/30 PDU INFO:
notificationtype TRAP
version 0
receivedfrom UDP: [192.168.ххх.хх]:54718->[10.1.х.хх]
errorstatus 0
messageid 0
community ER_AP
transactionid 4693
errorindex 0
requestid 0
VARBINDS:
iso.3.6.1.2.1.1.3.0 type=67 value=Timeticks: (373761982) 43 days, 6:13:39.82
iso.3.6.1.6.3.1.1.4.1.0 type=6 value=OID: iso.2.840.10036.1.6.0.2
iso.2.840.10036.1.1.1.17.1 type=2 value=INTEGER: 2
iso.2.840.10036.1.1.1.18.1 type=4 value=Hex-STRING: 04 A2 2A BА F2 2F
iso.3.6.1.6.3.18.1.3.0 type=64 value=IpAddress: 192.168.ххх.хх
iso.3.6.1.6.3.18.1.4.0 type=4 value=STRING: "ER_AP"
iso.3.6.1.6.3.1.1.4.3.0 type=6 value=OID: iso.2.840.10036.1.6
Как сделать, чтобы мне АP прислал информацию только, если, например VLAN 1 стал disabled. И как на это сделать триггер, чтобы это отобразилось на dashboard. И как избавитьса от iso.3.6.....и заменить на имя.
Заранее спасибо :)
Если Вы используете Perl то snmptt ни устанавливать, ни настраивать не надо было.
УдалитьGeneral traps - как написано, будет получать все неизвестные трапы. Т.е. все для которых нет Item с конкретным snmptrap[регулярное выражение].
Далее надо получить трап(спровоцировать то что Вам требуется, например sh vlan 1 на cisco) и в Item вписать соответствующее регулярное выражение, например какую-то строку, содержащуюся в этом трапе.
Триггер на трапы настраиваются особенно, так как нет гарантии, что придет положительный трап о решении проблемы (vlan в up'е) то в триггер придется добавлять какой-то таймаут через nodata.
Что бы преобразовывались iso.3.6... надо добавить MIB'ы, написано здесь
http://va0816.blogspot.ru/2013/07/snmp-mib-cent-os.html
MIB для cisco можно скачать здесь
http://www.cisco.com/public/sw-center/netmgmt/cmtk/mibs.shtml
(ставить лучше всего только те MIB, которые реально требуются).
PS я надеюсь Вы понимаете, что выполнять sh vlan 1 лучше когда вы подключены через консольный кабель, либо управляете из другого vlan.
Простите, но я не особо понимаю, как спровоцировать и как узнать какая строка содержится в трапе, чтобы ее вписать в Item.
УдалитьКак я и писал, если вы ищете трап для отключения vlan 1, то соответственно его надо выключить. Например командами на cisсo
Удалить(conf)#int vlan 1
(conf)#shutdown
(conf)#no shutdown
Далее на сервере zabbix в настроенном файле должен появится трап.
В вашей конфигурации он появится в General Item. И там Вы можете посмотреть, что в нем содержится и создать новый, конкретный item.
Хммм, а если мне надо чтобы трапы ловились с Fortigate и IMM? Kак тут провоцировать?
Удалить1. Либо искать способы спровоцировать
Удалить2. Искать в документации и MIB'ах как будет выглядеть trap
3. Получать оповещение о всех trap через snmptrap.fallback и при получении необходимого настроить выделенный item.
спасибо !
УдалитьЗдравствуйте, я настроил все как описано в Вашем мануале, но у меня проблема в том, что у меня не создается файл zabbix_traps.tmp и нигде в логах не отображается, что на машину пришел трап. ПРобовал уже и через перл-скрипт и через SNMP Trap Translator, ни так не так ничего не отображается. Я в тупике.
ОтветитьУдалитьdisableAuthorization yes
snmptrapd.conf выглядит так:
traphandle default /usr/sbin/snmptt
logoption f /tmp/snmptrapd.log
disableAuthorization yes
Если нужно, могу выложить остальные конфиги и логи
На время настройки отключить iptables
Удалитьservice iptables stop
Отключить SELinux
setenforce 0
Перезапустить службы, проверить, что они корректно запускаются.
service snmptt restart
service snmptrapd restart
И отправить трап еще раз
У меня все развернуто на Debian
УдалитьIptables выключен,
перезагружал службы snmpd и snmptt/
отправляю трап, с помощью tcpdump его вижу, а в логах его все равно нет.
В предыдущих комментариях писали:
Удалить>>> бился вчера целый день с debian 7, так и не смог заставить snmptt писать трапы в файл. а тут все получилось за 15 минут с развертыванием виртуального CentOS
Я с Debian не работал, и точнее сказать не могу что искать. Возможно в нем есть еще какие-то блокировщики
Еще раз проверил конфиг и прочитал что необходимо перезагрузиться – и после перезагрузки всей системы трапы начали приходить в zabbix-traps.tmp. Но у меня остаются 2 вопроса:
Удалить1. в Заббиксе в последних данных он не отобразился, хотя созданы Itemы для локалхоста.
2. Сейчас у меня стоит задача ловить трапы с cisco. С нее сейчас отправляются трапы с стрингом "Internet_Down" и "kontinent_Down"/ Чтобы из ловить мне надо создать конкретные правила в /etc/snmp/snmptt.conf?
Так же, я не очень понял формат ивента
EVENT coldStart .1.3.6.1.6.3.1.1.5.1.0.33 "Status Events" Normal
FORMAT ZBXTRAP $aA Device reinitialized (coldStart)
откуда я, например, возьму значения ".1.3.6.1.6.3.1.1.5.1.0.33"?
Или мне обязательно знать эти значения, которые будут приходить?
В cisco сейчас настроено следующее:
event manager applet TRACK_101_event
event track 101 state down
action 1.0 snmp-trap strdata "Internet_down"
Как мне это отловить?.
Заранее спасибо за ответы и за отличную статью.
1. проверять настройки и логи заббикса, больше тут ничего не скажешь
Удалить2. Да прописываются конкретно. значения 1.3..... можно брать из файла трапов, или из MIB. Для конкретных трапов эти значения надо знать, для всех не известных трапов настроить fallback и потом донастраивать как конкретный, по мере их получения.
Спасибо, буду разбираться :)
УдалитьДобрый день.
ОтветитьУдалитьЯ на основании вашей статьи и документации https://www.zabbix.com/documentation/2.0/ru/manual/config/items/itemtypes/snmptrap пытаюсь заставить zabbix принимать трапы.
Общая настройка прошла успешно snmptrapd отрабатывает и perl скрипт складывает трапы в файл my_zabbix_traps.tmp.
В конфигурации zabbix-server.conf указал данные по обработке трапов
StartSNMPTrapper=1
SNMPTrapperFile=/tmp/my_zabbix_traps.tmp
Данные не попадают LastData, и в логе zabbix я не вижу чтобы пришедшие трапы обрабатывались
Как проверить что данные вообще попадают в систему zabbix (кроме лога) ?
После изменения zabbix-server.conf сервис перезапускали?
УдалитьЗаббикс был собран с ключом --with-net-snmp?
1. Конечно перезапускал и snmptrapd и zabbix-server
Удалить2. Не могу точно сказать так как использовал готовый vhdd для Hiper-V забирал с сайта zabbix.
Я еще раз пробежался по настройке, согласно документации http://www.zabbix.org/wiki/Start_with_SNMP_traps_in_Zabbix
Поправил названия логов как были исходно в zabbix_trap_receiver.pl
В итоге получаю трап в zabbix_traps.tmp такого вида
zabbix_traps.tmp 789/789 100%
12:54:43 2015/01/29 ZBXTRAP 127.0.0.1
PDU INFO:
errorstatus 0
transactionid 1
messageid 0
errorindex 0
version 0
notificationtype TRAP
requestid 0
community public
receivedfrom UDP: [127.0.0.1]:42321->[127.0.0.1]:162
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
Но в zabbix эта скотина лезть не хочет
После перезапуска сервиса в логе стартуют poller'ы есть там такая строчка
Удалитьserver #XX started [snmp trapper #1]?
Я правда не понял как коректно настраивать хост.
УдалитьСейчас Хост настроен с указанием SNMP interfaces 127.0.0.1 port 161
И к нему приклеен шаблон с привязанным Items
Но как я понимаю даже если правила разбора трапа работают не правильно, он все равно должен быть отражен в логах zabbix-server?
Да стартует
Удалить51652:20150129:125403.750 server #14 started [icmp pinger #1]
51658:20150129:125403.750 server #18 started [http poller #1]
51661:20150129:125403.751 server #21 started [history syncer #2]
51662:20150129:125403.754 server #22 started [history syncer #3]
51663:20150129:125403.758 server #23 started [history syncer #4]
51664:20150129:125403.760 server #24 started [escalator #1]
51665:20150129:125403.762 server #25 started [snmp trapper #1]
51666:20150129:125403.763 server #26 started [proxy poller #1]
51667:20150129:125403.790 server #27 started [self-monitoring #1]
51659:20150129:125403.932 server #19 started [discoverer #1]
В perl скрипте указан полный путь
Удалить$SNMPTrapperFile = '/tmp/zabbix_traps.tmp';
Да полный, и в конфиге zabbix-server тоже
Удалитьzabbix_traps.tmp формируется нормально все трапы приходят и там оседают. Именно zabbix не хочет их подбирать.
Если в логах заббикса ничего нет, тогда не знаю что может быть.
УдалитьЕще можно проверить права доступа к этому файлу, и проверить selinux, для проверки попробовать отключить его, выполнить setenforce 0
А какой хост настраиваете? В данном примере тестовый итем висит на хосте самого Zabbix_server.
УдалитьИз документации:
Каждая инструкция FORMAT должна начинаться с “ZBXTRAP [адрес]”, где [адрес] будет сравниваться с IP и DNS адресами у SNMP интерфейсов в Zabbix
Т.е. указанный вами трап
12:54:43 2015/01/29 ZBXTRAP 127.0.0.1
придет только если на хосте Zabbix_server(по-умолчанию у него настроен 127.0.0.1)
настроен соответствующий итем как на картинках.
В самом zabbix следующая настройка
УдалитьHost Zabbix server
Имеет
Agent interfaces 127.0.0.1 порт 10050
SNMP interfaces127.0.0.1 порт 161
подключен итем SNMP trap fallback через шаблон Template SNMP trap fallback
Type: Snmp trap
key: snmptrap.fallback
Type of information: Log
History storage period (in days): 90
Log time format: hh:mm:ss yyyy/MM/dd
Как-то так.
Большое спасибо за помощь, скорее всего придется поставить хотя-бы CentOS и на него накатывать zabbix. Потому- что не понятно как заставить его работать в данной сборке.
ОтветитьУдалитьВ стандартной сборке с сайта заббикса, у сервера нет прав на папку /tmp , и он не может прочитать соответственно лог. Настраиваем логирование в другую папку и даем права туда серверу заббикса.
УдалитьДобрый день. Конфиги полностью идентичные вашим. В snmptrapd.log получаю:
ОтветитьУдалить2015-11-18 14:39:17 10.254.250.41(via UDP: [10.254.250.41]:65534->[10.254.250.250]) TRAP, SNMP v1, community
SNMPv2-SMI::enterprises.17095 Enterprise Specific Trap (6) Uptime: 0:00:03.10
SNMPv2-SMI::enterprises.17095.3.2.0 = INTEGER: 1
Но в my_zabbix_traps.tmp пусто. Правда проблема только с этой железкой, агент которой посылает трапы. Если посылать трап с локального компа или другого, то все отлично отображается. Возможно подскажите куда копать нужно. Заранее спасибо.
Попробуйте включить дебаг
УдалитьDEBUGGING = 2
DEBUGGING_FILE = /tmp/snmptt.debug
Включен вижу:
Удалить********** SNMPTT v1.4 started: Thu Nov 19 14:32:45 2015 **********
********** Net-SNMP version 5.05 Perl module enabled **********
********** MIBS: ALL **********
Loading /etc/snmp/snmptt.conf
Finished loading 2 lines from /etc/snmp/snmptt.conf
Finished loading configuration files
Processing memory copy of configuration files
1 EVENTs found
1 EVENTs found that contain at least the mandatory FORMAT line
Finished processing memory copy of configuration files
==========================================================
Printing out all the events in hash table:
Event: .* => general,General event,Normal,ZBXTRAP $aA $1,
Finished printing out all events in hash table
==========================================================
cwd: /
Changing to UID: snmptt (495)
Closing debug file /tmp/snmptt.debug
Этот комментарий был удален автором.
ОтветитьУдалитьДобрый день. Спасибо Вам за статью. Столкнулась с проблемой: если запускаю snmptrapd -A -n -f -Lf /tmp/traps.log - то 162 порт слушается, тестовые трапы в логи я вижу. После остановки - netstat -nlup | grep 162 тишина, порт не слушается, соотретственно snmptrspd не работает. Пробовала service snmptrapd start, перезапускала сервер - не помогает. Может поделитесь идеями - куда копать?
ОтветитьУдалить