Интеграция с Zabbix
Система позволяет подключаться к нескольким серверам Zabbix и импортировать информацию о мониторящихся хостах.
Настройка подключения
Для настройки подключения необходимо выполнить несколько шагов.
Шаг 1: проверить доступ от сервера системы до сервера Zabbix
Для проверки доступности Zabbix API необходимо выполнить следующую
команду в терминале на сервере системы, заменив http://192.168.1.215
на
адрес файла api_jsonrpc.php
вашей инсталляции Zabbix:
$curl -H "Content-Type: application/json" -X POST -d '{"jsonrpc":"2.0","method":"apiinfo.version","id":1,"auth":null,"params":{}}' http://192.168.1.215/zabbix/api_jsonrpc.php
При наличии доступа сервер Zabbix ответит похожим сообщением:
{"jsonrpc":"2.0","result":"3.2.1","id":1}
Шаг 2: добавить пользователя в Zabbix
Добавить в Zabbix пользователя с правами на чтение хостов или групп хостов, данные с которых необходимо импортировать. Имя и пароль данного пользователя будут использоваться для импорта данных на шаге 4.
Шаг 3: создать объект для импорта данных
На сервере системы нужно создать объект, в который будут импортироваться данные о хостах из Zabbix, и запомнить его ID, указанный в секции Параметров, для использования на шаге 4.
Шаг 4: включить импорт данных на сервере системы
Добавить раздел Zabbix в конфигурационный файл сервера /etc/saymon/saymon-server.conf
и внести в него следующую информацию:
"zabbix" : [{
"url" : "http://192.168.1.215/zabbix/api_jsonrpc.php",
"user" : "saymon",
"password" : "saymon_user_password",
"parent_id" : "58b586d5c3a2f96642e25537"
}]
где
-
url - адрес файла
api_jsonrpc.php
вашей инсталляции Zabbix, который был использован на шаге 1, например,http://192.168.1.215/zabbix/api_jsonrpc.php
; -
user - имя пользователя, добавленного в Zabbix на шаге 2;
-
password - пароль пользователя, добавленного в Zabbix на шаге 2;
-
parent_id - id объекта, созданного на шаге 3.
Для каждого дополнительного сервера Zabbix нужно добавить новый JSON-документ с его данными в массив следующим образом:
"zabbix" : [
{
"url" : "http://192.168.1.215/zabbix/api_jsonrpc.php",
"user" : "saymon",
"password" : "saymon_user_password",
"parent_id" : "58b586d5c3a2f96642e12345"
},
{
"url" : "http://192.168.1.180:8020/zabbix/api_jsonrpc.php",
"user" : "saymon",
"password" : "saymon_user_password",
"parent_id" : "58b586d5c3a2f966427abcde"
}
]
Периодичность обновления данных
По умолчанию данные на сервере системы обновляются каждые 2 минуты.
Для изменения периода обновления данных необходимо в раздел Zabbix конфигурационного файл сервера /etc/saymon/saymon-server.conf
добавить параметр polling_period
со значением периода обновления данных в миллисекундах.
Например:
"zabbix" : [{
"url" : "http://192.168.1.215/zabbix/api_jsonrpc.php",
"user" : "saymon",
"password" : "saymon_user_password",
"parent_id" : "58b586d5c3a2f96642e25537",
"polling_period": 30000
}]
Для применения настроек необходимо перезапустить сервер Центрального Пульта:
$sudo service saymon-server restart
Изменение стандартных опций в запросах Zabbix
Возможно изменять опции для запросов
-
хостов (hosts),
-
триггеров (triggers),
-
данных (data).
"zabbix" : [{
...
"request_options": {
"hosts": {
"filter": {
...
}
},
"triggers": {
"filter": {
...
}
},
"data": {
"filter": {
...
}
}
}
...
}]
Чтобы убрать фильтр из опции запроса, необходимо указать параметру filter значение null. Пример (убрать поле filter из опций запроса триггеров Zabbix):
|
Корреляция класса создаваемых объектов с их именами
Обнаруженным объектам по умолчанию присваивается класс INFO
. Чтобы
присвоить новым объектам другие классы, необходимо задать массив
zabbix.classes в конфигурационном файле сервера /etc/saymon/saymon-server.conf
и указать в нём соответствия
идентификаторов классов и имён объектов:
"zabbix" : [{
...
"classes" : {
"4" : "CPU",
"619503be0ffb595aebe22222" : "Memory|General"
},
...
}]
Порядок применения правил привязки не гарантируется. Если назначить двум разным классам одинаковые регулярные выражения или использовать выражение "."* (любой текст), то нет гарантии, что сначала будет применено правило, указанное выше в списке. |
Для каждого Zabbix-подключения массив настраивается индивидуально. Регулярное выражение по имени объекта нечувствительно к регистру символов.
При необходимости связать класс с несколькими именами необходимо указать все имена в одном регулярном выражении с использованием оператора ИЛИ, в противном случае применится только одно соответствие. Пример: "619503be0ffb595aebe22222": "Memory|General" |