переименование хостов в zabbix


Система мониторинга Zabbix имеет свой API через который удобно производить массовые или автоматические изменения. К таким изменениям как раз и относится переименование хостов. Да, бывает, что меняются стандарты именования серверов, и надо массово их переименовывать. Несмотря на то, что Zabbix имеет неплохой web интерфейс, большое количество хостов проще переименовать через API. Привожу свой скрипт на python для переименования. Для его использования вам понадобится модуль pyzabbix (pip install pyzabbix). Если вы используете ip в качестве интерфейса подключения к хосту, то удалите две последние строки, они вам не пригодятся.

import sys
from pyzabbix import ZabbixAPI
host = sys.argv[1]
newhost = sys.argv[2]
# Задаем параметры подключения к серверу
zabbix = ZabbixAPI("https://myzabbix.com/zabbix")
# Отключаем уведомления о невалидном сертификате
zabbix.session.verify = False
zabbix.login('user', 'password')
# Получаем id хоста
hid=zabbix.host.get(search={'host': host})[0]['hostid']
# Меняем имя
zabbix.host.update(hostid=hid, host=newhost, name=newhost)
# Меняем dns интерфейс
iid = zabbix.hostinterface.get(hostids=hid)[0]['interfaceid']
zabbix.hostinterface.update(interfaceid=iid, dns=newhost)

Скрипт принимает два аргумента: <старое имя хоста> <новое имя хоста>

comments powered by Disqus