Это перевод страницы документации с английского языка. Помогите нам сделать его лучше.

Работа с Zabbix агент 2 шаблонами

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

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

Шаблоны Zabbix агента 2 работают в сочетании с плагинами. В то время как базовую настройку можно сделать простым изменением пользовательских макросов, более глубокую настройку можно достичь настройкой плагина. Например, если плагин поддерживает именованные сессии, можно отслеживать несколько объектов одного типа (например, MySQL1 и MySQL2), указав для каждого из них именованную сессию с собственным URI, именем пользователя и паролем в файле конфигурации.

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

Имя шаблона Обязательные макросы Дополнительные шаги / комментарии
Ceph by Zabbix agent 2 {$CEPH.API.KEY} - API ключ (по умолчанию: zabbix_pass).
Требуется, если {$CEPH.CONNSTRING} задан значением URI.
Должно быть пустым, если {$CEPH.CONNSTRING} задан значением сессии.
{$CEPH.CONNSTRING} - строка подключения; может быть именем сессии или URI заданным в следующем формате: <протокол(хост:порт)>. Для URI поддерживается только HTTPS схема.
Например: Prod, https://localhost:8003 (по умолчанию)
{$CEPH.USER} - пользователь используемый для мониторинга (по умолчанию:zabbix).
Требуется, если {$CEPH.CONNSTRING} задан значением URI.
Должно быть пустым, если {$CEPH.CONNSTRING} задан значением имени сессии.
Работает с Ceph плагином; поддерживаются именованные сессии.

1. Настройте модуль Ceph RESTful в соответствии с документацией.

2. Убедитесь, что точка входа RESTful API доступна для подключений.
Docker - Работает с Docker плагином; именованные сессии не поддерживаются.

