Перейти к содержимому
Калькуляторы

Zabbix 3.0 - шаблоны для SNMP LLD вдруг кому пригодится

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Разобрался, как выполнять скрипты на 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 в пакете заббикс-сервера для бубунты не было, взял бинарник из пакета прокси.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Однозначно заберу себе, спасибо

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Адаптировал под себя шаблоны с низкоуровневым обнаружением (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>

От этого толку мало, если хотите мониторить ошибки на портах, мониторте канальный уровень и физический.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Зачем мониторить?

<name>Errors RX int $1</name>

От этого толку мало, если хотите мониторить ошибки на портах, мониторте канальный уровень и физический.

Ну собственно в этом триггере мониторится значение IF-MIB::ifInErrors.{#SNMPINDEX}, емнип, это и есть канальный уровень (CRC фрейма).

Я только свёл два отдельных триггера из исходного шаблона в один, да графики поправил, что бы эти данные вместе с трафиком отображались.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Однозначно заберу себе, спасибо

Пожалуйста :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Разобрался, как выполнять скрипты на 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 на заббикс-прокси почему вам не понравился?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Хм. А можно пояснть? Стандартный механизм через external_scripts на заббикс-прокси почему вам не понравился?

Разве external_scripts можно использовать в действиях, в ответ на срабатывание триггера, к примеру? У меня сложилось такое впечатление (возможно, что неверное) , что внешние скрипты - для проверок состояния чего-либо, т.е. наполнения элементов данных.

 

Я говорил о глобальных скриптах, в 2.2.4 их , судя по всему, можно выполнять либо на сервере, либо на заббикс-агенте. Варианта с прокси я не нашёл.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Хм. А можно пояснть? Стандартный механизм через external_scripts на заббикс-прокси почему вам не понравился?

Разве external_scripts можно использовать в действиях, в ответ на срабатывание триггера, к примеру? У меня сложилось такое впечатление (возможно, что неверное) , что внешние скрипты - для проверок состояния чего-либо, т.е. наполнения элементов данных.

 

Я говорил о глобальных скриптах, в 2.2.4 их , судя по всему, можно выполнять либо на сервере, либо на заббикс-агенте. Варианта с прокси я не нашёл.

Что значит глобальные?

Я так понял, это actions script. Пожалуй, да, прокси это не умеет. Но тут совсем просто, ssh без пароля на удаленный хост вполне решает задачу.

Хотя, ваш механизм тоже интересен :).

Но вы использовали пинг в примере, а как action пинг использовать по меньшей мере странно. Пинг как раз как опросник идет.

Snmpset или еще что-то было бы рационально...

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Зачем мониторить?

<name>Errors RX int $1</name>

От этого толку мало, если хотите мониторить ошибки на портах, мониторте канальный уровень и физический.

Ну собственно в этом триггере мониторится значение IF-MIB::ifInErrors.{#SNMPINDEX}, емнип, это и есть канальный уровень (CRC фрейма).

Я только свёл два отдельных триггера из исходного шаблона в один, да графики поправил, что бы эти данные вместе с трафиком отображались.

Я бы вам все таки посоветовал мониторить:

dot3StatsAlignmentErrors

dot3StatsCarrierSenseErrors

dot3StatsExcessiveCollisions

dot3StatsFCSErrors

Каждый тип ошибок влечет за собой свои конкретные косяки и при появлении определенного типа ошибок, уже за ранее можно определить в чем проблема.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Что значит глобальные?

Я так понял, это 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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Я бы вам все таки посоветовал мониторить:

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.

 

 

В общем, желающие детализации - могут добавить самостоятельно :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Что-то я давненько не следил за темой: они там у себя LLD-то как таковой пофиксили?

 

тыц

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Что-то я давненько не следил за темой: они там у себя LLD-то как таковой пофиксили?

тыц

Да вроде всё норм работает. Запилил на днях бэкап конфигов с Хуавея на тфпт, по триггеру на сохранения конфига, и остальные шаблоны причесал (инвентори добавил, мониторинг вентиляторов и температуры и ещё всяких полезностей). В первый пост сейчас добавлю.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Добрый день!

Попробовал эти шаблон Basic_Snmp_Network_Device

Подскажите пож-та

Требует регулярные выражения на @SerialNumbers @Int_Discovery

Гле их взять?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

ТС писал

discovery интерфейсов ограничен рег.выражением ^(.*Ethernet.*|Vlan.*|Tunnel.*|Port-channel.*)$[TRUE] (надо задать через меню "Администрирование", можно переопределить на уровне конкретного хоста (на Микротике по другому именуются интерфейсы, например)

От себя добавлю полный путь: Administration -> General -> Regular expressions.

 

Stak, спасибо за шаблоны!

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

ТС писал

discovery интерфейсов ограничен рег.выражением ^(.*Ethernet.*|Vlan.*|Tunnel.*|Port-channel.*)$[TRUE] (надо задать через меню "Администрирование", можно переопределить на уровне конкретного хоста (на Микротике по другому именуются интерфейсы, например)

От себя добавлю полный путь: Administration -> General -> Regular expressions.

 

Stak, спасибо за шаблоны!

Спасибо!

А на @SerialNumbers, что за выражение?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

В Description Discovery rule Inventory видим следующее

SerialNumbers - it's a regular expression, defined as:

^([0-9a-zA-Z]+)$[TRUE]

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

В Description Discovery rule Inventory видим следующее

SerialNumbers - it's a regular expression, defined as:

^([0-9a-zA-Z]+)$[TRUE]

Спасибо понял

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Обновил шаблоны, добавил чуть-чуть мелких оптимизаций.

zbx_export_templates.xml

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Обновил шаблоны, добавил чуть-чуть мелких оптимизаций.

Прикрепленные файлы

 

Прикрепленный файл zbx_export_templates.xml (115,13К)

Количество загрузок:: 18

На аггрегированых портах (проверял на cisco etherchannel) показывает неверную скорость. В консоли: 30 second input rate XXXXXXXXX bits/sec, по факту на графиках XXXXXXXXX*кол-во мемберов etherchannela.

 

Как бы исправить?

Изменено пользователем alex-rj45

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Коллеги, а ни ку у кого нет шаблона для cisco ip sla udp-jitter ? Я думал, легко найду - а нет, под какти есть - под заббикс не нашел.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

импортирую в Zabbix 3.0: Не удалось найти преобразование значений "ciscoEnvMonState" используемое в прототипу элементов данных "State of "$1"" в правиле обнаружения "Fan Sensors detect" на "Cisco SNMP with traps".

 

Каким оно должно быть?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

1 - normal
2 - warning
3 - critical
4 - shutdown
5 - notPresent
6 - notFunctioning

Миграция прошла без проблем? Тоже присматриваюсь к 3 версии.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 смайлов.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.