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

Zabbix agent 模板操作

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

1. 确保主机上安装了Zabbix agent。对于主动模式 , 还需要确认agent 配置文件已添加ServerActive参数。
2. 将模板链接 到目标主机 (如果模板在您的Zabbix中不可用,您可能需要先导入模板文件.xml文件 - 查看开箱即用的模板 说明部分)。
3.根据需要调整必配宏的值。
4. 配置要监控的实例允许与Zabbix共享数据- 请参阅 附加步骤/注释 字段。

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

模板名称 必配宏 附加步骤/注释
Apache by Zabbix agent {$APACHE.STATUS.HOST} - Apache状态页面的主机名或IP地址 (默认: 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>
HAProxy by Zabbix agent {$HAPROXY.STATS.PATH} - HAProxy统计页面的路径 (默认: stats)
{$HAPROXY.STATS.PORT} - HAProxy的端口统计主机或容器 (默认: 8404)
{$HAPROXY.STATS.SCHEME} - HAProxy状态页面支持的协议. 支持: http (默认), https
HAProxy状态页需要设置 (配置案例详情参见 HAProxy博文 或模板的 Readme.md文件).
IIS by Zabbix agent / IIS by Zabbix agent active {$IIS.PORT} - IIS Server 监听端口 (默认: 80)
{$IIS.SERVICE} - 端口检查服务 (默认: http). 详情参见 net.tcp.service部分.
IIS服务器应具有以下角色:
Web Server
IIS Management Scripts and Tools

详情参见 IIS 文档.
Microsoft Exchange Server 2016 by Zabbix agent/Microsoft Exchange Server 2016 by Zabbix agent active 请注意,该模板不提供有关 Windows 服务状态的信息。 建议与 OS Windows by Zabbix agentOS Windows by Zabbix agent active 模板一起使用。
Nginx by Zabbix agent {$NGINX.STUB_STATUS.HOST} - NGINX stub_status 主机或者容器的主机名或IP地址 (默认: 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文件).
可用性检查, 执行:
nginx -V 2>&1 \| grep -o with-http_stub_status_module
PHP-FPM by Zabbix agent {$PHP_FPM.HOST} - PHP-FPM 主机或容器的主机名或IP地址 (默认: localhost)
{$PHP_FPM.PING.PAGE} - PHP-FPM ping页面访问路径 (默认:ping)
{$PHP_FPM.PORT} - PHP-FPM 主机或容器的端口号 (默认: 80)
{$PHP_FPM.PROCESS_NAME} - PHP-FPM 进程名 (默认:php-fpm)
{$PHP_FPM.STATUS.PAGE} - PHP-FPM 状态页面访问路径 (默认:status)
1. 打开配置文件并启用状态页:
pm.status_path = /status
ping.path = /ping

2. 语法验证: \$ php-fpm7 -t

3. 重新加载 php-fpm 服务.

4. 在Nginx配置文件Server配置块(虚拟主机) 中, 添加 (带注释的扩展样例参见模板的Readme.md):
location ~ ^/(status\|ping)\$ {
access_log off;
fastcgi_param SCRIPT_FILENAME \$document_root\$fastcgi_script_name;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_pass 127.0.0.1:9000;
}

5. 语法检查: \$ nginx -t

6. 重新加载Nginx

7. 检查状态页: curl -L 127.0.0.1/status
RabbitMQ cluster by Zabbix agent {$RABBITMQ.API.CLUSTER_HOST} - RabbitMQ 集群 API 端点的主机名或IP地址 (默认: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

单节点安装时,可将集群模板分配给已安装节点模板的主机。如果群集由多个节点组成,建议将群集模板分配给一个单独的负载主机使用.
MySQL by Zabbix agent {$MYSQL.HOST} - MySQL 主机或容器的主机名或IP地址 (默认: localhost)
{$MYSQL.PORT} - 数据库服务端口 (默认: 3306)
1.如有必要,将 mysql 和 mysqladmin的路径添加到全局环境变量 PATH.

2. 将Zabbix templates目录下的 template_db_mysql.conf文件复制到Zabbix agent子配置文件目录中(默认为/etc/zabbix/zabbix_agentd.d/),并重启Zabbix agent.

3. 创建MySQL用户 zbx_monitor. 赋予该用户必要的权限, 执行:
GRANT USAGE,REPLICATION CLIENT,PROCESS,SHOW DATABASES,SHOW VIEW ON %% *.* TO '<username>'@'%';%%
(详情参见 MYSQL 文档).

4.在Linux主机中,Zabbix agent需要在home目录下创建 .my.cnf (默认为/var/lib/zabbix) 或在Windows主机的c:\中创建my.cnf. 该文件必须包含三行字符串:
[client]
''user='zbx_monitor' ''
''password='<password>' ''
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 agent home目录 (/var/lib/zabbix/).

3. 将Zabbix templates目录下的 template_db_postgresql.conf文件复制到Zabbix agent子配置文件目录中 (/etc/zabbix/zabbix_agentd.d/) 并重启 Zabbix agent.

4. 编辑pg_hba.conf为Zabbix agent设置白名单 (详情参见 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. 监控一个远程服务器, 在创建Zabbix agent home 目录(/var/lib/zabbix/) 中创建.pgpass 文件, 并在每一行中添加实例、端口、数据库、用户、密码信息 (详情参见 PostgreSQL 文档).
例子:
<REMOTE_HOST1>:5432:postgres:zbx_monitor:<PASSWORD>
*:5432:postgres:zbx_monitor:<PASSWORD>