Как выставить данные в zabbix - PullRequest
14 голосов
/ 14 июня 2011

Вот моя цель: я хотел бы иметь возможность сообщать о различных метриках zabbix , чтобы мы могли отображать графики на веб-странице.

Эти метрики включают в себя:

  • задержка на каждую услугу мыла
  • различные результаты запроса из одной или нескольких баз данных.

Какие вещи мне нужно написать и / или разоблачить? Или сервер zabbix собирается пойти и получить его от незащищенного сервиса?

Мне сообщили, что скрипт, который возвращает одно значение, будет работать, но мне интересно, если это правильный путь.

Ответы [ 2 ]

14 голосов
/ 14 июня 2011

Я могу предложить 2 предложения, чтобы получить метрики в Zabbix:

  1. Используйте двоичный файл zabbix_sender для передачи данных из вашего сценария непосредственно на Zabbix сервер. Это позволяет вашему скрипту вызывать свой интервал и устанавливать все необходимые параметры. Вам действительно нужно знать только местоположение бинарного файла zabbix_sender.

    Внутри интерфейса сервера Zabbix вы можете создавать элементы типа Zabbix trapper. Это тип элемента, который получает значения, отправленные с zabbix_sender. Вы составляете имя ключа, и оно должно совпадать.

  2. Второй способ сделать это - указать имя ключа и сценарий / двоичный файл в файле 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

2 голосов
/ 10 ноября 2012

На самом деле есть привязка python для zabbix_sender. http://pypi.python.org/pypi/zbxsend

...