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