Интеграция с Zabbix
Система позволяет подключаться к нескольким серверам Zabbix и импортировать информацию хостах, которые находятся на мониторинге.
Настройка подключения к Zabbix 5.x
Для настройки подключения нужно выполнить следующие шаги:
Шаг 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",
"zabbix5": true
}]
где
-
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;
-
zabbix5 – включить поддержку Zabbix 5.x.
Для каждого дополнительного сервера Zabbix нужно добавить новый JSON-документ с его данными в массив следующим образом:
"zabbix" : [
{
"url" : "http://192.168.1.215/zabbix/api_jsonrpc.php",
"user" : "saymon",
"password" : "saymon_user_password",
"parent_id" : "58b586d5c3a2f96642e12345",
"zabbix5": true
},
{
"url" : "http://192.168.1.180:8020/zabbix/api_jsonrpc.php",
"user" : "saymon",
"password" : "saymon_user_password",
"parent_id" : "58b586d5c3a2f966427abcde",
"zabbix5": true
}
]
Настройка подключения к Zabbix 6.0
Интеграцию с Zabbix 6.0 поддерживает только сервер Центрального пульта, начиная с версии 3.14.89. Более ранние версии сервера поддерживают только интеграцию с Zabbix 5.x. |
Ниже приводится описание интеграции с Zabbix 6.0, запущенным из docker-контейнера. |
Чтобы настроить интеграцию Центрального пульта с Zabbix 6.0, выполните следующие действия:
Шаг 1: запуск Zabbix
-
Склонируйте репозиторий Zabbix:
$ git clone https://github.com/zabbix/zabbix-docker
-
Выберите нужный docker-файл из склонированного репозитория и запустите его, например:
$ docker-compose -f ./docker-compose_v3_alpine_mysql_latest.yaml up -d
Шаг 2: настройка автоматического запуска Zabbix
Чтобы при перезапуске сервера контейнеры запускались автоматически, создайте systemd-unit, который будет запускать docker-compose файл при загрузке системы. Для этого cоздайте файл /etc/systemd/system/zabbix-compose.service
и вставьте в него следующее содержимое:
[Unit]
Description=Zabbix services with docker-compose
Requires=docker.service
After=docker.service
[Service]
WorkingDirectory=/opt/zabbix-docker/
User=root
Group=docker
Type=oneshot
RemainAfterExit=yes
ExecStartPre=/usr/local/bin/docker-compose -f ./docker-compose_v3_alpine_mysql_latest.yaml down -v
# Compose up
ExecStart=/usr/local/bin/docker-compose -f ./docker-compose_v3_alpine_mysql_latest.yaml up -d
# Compose down, remove containers
ExecStop=/usr/local/bin/docker-compose -f ./docker-compose_v3_alpine_mysql_latest.yaml down
[Install]
WantedBy=multi-user.target
Для применения изменений последовательно выполните следующие команды:
$ systemctl enable zabbix-compose.service
$ systemctl daemon-reload
$ systemctl start zabbix-compose.service
Шаг 3: загрузка и запуск Zabbix Agent
Скачайте и установите Zabbix Agent.
Для работы с сервисом Zabbix Agent используйте указанные ниже команды.
Редактирование конфигурационного файла:
$ sudo nano /etc/zabbix/zabbix_agentd.conf
Запуск сервиса:
$ sudo systemctl start zabbix-agent
Проверка состояния сервиса:
$ sudo systemctl status zabbix-agent
Остановка сервиса:
$ sudo systemctl stop zabbix-agent
Шаг 4: подключение Zabbix Agent
-
Выполните вход в web-интерфейс сервера Zabbix (http://host/zabbix[]).
По умолчанию:
Логин: Admin
Пароль: zabbix
-
Укажите место установки Zabbix Agent. Для этого выполните следующее:
В боковом меню выберите Monitoring и затем нажмите кнопку Create host в правом верхнем углу страницы.
-
В открывшемся диалоговом окне задайте значения следующих параметров:
-
Host name – имя хоста (например, Zabbix server);
-
Host groups – группы хостов (нажмите кнопку Select и в открывшемся меню выберите Zabbix-servers);
-
В секции Interfaces нажмите кнопку Add и в открывшемся меню выберите пункт Agent;
-
В полях IP address, DNS name, Connect to и Port задайте параметры подключения агента.
-
-
Нажмите кнопку Add.
В результате сервер Zabbix будет получать данные с агента.
Шаг 5: создание объекта для мониторинга
Создайте новый объект (item) для мониторинга. Для этого выполните следующее:
-
Нажмите на имя созданного сервера и в открывшемся меню выберите Items.
-
Нажмите кнопку Create item в правом верхнем углу станицы.
-
В открывшемся диалоговом окне задайте нужные параметры для item.
-
Переключитесь на вкладку Tags, задайте нужные теги и нажмите кнопку Add.
Шаг 6: создание триггера
Переключитесь на вкладку Triggers и нажмите кнопку Create trigger, чтобы создать новый триггер.
В качестве примера создайте триггер (например, file-size-trigger) на размер файла более 1 байта. После ввода параметров нажмите кнопку Add. Если размер файла превысит 1 байт, то возникнет авария уровня HIGH.
Шаг 7: настройка подключения к серверу Центрального пульта
Для подключения Центрального пульта к серверу Zabbix в конфигурационном файле saymon-server.conf укажите адрес сервера Zabbix и затем перезапустите сервер Центрального пульта (подробнее см. Конфигурация сервера).
$ sudo service saymon-server restart
В списке объектов Центрального пульта отобразятся Zabbix-хост и его дочерние объекты.
Периодичность обновления данных
По умолчанию данные на сервере системы обновляются каждые 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" |