Чтобы задать путь к точке входа Docker API измените параметр Plugins.Docker.Endpoint в файле конфигурации агента 2 (по умолчанию: Plugins.Docker.Endpoint=unix:///var/run/docker.sock).

Чтобы проверить доступность, выполните:
zabbix_get -s docker-host -k docker.info
Memcached {$MEMCACHED.CONN.URI} - строка подключения в формате URI; порт опционален; пароль не используется.
Если не задан, плагин использует значение по умолчанию: tcp://localhost:11211.
Например: tcp://127.0.0.1:11211, tcp://localhost, unix:/var/run/memcached.sock.
Работает с Memcached плагином; поддерживаются именованные сессии.

Чтобы проверить доступность, выполните:
zabbix_get -s memcached-host -k memcached.ping
MongoDB cluster by Zabbix agent 2 {$MONGODB.CONNSTRING} - строка подключения в формате URI; пароль не используется (по умолчанию: tcp://localhost:27017).
Может быть именем сессии или URI, указанном в следующем формате: %% <протокол(хост:порт)>%%
Для URI поддерживается только TCP схема.
Например: MongoDB1, tcp://172.16.0.10
{$MONGODB.USER}, {$MONGODB.PASSWORD} - учетные данные MongoDB (по умолчанию: нет).
Если не заданы и {$MONGODB.CONNSTRING} задано значением URI, будут использованы параметры из файла конфигурации.
Должны быть пустыми, если {$MONGODB.CONNSTRING} задано именем сессии.
Работает с MongoDB плагином; поддерживаются именованные сессии.
Для получения информации по настройке MongoDB смотрите плагины.
Чтобы проверить доступность, выполните:
zabbix_get -s mongos.node -k 'mongodb.ping["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}"]"
MongoDB node by Zabbix agent 2 {$MONGODB.CONNSTRING} - строка подключения в формате URI; пароль не используется (по умолчанию: tcp://localhost:27017).
Может быть именем сессии или URI, указанном в следующем формате: %% <протокол(хост:порт)>%%
Для URI поддерживается только TCP схема.
Примеры: MongoDB1, tcp://172.16.0.10
{$MONGODB.USER}, {$MONGODB.PASSWORD} - учетные данные MongoDB (по умолчанию: нет).
Если не заданы и {$MONGODB.CONNSTRING} задано значением URI, будут использованы параметры из файла конфигурации.
Должны быть пустыми, если {$MONGODB.CONNSTRING} задано именем сессии.
Работает с MongoDB плагином; поддерживаются именованные сессии.
Для получения информации по настройке MongoDB смотрите плагины.
Чтобы проверить доступность, выполните:
zabbix_get -s mongodb.node -k 'mongodb.ping["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}"]"
MySQL by Zabbix agent 2 {$MYSQL.DSN} - имя источника данных системы экземпляра MySQL (по умолчанию: <Put your DSN>).
Может быть именем сессии или URI, указанном в следующем формате: %% <протокол(хост:порт или /путь/к/сокету)/>%%
Для URI поддерживаются только TCP и Unix схемы.
Примеры: MySQL1, tcp://localhost:3306, tcp://172.16.0.10, unix:/var/run/mysql.sock
{$MYSQL.USER}, {$MYSQL.PASSWORD} - учетные данные MySQL (по умолчанию: нет). Требуется, если {$MYSQL.DSN} задан значением URI.
Должно быть пустым, если {$MYSQL.DSN} задан значением имени сессии.
Работает с MySQL плагином; поддерживаются именованные сессии.

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

Смотрите документацию MySQL для получения информации о привилегиях пользователей и Unix сокетах.
Oracle by Zabbix agent 2 {$ORACLE.CONNSTRING} - строка подключения; может быть именем сессии или URI указанном в следующем формате: <протокол(хост:порт или /путь/к/сокету)/>
Для URI поддерживается только TCP схема.
Например: Oracle1, tcp://localhost:1521

{$ORACLE.SERVICE} - имя Oracle Service (по умолчанию: ORA). Требуется, если {$ORACLE.CONNSTRING} задан значением URI.
Должно быть пустым, если {$ORACLE.CONNSTRING} задан значением имени сессии.

{$ORACLE.USER}, {$ORACLE.PASSWORD} - учетные данные Oracle (имя пользователя по умолчанию: zabbix, пароль: zabbix_password). Требуется, если {$ORACLE.CONNSTRING} задан значением URI.
Должно быть пустым, если {$ORACLE.CONNSTRING} задан значением имени сессии.
Работает с Oracle плагином; поддерживаются именованные сессии.

Установите Oracle Instant Client.
Чтобы создать пользователя Oracle с необходимыми привилегими, выполните:
CREATE USER zabbix_mon IDENTIFIED BY <ПАРОЛЬ>;
-- Разрешение доступа zabbix_mon пользователю.
GRANT CONNECT, CREATE SESSION TO zabbix_mon;
GRANT SELECT ON DBA_TABLESPACE_USAGE_METRICS TO zabbix_mon;
GRANT SELECT ON DBA_TABLESPACES TO zabbix_mon;
GRANT SELECT ON DBA_USERS TO zabbix_mon;
GRANT SELECT ON SYS.DBA_DATA_FILES TO zabbix_mon;
GRANT SELECT ON V$ACTIVE_SESSION_HISTORY TO zabbix_mon;
GRANT SELECT ON V$ARCHIVE_DEST TO zabbix_mon;
GRANT SELECT ON V$ASM_DISKGROUP TO zabbix_mon;
GRANT SELECT ON V$DATABASE TO zabbix_mon;
GRANT SELECT ON V$DATAFILE TO zabbix_mon;
GRANT SELECT ON V$INSTANCE TO zabbix_mon;
GRANT SELECT ON V$LOG TO zabbix_mon;
GRANT SELECT ON V$OSSTAT TO zabbix_mon;
GRANT SELECT ON V$PGASTAT TO zabbix_mon;
GRANT SELECT ON V$PROCESS TO zabbix_mon;
GRANT SELECT ON V$RECOVERY_FILE_DEST TO zabbix_mon;
GRANT SELECT ON V$RESTORE_POINT TO zabbix_mon;
GRANT SELECT ON V$SESSION TO zabbix_mon;
GRANT SELECT ON V$SGASTAT TO zabbix_mon;
GRANT SELECT ON V$SYSMETRIC TO zabbix_mon;
GRANT SELECT ON V$SYSTEM_PARAMETER TO zabbix_mon;
PostgreSQL Agent 2 {$PG.URI} - строка подключения; может быть именем сессии или URI указанном в следующем формате:
%% <протокол(хост:порт или /путь/к/сокету)/>%%. Для URI поддерживаются только TCP и Unix схемы.
Примеры: Postgres1, tcp://localhost:5432, tcp://172.16.0.10
{$PG.USER}, {$PG.PASSWORD} - учетные данные PostgreSQL (имя пользователя по умолчанию: postgres, пароль:postgres).
Требуется, если {$PG.URI} задан значением URI. Должно быть пустым, если {$PG.URI} задан значением имени сессии.
Работает с PostgreSQL плагином; поддерживаются именованные сессии.

Чтобы создать пользователя с необходимыми привилегими, для PostgreSQL 10 и новее, выполните:
CREATE USER 'zbx_monitor' IDENTIFIED BY '<пароль>';
GRANT EXECUTE ON FUNCTION pg_catalog.pg_ls_dir(text) TO zbx_monitor;\\GRANT EXECUTE ON FUNCTION pg_catalog.pg_stat_file(text) TO zbx_monitor;

Измените pg_hba.conf, чтобы разрешить подключения с Zabbix агента (для получения более подробных сведений смотрите документацию по PostgreSQL).
Redis {$REDIS.CONN.URI} -строка подключения в формате URI; порт опционален; пароль не используется.
Если не задан, используется значение плагина по умолчанию: tcp://localhost:6379
Работает с Redis плагином; поддерживаются именованные сессии.

Чтобы проверить доступность, выполните:
zabbix_get -s redis-master -k redis.ping
SMART by Zabbix agent 2 / SMART by Zabbix agent 2 active - Пользователю из под которого работает Zabbix агент 2 требуются права доступа sudo/root к smartctl. Минимально требуемая версия smartctl - 7.1.

Правило LLD обнаружения дисков найдет все HDD, SSD, NVMe диски с включенным S.M.A.R.T.

Правило LLD обнаружения атрибутов найдет все Уникальные Атрибуты Производителя (Vendor Specific Attributes) по каждому диску.

Чтобы пропустить некоторые атрибуты, задайте регулярные выражения с именами дисков в {$SMART.DISK.NAME.MATCHES} и с ID атрибутов в {$SMART.ATTRIBUTE.ID.MATCHES} на уровне узла сети.
Systemd by Zabbix agent 2 - Специальная настройка не требуется.
Website certificate by Zabbix agent 2 **{$CERT.WEBSITE.HOSTNAME}** - DNS веб-сайта для подключения (по умолчанию: <Put DNS name>). Работает с WebCertificate плагином; именованные сессии не поддерживаются.
Чтобы проверить доступность, выполните:
zabbix_get -s <адрес_zabbix_агента> -k web.certificate.get[<DNS_веб_сайта>]

Создайте отдельный узел сети для TLS/SSL сертификата с интерфейсом Zabbix агента и присоедините этот шаблон к узлу сети.