Stak Posted February 9, 2015 Posted February 9, 2015 Update: Выложил на Github. https://github.com/rmavrichev/zabbix Для желающих 3й версии - адаптированные шаблоны, файл zbx3_Basic_templates.xml . Включает: Basic App MySQL Basic App Zabbix Agent Basic App Zabbix Proxy Basic App Zabbix Server Basic Cisco SNMP with traps Basic IBM - IMM2 SNMP Basic ICMP Network Device Basic Juniper SNMP with traps Basic OS Linux Basic SNMP Network Device Basic Virt VMware Basic Virt VMware Guest Basic Virt VMware Hypervisor Адаптировал под себя шаблоны с низкоуровневым обнаружением (LLD) из поставки zabbix 2.2 , может кому-то ещё пригодятся. SNMP Interfaces with Traps Basic SNMP Network Device.xml Подходит для всего, что умеет IF-MIB (на циске, микротике и хуавее проверял), использует 64-бит счётчики. Теперь рисует дескрипшн интерфейса в имени графиков, discovery интерфейсов ограничен рег.выражением ^(.*Ethernet.*|Vlan.*|Tunnel.*|Port-channel.*)$[TRUE] (надо задать через меню "Администрирование", можно переопределить на уровне конкретного хоста (на Микротике по другому именуются интерфейсы, например) , ловит и складывает в кучу fallback-traps по SNMP (т.е. всё, что не попало под другие шаблоны трапов). Также умеет взводить триггеры на наличие ошибок на порту (больше 10 за период опроса суммарно для TX и RX), и перегрузку по TX или RX более 80%. Ловит SNMP трапы на IF-MIB::linkDown (падение интерфейсов) и взводит по ним триггер. Собирает инвентори через ENTITY-MIB, для всех модулей, у которых есть серийные номера. SNMP Cisco CPU and Memory with Traps Cisco SNMP with traps.xml Мониторит cpu, температуру, состав шасси, ловит циско-специфик трапы на некоторые события и взводит по ним триггеры. В общем, довесок к первому, специфичный для цисок. для трапов трансляцию oid в человеко-читаемые делал на уровне snmpd, т.е. zabbix-y отдаются уже оттранслированные трапы. Huawei SNMP with traps.xml Мониторит cpu, память, температуру и состояние алармов компонентов шасси (проверялся на NE40E), ловит трапы на некоторые события и взводит по ним триггеры. По идее, должен работать на всех хуавеях. Ещё есть полезный скриптик для пинания цисок на слив конфига на тфтп, используется как действие на триггер "изменение стартап-конфига". /usr/bin/snmpset -v 2c -O qv -t 5 -c {$SNMP_WRITE} {HOST.CONN} .1.3.6.1.4.1.9.2.1.55.{$TFTP_IP} s {HOST.HOST}-`date '+%Y%m%d_%H%M%S'`.txt 2>&1 P.S. Обновил шаблоны до крайних версий. zabbix_trap_receiver.pl.txt (переименовать в .pl) - версия ресивера с включенной транслацией hex->ascii (спасибо французам), т.к. некоторые железки отдают ifDescr в трапах как HEX-String (cisco 3750, например). Впрочем, некоторые (Dlink DGS3620) вообще не отдают.... P.P.S: Переработал шаблоны, добавил ивентори и триггер на падение интерфесов по трапу в базовый, в специфичные - добавлен мониторинг температуры, состояния блоков питания и вентиляторов. Также добавлен скрипт для сохранения конфигов с хуавея на тфтп. #!/bin/sh # GNU GPL # Zabbix global script for backup Huawei CFG to TFTP server # Usage: # ./hwGetConfig.sh Private 10.77.2.3 10.78.3.4 huawei.cfg # WARNING: filename MUST end with ".cfg" # Zabbix usage: # Global script like this: /usr/local/bin/hwGetConfig.sh {$SNMP_WRITE} {HOST.CONN} {$TFTP_IP} {HOST.HOST} 2>&1 # $1 {$SNMP_WRITE} # $2 {HOST.CONN} # $3 {$TFTP_IP} # $4 {HOST.HOST} /usr/bin/snmpset -v 2c -O qv -t 5 -c $1 $2 .1.3.6.1.4.1.2011.6.10.1.2.4.1.9.100 i 6 2>&1 /usr/bin/snmpset -v 2c -O qv -t 5 -c $1 $2 .1.3.6.1.4.1.2011.6.10.1.2.4.1.2.100 i 6 .1.3.6.1.4.1.2011.6.10.1.2.4.1.3.100 i 2 .1.3.6.1.4.1.2011.6.10.1.2.4.1.4.100 s $4-`date '+%Y%m%d_%H%M%S'`.cfg .1.3.6.1.4.1.2011.6.10.1.2.4.1.5.100 a $3 .1.3.6.1.4.1.2011.6.10.1.2.4.1.9.100 i 4 2>&1 #END zabbix_trap_receiver.pl.txt Basic SNMP Network Device.xml Cisco SNMP with traps.xml Huawei SNMP with traps.xml zbx3_Basic_templates.xml Вставить ник Quote
Stak Posted March 17, 2015 Author Posted March 17, 2015 Разобрался, как выполнять скрипты на proxy (полезно, если с самого заббикс-сервера не во все сети есть доступ, можно попинговать, или дёрнуть конфиг). Можно это делать через zabbix_get, надо только поставить на прокси ещё и заббикс-агент, и разрешить в нём remote commands. пример:Ping (proxy) Скрипт Сервер /usr/bin/zabbix_get -s{$PROXY_IP} -p10050 -k"system.run[/bin/ping -c 3 {HOST.CONN} 2>&1]" П.С.: {$PROXY_IP} и другие переменные задаются через Администрирование -> Общие -> Макросы. Утилиты zabbix_get в пакете заббикс-сервера для бубунты не было, взял бинарник из пакета прокси. Вставить ник Quote
FATHER_FBI Posted March 17, 2015 Posted March 17, 2015 Адаптировал под себя шаблоны с низкоуровневым обнаружением (LLD) из поставки zabbix 2.2 , может кому-то ещё пригодятся. SNMP Interfaces with Traps Подходит для всего, что умеет IF-MIB (на циске и микротике проверял), использует 64-бит счётчики. Теперь рисует дескрипшн интерфейса в имени графиков, discovery интерфейсов ограничен рег.выражением ^(.*Ethernet.*|Vlan.*|Tunnel.*|Port-channel.*)$[TRUE] (надо задать через меню "Администрирование", можно переопределить на уровне конкретного хоста (на МТ по другому именуются интерфейсы, например) , ловит fallback-traps по SNMP (т.е. всё, что не попало под другие шаблоны трапов). Также умеет взводить триггеры на падение порта (отключен по умолчанию, я включаю его для отдельных портов на уровне хоста), наличие ошибок на порту (больше 10 за период опроса суммарно для TX и RX), и перегрузку по TX или RX более 80%. SNMP Cisco CPU and Memory with Traps Мониторит сабж, температуру, состав шасси, ловит циско-специфик трапы на события и взводит по ним триггеры. В общем, довесок к первому, специфичный для цисок. П.С.: для трапов трансляцию oid в человеко-читаемые делал на уровне snmpd, т.е. zabbix-y отдаются уже оттранслированные трапы. P.P.S. Обновил шаблоны до крайних версий. Ещё есть полезный скриптик для пинания цисок на слив конфига на тфтп, используется как действие на триггер "изменение стартап-конфига". /usr/bin/snmpset -v 2c -O qv -t 5 -c {$SNMP_WRITE} {HOST.CONN} .1.3.6.1.4.1.9.2.1.55.{$TFTP_IP} s {HOST.HOST}-`date '+%Y%m%d_%H%M%S'`.txt 2>&1 Зачем мониторить? <name>Errors RX int $1</name> От этого толку мало, если хотите мониторить ошибки на портах, мониторте канальный уровень и физический. Вставить ник Quote
Stak Posted March 18, 2015 Author Posted March 18, 2015 Зачем мониторить? <name>Errors RX int $1</name> От этого толку мало, если хотите мониторить ошибки на портах, мониторте канальный уровень и физический. Ну собственно в этом триггере мониторится значение IF-MIB::ifInErrors.{#SNMPINDEX}, емнип, это и есть канальный уровень (CRC фрейма). Я только свёл два отдельных триггера из исходного шаблона в один, да графики поправил, что бы эти данные вместе с трафиком отображались. Вставить ник Quote
Stak Posted March 18, 2015 Author Posted March 18, 2015 Однозначно заберу себе, спасибо Пожалуйста :) Вставить ник Quote
SergeiK Posted March 18, 2015 Posted March 18, 2015 Разобрался, как выполнять скрипты на proxy (полезно, если с самого заббикс-сервера не во все сети есть доступ, можно попинговать, или дёрнуть конфиг). Можно это делать через zabbix_get, надо только поставить на прокси ещё и заббикс-агент, и разрешить в нём remote commands. пример:Ping (proxy) Скрипт Сервер /usr/bin/zabbix_get -s{$PROXY_IP} -p10050 -k"system.run[/bin/ping -c 3 {HOST.CONN} 2>&1]" П.С.: {$PROXY_IP} и другие переменные задаются через Администрирование -> Общие -> Макросы. Утилиты zabbix_get в пакете заббикс-сервера для бубунты не было, взял бинарник из пакета прокси. Хм. А можно пояснть? Стандартный механизм через external_scripts на заббикс-прокси почему вам не понравился? Вставить ник Quote
Stak Posted March 18, 2015 Author Posted March 18, 2015 Хм. А можно пояснть? Стандартный механизм через external_scripts на заббикс-прокси почему вам не понравился? Разве external_scripts можно использовать в действиях, в ответ на срабатывание триггера, к примеру? У меня сложилось такое впечатление (возможно, что неверное) , что внешние скрипты - для проверок состояния чего-либо, т.е. наполнения элементов данных. Я говорил о глобальных скриптах, в 2.2.4 их , судя по всему, можно выполнять либо на сервере, либо на заббикс-агенте. Варианта с прокси я не нашёл. Вставить ник Quote
SergeiK Posted March 18, 2015 Posted March 18, 2015 Хм. А можно пояснть? Стандартный механизм через external_scripts на заббикс-прокси почему вам не понравился? Разве external_scripts можно использовать в действиях, в ответ на срабатывание триггера, к примеру? У меня сложилось такое впечатление (возможно, что неверное) , что внешние скрипты - для проверок состояния чего-либо, т.е. наполнения элементов данных. Я говорил о глобальных скриптах, в 2.2.4 их , судя по всему, можно выполнять либо на сервере, либо на заббикс-агенте. Варианта с прокси я не нашёл. Что значит глобальные? Я так понял, это actions script. Пожалуй, да, прокси это не умеет. Но тут совсем просто, ssh без пароля на удаленный хост вполне решает задачу. Хотя, ваш механизм тоже интересен :). Но вы использовали пинг в примере, а как action пинг использовать по меньшей мере странно. Пинг как раз как опросник идет. Snmpset или еще что-то было бы рационально... Вставить ник Quote
FATHER_FBI Posted March 18, 2015 Posted March 18, 2015 Зачем мониторить? <name>Errors RX int $1</name> От этого толку мало, если хотите мониторить ошибки на портах, мониторте канальный уровень и физический. Ну собственно в этом триггере мониторится значение IF-MIB::ifInErrors.{#SNMPINDEX}, емнип, это и есть канальный уровень (CRC фрейма). Я только свёл два отдельных триггера из исходного шаблона в один, да графики поправил, что бы эти данные вместе с трафиком отображались. Я бы вам все таки посоветовал мониторить: dot3StatsAlignmentErrors dot3StatsCarrierSenseErrors dot3StatsExcessiveCollisions dot3StatsFCSErrors Каждый тип ошибок влечет за собой свои конкретные косяки и при появлении определенного типа ошибок, уже за ранее можно определить в чем проблема. Вставить ник Quote
Stak Posted March 19, 2015 Author Posted March 19, 2015 Что значит глобальные? Я так понял, это actions script. Пожалуй, да, прокси это не умеет. Но тут совсем просто, ssh без пароля на удаленный хост вполне решает задачу. Хотя, ваш механизм тоже интересен :). Но вы использовали пинг в примере, а как action пинг использовать по меньшей мере странно. Пинг как раз как опросник идет. Snmpset или еще что-то было бы рационально... Пинг просто для примера, а реально это мне было нужно для дёрганья конфига с цисок, если он поменялся. Пример: Cisco config backup (proxy) /usr/bin/zabbix_get -s{$PROXY_IP} -p10050 -k"system.run[/usr/bin/snmpset -v 2c -O qv -t 5 -c {$SNMP_WRITE} {HOST.CONN} .1.3.6.1.4.1.9.2.1.55.{$TFTP_IP} s {HOST.HOST}-`date '+%Y%m%d_%H%M%S'`.txt 2>&1]" Cisco config backup (server) /usr/bin/snmpset -v 2c -O qv -t 5 -c {$SNMP_WRITE} {HOST.CONN} .1.3.6.1.4.1.9.2.1.55.{$TFTP_IP} s {HOST.HOST}-`date '+%Y%m%d_%H%M%S'`.txt 2>&1 Вставить ник Quote
Stak Posted March 19, 2015 Author Posted March 19, 2015 Я бы вам все таки посоветовал мониторить: dot3StatsAlignmentErrors dot3StatsCarrierSenseErrors dot3StatsExcessiveCollisions dot3StatsFCSErrors Каждый тип ошибок влечет за собой свои конкретные косяки и при появлении определенного типа ошибок, уже за ранее можно определить в чем проблема. Возможно, вы правы, но пока хватает. Сравнил на одной железке (свич доступа в офисе), через EtherLike-MIB можно получить заметно больше данных. snmpwalk -v 2c -c public -On 10.78.15.5 1.3.6.1.2.1.10.7.2.1 | grep Counter32 | grep -v 'Counter32: 0' .1.3.6.1.2.1.10.7.2.1.4.10002 = Counter32: 791 dot3StatsSingleCollisionFrames .1.3.6.1.2.1.10.7.2.1.4.10007 = Counter32: 75 .1.3.6.1.2.1.10.7.2.1.5.10002 = Counter32: 707 dot3StatsMultipleCollisionFrames .1.3.6.1.2.1.10.7.2.1.5.10007 = Counter32: 40 .1.3.6.1.2.1.10.7.2.1.8.10007 = Counter32: 6267 dot3StatsLateCollisions .1.3.6.1.2.1.10.7.2.1.18.10033 = Counter32: 1 dot3StatsSymbolErrors .1.3.6.1.2.1.10.7.2.1.18.10034 = Counter32: 1 .1.3.6.1.2.1.10.7.2.1.18.10041 = Counter32: 1 .1.3.6.1.2.1.10.7.2.1.18.10043 = Counter32: 1 rmavrichev@spb-nms-1:~$ snmpwalk -v 2c -c public -On 10.78.15.5 IF-MIB::ifInErrors | grep Counter32 | grep -v 'Counter32: 0' .1.3.6.1.2.1.2.2.1.14.10033 = Counter32: 1 .1.3.6.1.2.1.2.2.1.14.10034 = Counter32: 1 .1.3.6.1.2.1.2.2.1.14.10041 = Counter32: 14 - 13 из них runts, отдельного счётчика в EtherLike-MIB не нашёл. .1.3.6.1.2.1.2.2.1.14.10043 = Counter32: 1 Хотя из того, что удалось сопоставить с IF-MIB::ifInErrors - только dot3StatsSymbolErrors. For an interface operating at 100 Mb/s, the number of times there was an invalid data symbol when a valid carrier was present. В общем, желающие детализации - могут добавить самостоятельно :) Вставить ник Quote
GateKeeper Posted April 8, 2015 Posted April 8, 2015 Что-то я давненько не следил за темой: они там у себя LLD-то как таковой пофиксили? тыц Вставить ник Quote
Stak Posted April 13, 2015 Author Posted April 13, 2015 Что-то я давненько не следил за темой: они там у себя LLD-то как таковой пофиксили? тыц Да вроде всё норм работает. Запилил на днях бэкап конфигов с Хуавея на тфпт, по триггеру на сохранения конфига, и остальные шаблоны причесал (инвентори добавил, мониторинг вентиляторов и температуры и ещё всяких полезностей). В первый пост сейчас добавлю. Вставить ник Quote
azat174 Posted July 8, 2015 Posted July 8, 2015 Добрый день! Попробовал эти шаблон Basic_Snmp_Network_Device Подскажите пож-та Требует регулярные выражения на @SerialNumbers @Int_Discovery Гле их взять? Вставить ник Quote
p10neer Posted July 8, 2015 Posted July 8, 2015 ТС писал discovery интерфейсов ограничен рег.выражением ^(.*Ethernet.*|Vlan.*|Tunnel.*|Port-channel.*)$[TRUE] (надо задать через меню "Администрирование", можно переопределить на уровне конкретного хоста (на Микротике по другому именуются интерфейсы, например) От себя добавлю полный путь: Administration -> General -> Regular expressions. Stak, спасибо за шаблоны! Вставить ник Quote
azat174 Posted July 8, 2015 Posted July 8, 2015 ТС писал discovery интерфейсов ограничен рег.выражением ^(.*Ethernet.*|Vlan.*|Tunnel.*|Port-channel.*)$[TRUE] (надо задать через меню "Администрирование", можно переопределить на уровне конкретного хоста (на Микротике по другому именуются интерфейсы, например) От себя добавлю полный путь: Administration -> General -> Regular expressions. Stak, спасибо за шаблоны! Спасибо! А на @SerialNumbers, что за выражение? Вставить ник Quote
p10neer Posted July 8, 2015 Posted July 8, 2015 В Description Discovery rule Inventory видим следующее SerialNumbers - it's a regular expression, defined as:^([0-9a-zA-Z]+)$[TRUE] Вставить ник Quote
azat174 Posted July 9, 2015 Posted July 9, 2015 В Description Discovery rule Inventory видим следующее SerialNumbers - it's a regular expression, defined as:^([0-9a-zA-Z]+)$[TRUE] Спасибо понял Вставить ник Quote
Stak Posted August 28, 2015 Author Posted August 28, 2015 Обновил шаблоны, добавил чуть-чуть мелких оптимизаций. zbx_export_templates.xml Вставить ник Quote
alex-rj45 Posted October 20, 2015 Posted October 20, 2015 (edited) Обновил шаблоны, добавил чуть-чуть мелких оптимизаций. Прикрепленные файлы Прикрепленный файл zbx_export_templates.xml (115,13К) Количество загрузок:: 18 На аггрегированых портах (проверял на cisco etherchannel) показывает неверную скорость. В консоли: 30 second input rate XXXXXXXXX bits/sec, по факту на графиках XXXXXXXXX*кол-во мемберов etherchannela. Как бы исправить? Edited October 20, 2015 by alex-rj45 Вставить ник Quote
DejaVu Posted November 14, 2015 Posted November 14, 2015 Коллеги, а ни ку у кого нет шаблона для cisco ip sla udp-jitter ? Я думал, легко найду - а нет, под какти есть - под заббикс не нашел. Вставить ник Quote
grfmaniak Posted March 15, 2016 Posted March 15, 2016 импортирую в Zabbix 3.0: Не удалось найти преобразование значений "ciscoEnvMonState" используемое в прототипу элементов данных "State of "$1"" в правиле обнаружения "Fan Sensors detect" на "Cisco SNMP with traps". Каким оно должно быть? Вставить ник Quote
p10neer Posted March 16, 2016 Posted March 16, 2016 1 - normal 2 - warning 3 - critical 4 - shutdown 5 - notPresent 6 - notFunctioning Миграция прошла без проблем? Тоже присматриваюсь к 3 версии. Вставить ник Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.