INT 21h

Hi, I am Vladimir Smagin, SysAdmin and Kaptain. Telegram Email / GIT / RSS / GPG

Система мониторинга Zabbix

№ 8101 В разделе "Sysadmin" от February 26th, 2016,
В подшивках: , ,

Моя самая любимая мониторилка и буквально на днях вышла ее 3я версия. Под сервера на armhf пришлось собирать агента руками, а вот под 32 и 64 битные убунты, дебианы, федоры и т.д. есть готовые репозитории. Помимо своих непосредственных задач может выполнять простейшие административные функции. Например, перезапустить упавший apache или запустить обслуживание при низкой нагрузке на систему в течении 30 минут. Помимо кучи предкомпиленых пакетов имеет также отличнейшую документацию. Имеет шаблоны с функциями наследования, что многократно упрощает мониторинг сложных систем. Очень рекомендую для использования на предприятии.

Screenshot-21

Помимо доступности самих отслеживаемых хостов можно отслеживать вполне конкретные сервисы, порты, запущеные программы и даже отдаваемые вебсерверами данные. Например, на одном сервере есть впн туннель, который периодически (штатно) пропадает примерно минут на 10. Значит необходимо бить тревогу когда туннель мертвый более 15 минут. Чтобы сделать это необходимо создать параметр “Туннель до репитера автоканала”. Через него летают запросы к API репитера авторадиоклуба. Значит доступность можно проверить либо простым пингом, либо попыткой подключиться к вебсерверу с API. Если выбрать подключение к вебсерверу, то ключ в данном случае будет net.tcp.port[10.10.10.8,80]. Но в этом случае мы не узнаем упал ли это сам впн, или nginx, или php-fpm. Значит проверить доступность хоста нужно обычным пингом, а вот проверить доступность вебсервера и php-fpm лучше двумя другими параметрами: net.tcp.service[http] и net.tcp.listen[9000]. Теперь заббикс будет получать данные о состоянии туннеля + другие 2 параметра, отслеживающие состояние вебсервера.

Screenshot-22

Однако, просто отслеживать мало. Необходимо создать событие. У многих возникают вопросы как правильно создать реакцию на событие, если в течении 15 минут ничего само не починилось. Возьму все ту же доступность 80го порта для подключения и воспользуюсь суммированием значений {boroda:net.tcp.port[10.10.10.8,80].sum(15m)}=0 (реакция будет, если в течении 15 минут конечная сумма всех полученых значений будет 0 – связь потеряна все 15 минут). Некоторые используют avg, но это неправильно. Среднее значение это значение, которое присутствует в течении более половины отрезка времени. Допустим связь упала лишь на 8 минут из 15 и под конец была восстановлена, но триггер все равно сработает, т.к. среднее значение показало аварию, чего с суммой, естественно, не произойдет. По срабатыванию триггера вызывается действие. Например, отправить смску, написать емыл или отправить команду на перезапуск вебсервера.

xbz

Заббикс может отслеживать данные как в активном режиме (инициатором является агент), так и в пассивном. Это действительно удобно, ведь если ваша машина находится за натом и у вас к ней нет прямого доступа, то она может сама подключиться к серверу заббикса и показать свое состояние и забрать список команд для выполнения. Конечно, эта проблема легко решаема с применением v6 сетей, но в мире пока еще засилие v4 и с этим нужно как-то справляться. Чтобы отслеживаемые системы добавлялись и отслеживались автоматически, необходимо настроить:

  • шаблоны для приема данных в активном режиме
  • автоматическое создание хоста в БД заббикса
  • агента для отправки данных в пассивном режиме

Я особо не заморачивался и создал клон применяемых шаблонов и изменил везде тип параметров на активную проверку. Прямо выбираете шаблон для Linux, жмете клонировать и сохраняете под новым именем. А дальше увлекательное массовое редактирование. И так для каждого связанного шаблона и не забудьте про Discovery rules, где идет разведка подключеных файловых систем. Если данные не поступают или поступают не полностью, то значит к этому хосту раньше были приклеены неправильные шаблоны и от них остались следы. Нужно удалить шаблоны с чисткой и прикрепить их заново.

zbxmassupdate

Сделать авторегистрацию новых хостов проще простого. Когда они посылают данные в активном режиме вместе с ними можно отправить и специальное ключевое слово в метаданных. Для этого идете в Configuration – Actions и создаете там специальную балалайку. В Event source выбираете авторегистрацию, жмете добавить. Условия и действия должны быть примерно такими:

zbxautoreghost zbxautoreghost2

Ключевое слово здесь является autoreghost. Это аналог пароля, так что его палить нигде не надо 😉 После того как правило создано и шаблоны настроены нужно настроить самого агента. В конфиге указываете следующие параметры:

ServerActive=xbz.ttk.org
Hostname=tipkia
HostMetadata=linux avtoreghost
HostMetadataItem=system.uname
RefreshActiveChecks=60

В этом конфиге есть дополнительное слово linux, сигнализирующее о том, что авторегистрация должна пройти с linux шаблонами. Как только агент будет перезапущен в заббиксе появится новый хост, а через несколько минут и первые данные.

Нет комментариев »

Leave a Reply

Your email address will not be published. Required fields are marked *

*

Яндекс.Метрика

Fortune cookie: Today's spam: My doctor was pleased