Настройка шаблонов для Zabbix агента

Шаги для обеспечения правильной работы шаблонов, которые собирают метрики с помощью Zabbix агент:

1. Убедитесь, что на узле сети установлен агент Zabbix. Для активных проверок также убедитесь, что узел сети добавлен в параметр ServerActive файла конфигурации агента.
2. Привяжите шаблон к целевому узлу сети (если шаблон недоступен в вашей установке Zabbix, вам может потребоваться сначала импортировать файл .xml шаблона - см. инструкции в разделе Готовые шаблоны).
3. При необходимости измените значения обязательных макросов.
4. Настройте объект для мониторинга так, чтобы разрешить обмен данными с Zabbix - см. инструкции в столбце Дополнительные шаги/комментарии.

Эта страница содержит только минимальный набор макросов и шагов настройки, необходимых для правильной работы шаблона. Подробное описание шаблона, включая полный список макросов, элементов и триггеров, доступно в файле Readme.md шаблона (доступном при нажатии на имя шаблона).

Шаблон Обязательные макросы Дополнительные шаги/комментарии
Template App Apache by Zabbix agent {$APACHE.STATUS.HOST} - имя хоста или IP-адрес страницы состояния Apache (по умолчанию: 127.0.0.1)
{$APACHE.STATUS.PATH} - путь URL (по умолчанию: server-status?auto)
{$APACHE.STATUS.PORT} - порт страницы состояния Apache (по умолчанию: 80)
Должен быть установлен модуль Apache mod_status (см. подробнее в документации Apache).
Чтобы проверить доступность, выполните:
httpd -M 2>/dev/null \| grep status_module

Пример конфигурации Apache:
<Location "/server-status">
SetHandler server-status
Require host example.com
</Location>
Template App HAProxy by Zabbix agent {$HAPROXY.STATS.PATH} - путь к странице HAProxy Stats (по умолчанию: stats)
{$HAPROXY.STATS.PORT} - порт узла сети или контейнера HAProxy Stats (по умолчанию: 8404)
{$HAPROXY.STATS.SCHEME} - схема страницы HAProxy Stats. Поддерживается: http (по умолчанию), https
Страница HAProxy Stats должна быть настроена (см. подробнее о HAProxy Stats в блоге HAProxy; в Readme.md шаблона Zabbix есть готовый пример конфигурации).
Template App IIS by Zabbix agent / Template App IIS by Zabbix agent active {$IIS.PORT} - порт, который IIS Server прослушивает (по умолчанию: 80)
{$IIS.SERVICE} - сервис проверки порта (по умолчанию: http). См. подробнее в разделе net.tcp.service.
Сервер должен иметь следующие роли:
Web Server
IIS Management Scripts and Tools

См. подробнее в документации IIS.
Template App Nginx by Zabbix agent {$NGINX.STUB_STATUS.HOST} - имя или IP-адрес узла сети или контейнера Nginx stub_status (по умолчанию: localhost)
{$NGINX.STUB_STATUS.PATH} - путь к странице Nginx stub_status (по умолчанию: basic_status)
{$NGINX.STUB_STATUS.PORT} - порт узла сети или контейнера Nginx stub_status (по умолчанию: 80)
ngx_http_stub_status_module должен быть создан (см. подробнее в документации Nginx; в Readme.md шаблона Zabbix есть готовый пример конфигурации).
Чтобы проверить доступность, выполните:
nginx -V 2>&1 \| grep -o with-http_stub_status_module
Template App RabbitMQ cluster by Zabbix agent {$RABBITMQ.API.CLUSTER_HOST} - имя узла сети или IP-адрес конечной точки API кластера RabbitMQ (по умолчанию: 127.0.0.1)
{$RABBITMQ.API.USER}, {$RABBITMQ.API.PASSWORD} - учетные данные для входа в RabbitMQ (по умолчанию имя пользователя: zbx_monitor, пароль: zabbix)
Включить плагин управления RabbitMQ (см. документацию RabbitMQ).

Чтобы создать пользователя RabbitMQ с необходимыми разрешениями для мониторинга, запустите:
rabbitmqctl add_user zbx_monitor <PASSWORD>
rabbitmqctl set_permissions -p / zbx_monitor %% "" "" ".*"%%
rabbitmqctl set_user_tags zbx_monitor monitoring

Если кластер состоит из нескольких узлов, рекомендуется назначить шаблон мониторинга кластера отдельному балансирующему узлу сети. В случае мониторинга кластера с одним узлом, шаблон кластера можно назначить узлу сети с шаблоном узла.
Template DB MySQL {$MYSQL.HOST} - имя узла сети или IP-адрес узла сети или контейнера MySQL (по умолчанию: localhost)
{$MYSQL.PORT} - порт службы базы данных (по умолчанию: 3306)
1. При необходимости добавьте путь к утилитам mysql и mysqladmin в глобальную переменную окружения PATH.

2. Скопируйте файл template_db_mysql.conf из каталога templates Zabbix в папку с конфигурацией Zabbix агента (по умолчанию /etc/zabbix/zabbix_agentd.d/) и перезапустите Zabbix агент.

3. Создайте пользователя MySQL zbx_monitor. Чтобы предоставить пользователю необходимые привилегии, выполните:
GRANT USAGE,REPLICATION CLIENT,PROCESS,SHOW DATABASES,SHOW VIEW ON %% *.* TO '<username>'@'%';%%
(см. подробнее в документации MySQL).

4. Создайте .my.cnf в домашнем каталоге Zabbix агента для Linux (/var/lib/zabbix по умолчанию) или my.cnf в c:\ для Windows. В файле должно быть три строки:
[client]
''user='zbx_monitor' ''
''password='<password>' ''
Template DB PostgreSQL {$PG.DB} - имя базы данных для подключения к серверу (по умолчанию: postgres)
{$PG.HOST} - каталог сокета или узел сети сервера базы данных (по умолчанию:127.0.0.1)
{$PG.PORT} - порт сервера базы данных (по умолчанию: 5432)
{$PG.USER} - имя пользователя базы данных (по умолчанию: zbx_monitor)
1. Создать пользователя только для чтения zbx_monitor с правильным доступом к серверу PostgreSQL. Для PostgreSQL 10 и новее запустите:
CREATE USER zbx_monitor WITH PASSWORD '<PASSWORD>' INHERIT;
GRANT pg_monitor TO zbx_monitor;
Для более старых версий PostgreSQL, выполните:
CREATE USER zbx_monitor WITH PASSWORD '<PASSWORD>';
GRANT SELECT ON pg_stat_database TO zbx_monitor;

2. Скопируйте postgresql/ в домашний каталог Zabbix агента (/var/lib/zabbix/).

3. Скопируйте template_db_postgresql.conf из папки в Zabbix templates в папку конфигурации Zabbix агента (/etc/zabbix/zabbix_agentd.d/) и перезапустите Zabbix агент.

4. Отредактируйте pg_hba.conf, чтобы разрешить соединения от агента Zabbix (см. подробнее в документации PostgreSQL).
Примеры строк:
host all zbx_monitor 127.0.0.1/32 trust
host all zbx_monitor 0.0.0.0/0 md5
host all zbx_monitor ::0/0 md5

5. Для мониторинга удаленного сервера создайте файл .pgpass в домашнем каталоге Zabbix агента (/var/lib/zabbix/) и добавьте строки с информацией об экземпляре, порте, базе данных, пользователе и пароле (см. подробнее в документации PostgreSQL).
Примеры строк:
<REMOTE_HOST1>:5432:postgres:zbx_monitor:<PASSWORD>
*:5432:postgres:zbx_monitor:<PASSWORD>