> Как организовать подключение к Zabbix (Python)
Уровень: senior · Роль: backend · Язык: Python · Категория: Технические вопросы
Компании: Международный аэропорт Шереметьево
Стек: Python
> Пример ответа
Для организации подключения к Zabbix из Python-приложения используется официальный модуль py-zabbix. Ниже приведён пример настройки и выполнения базовых операций.
-
Установка библиотеки:
BASHpip install py-zabbix -
Подключение к Zabbix API:
PYTHONfrom pyzabbix import ZabbixAPI# Параметры подключенияZABBIX_URL = "http://your-zabbix-server/api_jsonrpc.php"ZABBIX_USER = "Admin"ZABBIX_PASSWORD = "zabbix"# Создание сессииzapi = ZabbixAPI(ZABBIX_URL)zapi.login(ZABBIX_USER, ZABBIX_PASSWORD)# Проверка версии APIprint(f"Connected to Zabbix API version {zapi.api_version()}") -
Примеры запросов:
- Получение списка хостов:
PYTHONhosts = zapi.host.get(output=["hostid", "host"])for host in hosts:print(f"Host ID: {host['hostid']}, Name: {host['host']}")
- Создание события (проблемы):
PYTHONzapi.event.create(source=3, # Источник: внутреннее событиеobject=4, # Тип объекта: триггерobjectid=12345, # ID триггераclock=int(time.time()),value=1 # 1 - проблема, 0 - восстановление)
- Получение списка хостов:
-
Обработка ошибок и завершение сессии:
PYTHONtry:# Ваш код работы с APIpassexcept Exception as e:print(f"Ошибка подключения: {e}")finally:zapi.user.logout() # Явный выход из системы
Важные замечания:
- Для работы требуется включённый Zabbix API (параметр
Frontend -> API -> Enabledв конфигурации сервера). - Убедитесь, что пользователь имеет необходимые права доступа (например, роль
Super adminдля всех операций). - Для массовых запросов используйте параметр
limit(например,host.get(limit=100)), чтобы избежать перегрузки сервера.
Данный подход обеспечивает надёжное взаимодействие с Zabbix через JSON-RPC протокол, поддерживая все основные методы API.
> Похожие задачи по Python
Как структурировать уведомления
Откуда брать данные для уведомлений
Как реализовать джобы с разной частотой выгрузки данных из Zabbix
Как реализовать сложные триггеры для мониторинга, например отправку SMS при загрузке CPU и низком потреблении памяти
> Похожие задачи по backend
Как структурировать уведомления
Откуда брать данные для уведомлений
Как реализовать джобы с разной частотой выгрузки данных из Zabbix
Как реализовать сложные триггеры для мониторинга, например отправку SMS при загрузке CPU и низком потреблении памяти
> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?
Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью