Ответ 1
Я могу предложить 2 предложения, чтобы получить метрики в Zabbix:
-
Используйте двоичный файл
zabbix_sender
для передачи данных из вашего script непосредственно на сервер Zabbix. Это позволяет вашему script вызывать собственный интервал и задавать все необходимые параметры. Вам действительно нужно знать местоположение только в двоичном форматеzabbix_sender
.
В интерфейсе сервера Zabbix вы создадите элементы с типомZabbix trapper
. Это тип элемента, который получает значения, отправляемые сzabbix_sender
. Вы составляете имя ключа, и оно должно совпадать. -
Второй способ сделать это - указать имя ключа и script/binary внутри файла
zabbix_agentd.conf
. Каждый раз, когда сервер Zabbix запрашивает этот элемент, будет вызываться script и данные из script.
Это позволяет вам устанавливать интервалы в настройке элемента Zabbix, а не заставлять вас запускать свой script на свои собственные интервалы. Однако вам нужно добавить этот дополнительный бит информации в ваш файлzabbix_agentd.conf
для каждого хоста.
Могут быть другие способы сделать это прямо из Python (zabbix_sender
привязки для Python, возможно?). Но это два способа, которыми я использовал прежде, чем хорошо работать. На самом деле это не Python. Но вы можете использовать zabbix_sender
в своих сценариях на Python. Надеюсь, эта информация поможет!
Обновление: я также помнил, что Zabbix работал над/имеет API (стиль JSON/RPC). Но сайт документации на данный момент не работает, и я не уверен, является ли API для отправки данных элемента или нет. Вот Вики по API: http://www.zabbix.com/wiki/doc/api
И проект для API Python: https://github.com/gescheit/scripts/tree/master/zabbix/
Похоже, что API-интерфейс немного отличается от API, поскольку он является новым по версии Zabbix версии 1.8