背景
在项目中使用Nginx之后,有时候我们需要知道Nginx具体的工作情况,这时候就需要使用zabbix进行Nginx的相关监控
这边我们有两种方法
- 使用普通的http请求的方式获取基本信息
- 如果使用了Nginx Plus,就可以通过Nginx Plus的接口获取更多的信息
普通方式
参考链接: https://www.zabbix.com/integrations/nginx#nginx_agent
确认nginx是否开启with-http_stub_status_module模块
nginx -V 2>&1 | grep -o with-http_stub_status_module
如果出现with-http_stub_status_module,说明已经开启了该module,即可进行下一步
配置nginx
在80端口对应的配置项里加入如下配置
location = /basic_status {
stub_status;
allow 127.0.0.1;
allow ::1;
deny all;
}
修改宏变量(可选)
默认情况下,不需要修改任何宏变量,因为他就是指向了localhost/basic_status
不过如果修改了端口或者location的话,需要修改对应的配置
Nginx Plus方式
这个方式比较厉害,能看到的东西非常多,但是有个巨大的问题,就是这不是免费的!
如果没有用这个的话,建议可以直接放弃
参考链接: https://www.zabbix.com/integrations/nginx#nginx_plus_http
配置/重启nginx
添加如下配置
保存并重启nginx
restart/reload nginx之后,我们可以尝试访问如下页面,可以看到是有数据传输的
http://<IP>:8080/dashboard.html#upstreams

绑定template
这一步非常简单,就把这个template绑定到对应的host上去即可
修改宏变量
我们需要把template中的这个宏改成如下格式
`<scheme>://<host>:<port>/<location>/`.

刷新即可
能看到已经自动添加了很多很多的监控项了,基本上每一个stream,每一个zone都有对应的监控,功能比单纯的status监控多得多