这是原厂英文文档的翻译页面. 欢迎帮助我们 完善文档.
2022 Zabbix中国峰会
2022 Zabbix中国峰会
Table of Contents

Zabbix agent 2 模板操作

确保通过Zabbix agent 2收集模板指标的正确步骤:

1. 确保主机上安装了Zabbix agent 2,并且该版本包含所需的插件。有时候,您需要先升级 agent 2。
2. 将模板链接 到目标主机 (如果模板在您的Zabbix中不可用,您可能需要先导入模板文件.xml文件 - 查看开箱即用的模板 说明部分)。
3. 根据需要调整必配宏的值。注意,用户宏可用于覆盖配置参数。
4. 配置要监控的实例允许与Zabbix共享数据- 请参阅 附加步骤/注释 字段

Zabbix agent 2 模板与插件一起工作。 基本配置可以通过简单地调整用户宏来完成,更深层次的定制可以参考 插件配置本身实现。例如,如果插件支持命名会话,则可以通过在配置文件中为每个实体指定具有自己的 URI、用户名和密码的命名会话,监视多个相同类型的实体(例如 MySQL1 和 MySQL2)。

该页面仅包含最小的一组宏和正确的模板操作所需的设置步骤。 在模板的Readme.md文件中提供了模板的详细说明,包括宏,项和触发器的完整列表(可通过单击模板名称访问)。

模板名称 必配宏 附加步骤/注释
Ceph by Zabbix agent 2 {$CEPH.API.KEY} - Ceph API秘钥 (默认: zabbix_pass).
如果{$CEPH.CONNSTRING}为URI,秘钥必须设置。
如果{$CEPH.CONNSTRING} 为会话名,则值为空.
{$CEPH.CONNSTRING} - 连接字符串; 会话名或URI的格式: <协议(主机:端口)>. URI只支持 HTTPS 协议 .
例如: Prod, https://localhost:8003 (默认)
{$CEPH.USER} - Ceph监控用户 (默认:zabbix).
如果{$CEPH.CONNSTRING}为URI,用户必须设置.<br如果{$CEPH.CONNSTRING} 为会话名,则值为空.
Ceph 插件一起使用; 支持给会话命名.

1. Ceph RESTful模块配置,参见文档.

2. 确保RESTful API端点连接的可用性.
Docker - Docker 插件一起使用; 不支持给会话命名.

设置Docker API 端点路径,在agent 2的配置文件 中修改参数Plugins.Docker.Endpoint (默认: 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: %% <protocol(host:port)>%%
URI仅支持TCP 协议.
例子: MongoDB1, tcp://172.16.0.10
{$MONGODB.USER}, {$MONGODB.PASSWORD} - MongoDB 凭证(默认: none).
如果未设置,同时 {$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: %% <protocol(host:port)>%%
URI仅支持TCP 协议.
例子: MongoDB1, tcp://172.16.0.10
{$MONGODB.USER}, {$MONGODB.PASSWORD} - MongoDB 凭证(默认: none).
如果未设置,同时 {$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实例的系统数据源名称 (默认: <输入您的DSN>).
支持会话名称或以下格式定义的URI: %% <protocol(host:port or /path/to/socket)/>%%
URI支持 TCP 和 Unix 协议.
例子: MySQL1, tcp://localhost:3306, tcp://172.16.0.10, unix:/var/run/mysql.sock
{$MYSQL.USER}, {$MYSQL.PASSWORD} - MySQL 凭证(默认: none).如果 {$MYSQL.DSN} 为URI,必须设置.
如果{$MYSQL.DSN}为会话名,必须为空.
MySQL 插件一起使用; 支持给会话命名.

赋予MySQL监控用户必要的权限, 执行:
GRANT USAGE,REPLICATION CLIENT,PROCESS,SHOW DATABASES,SHOW VIEW ON *.* TO '<username>'@'%';

参见MySQL 文档查看关于 用户权限Unix sockets信息.
Oracle by Zabbix agent 2 {$ORACLE.CONNSTRING} - 连接串; 支持会话名称或以下格式定义的URI: <protocol(host:port or /path/to/socket)/>
URI仅支持TCP 协议.
例子: Oracle1, tcp://localhost:1521

{$ORACLE.SERVICE} - Oracle服务名 (默认: 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 <PASSWORD>;
-- Grant access to the zabbix_mon user.
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:
%% <protocol(host:port or /path/to/socket)/>%%. 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 '<password>';
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 agent白名单 (详情参见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 agent 2的用户对smartctl 命令必须能Sudo/root提权. 支持smartctl的最小版本是7.1.

磁盘发现 LLD 规则查找所有开启 S.M.A.R.T. 的 HDD、SSD、NVMe 磁盘.

属性发现 LLD 规则查找每个磁盘的所有供应商特定属性.

要跳过某些属性,请在主机级别使用 {$SMART.DISK.NAME.MATCHES} 中的磁盘名称和 {$SMART.ATTRIBUTE.ID.MATCHES} 中的属性 ID 设置正则表达式.
Systemd by Zabbix agent 2 - 无需特定配置.
Website certificate by Zabbix agent 2 {$CERT.WEBSITE.HOSTNAME} - 连接Web站点的DNS名称 (默认: <输入您的DNS名称>). WebCertificate 插件一起使用; 支持给会话命名.
可用性测试, 执行:
zabbix_get -s <zabbix_agent_addr> -k web.certificat e.get[<website_DNS_name>]

使用 Zabbix 代理接口为 TLS/SSL 证书创建单独的主机并将模板链接到该主机.