使用 Zabbix 官方 Nginx 模板的详细指南
这文件是 Zabbix 7.4 的官方 Nginx 监控模板(https://github.com/zabbix/zabbix,zabbix\templates\app\nginx_agent\template_app_nginx_agent.yaml)。以下是使用这个模板的完整步骤:
一、模板导入步骤
-
导入模板:
-
登录 Zabbix Web 界面
-
进入
Configuration
→Templates
-
点击右上角的
Import
按钮 -
上传您提供的 JSON 文件
-
确认导入
-
二、模板配置
1. 配置 Nginx 状态模块
模板依赖于 Nginx 的 stub_status
模块,需要先配置:
server {location /basic_status {stub_status on;access_log off;allow 127.0.0.1;deny all;}
}
重启 Nginx:
sudo nginx -t && sudo nginx -s reload
2. 模板宏配置
模板使用以下宏,您需要根据实际情况调整:
宏名称 | 默认值 | 描述 |
---|---|---|
{$NGINX.STUB_STATUS.HOST} | localhost | Nginx 状态页面的主机名/IP |
{$NGINX.STUB_STATUS.PORT} | 80 | Nginx 状态页面的端口 |
{$NGINX.STUB_STATUS.PATH} | basic_status | 状态页面的路径 |
{$NGINX.PROCESS_NAME} | nginx | Nginx 进程名称 |
{$NGINX.RESPONSE_TIME.MAX.WARN} | 10 | 响应时间警告阈值(秒) |
{$NGINX.DROP_RATE.MAX.WARN} | 1 | 连接丢弃率警告阈值 |
配置方法:
-
在模板页面找到
Nginx by Zabbix agent
-
点击
Macros
标签页 -
根据需要修改宏值
三、应用到主机
-
关联模板到主机:
-
进入
Configuration
→Hosts
-
选择要监控的主机
-
在
Templates
标签页点击Select
-
搜索并选择
Nginx by Zabbix agent
-
点击
Update
保存
-
-
验证数据收集:
-
等待几分钟
-
进入
Monitoring
→Latest data
-
筛选您的主机,查看 Nginx 相关指标
-
四、模板功能详解
1. 主要监控项
-
连接状态:
-
活动连接数 (nginx.connections.active)
-
读取中连接数 (nginx.connections.reading)
-
写入中连接数 (nginx.connections.writing)
-
等待中连接数 (nginx.connections.waiting)
-
-
请求统计:
-
总请求数 (nginx.requests.total)
-
每秒请求数 (nginx.requests.total.rate)
-
-
进程监控:
-
Nginx 进程数 (nginx.proc.num[{#NGINX.NAME}])
-
内存使用 (nginx.proc.rss[{#NGINX.NAME}])
-
CPU 使用率 (proc.cpu.util[{#NGINX.NAME}])
-
2. 预定义图形
-
Nginx: Connections by state
-
Nginx: Connections per second
-
Nginx: Requests per second
-
Nginx: Memory usage[{#NGINX.NAME}]
3. 预定义触发器
-
Nginx: Version has changed (信息级别)
-
Nginx: Process is not running (高优先级)
-
Nginx: Failed to fetch stub status page (警告级别)
-
Nginx: High connections drop rate (警告级别)
-
Nginx: Service is down (一般级别)
-
Nginx: Service response time is too high (警告级别)
五、故障排除
-
没有数据:
-
检查 Zabbix Agent 日志 (
/var/log/zabbix/zabbix_agentd.log
) -
手动测试状态页面:
curl http://localhost/basic_status
-
确保防火墙允许本地访问状态页面
-
-
权限问题:
setsebool -P httpd_can_network_connect on # 针对 SELinux chmod a+r /etc/nginx/conf.d/status.conf # 确保配置文件可读
-
自定义调整:
-
如果需要监控非标准端口或路径,修改相应宏值
-
如需调整告警阈值,修改
{$NGINX.RESPONSE_TIME.MAX.WARN}
等宏
-
六、最佳实践
-
为生产环境调整告警阈值
-
定期检查模板更新(Zabbix 官方会不定期更新模板)
-
考虑将状态页面通过 HTTPS 保护
-
对于多实例 Nginx,可以克隆模板并为每个实例配置不同的宏值
这个模板提供了全面的 Nginx 监控能力,包括性能指标、健康状态和资源使用情况,能够满足大多数监控需求。