- PVSM.RU - https://www.pvsm.ru -
На одном из проектов часто разворачивались/удалялись новые ноды в облаке, соответственно, появилась задача добавления/удаления новых хостов в Zabbix для мониторинга доступности и снятия статистики. Для саморазвития было решено использовать библиотеку zabbix API [1] на питоне. Это был первый опыт написания скриптов, поэтому буду благодарен за отзывы и замечания по коду.
Мы используем zabbix 1.8.5 — как показала практика, порой в разных версиях 1.8.* данные могут возвращаться разными типами данных, так что возможны несостыковки при работе скриптов с другими версиями zabbix, впрочем, они легко устранимы.
Для добавления нового хоста, нам потребуется знать следующие параметры:
Кратко по приведенным выше пунктам: если с первыми пятью все довольно просто и понятно, то оставшиеся для человека, имеющего небольшой опыт с заббиксом, могут вызывать вопросы. Более подробную информацию, разумеется, правильнее и лучше смотреть на сайте с документацией zabbix.
Группы хостов — вещь довольно удобная. Например, при настройке сценариев уведомлений, для разных групп можно создать разные условия и типы уведомлений, к примеру, для одних групп — отсылать E-Mail и SMS уведомления, для других — только E-Mail и так далее.
Шаблоны — это, грубо говоря, набор параметров, по которым снимаются данные а также триггеры, реагирующие на события. Для веб-серверов, например, мы будем снимать данные с apache или nginx, в то время как для БД нам будут нужны абсолютно другие параметры. Соотвественно, к разным хостам мы будем подключать разные шаблоны.
Наконец, макросы — это переменные, которые мы передаем хосту. К примеру, у нас есть item (в русском варианте — «Элементы данных»), который снимает статистику утилизации HDD. Так как дисков у нас может быть несколько, макросы позволяют нам передать, что $DISK1=/dev/sda, $DISK2=/dev/sdb и т.д., таким образом, снимая статистику с разных дисков одним item-ом при помощи макросов.
Что нужно изменить в конфигурации скриптов?
Нужные параметры хранятся в файле zabbix_credentials.py
http://127.0.0.1/zabbix
Добавление хоста осуществляется таким образом: zabbix_host_add.py <hostname> <dns> <ip address> <port> <useip 1 or 0. if 0 - DNS will be used> <groupid1,...,groupidN> <templateid,...,templateidN> <macro1...macroN>
Удаление — zabbix_host_del.py <ip>
Собственно, сами скрипты с кратким readme — github.com/gnetsman/zabbix_api [2]
Автор: GEN_ius
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/linux/10452
Ссылки в тексте:
[1] zabbix API: https://github.com/gescheit/scripts/tree/master/zabbix/
[2] github.com/gnetsman/zabbix_api: https://github.com/gnetsman/zabbix_api
Нажмите здесь для печати.