这篇文章继续给大家介绍zabbix监控,监控Nginx、PHP等服务,其实非常简单,难点在于如何去取这个值,包括监控业务,难点在于思路是否清晰,思维是否活跃,如何去进行判断是否有这个业务,并且业务正常运行。
监控Nginx服务状态信息
通过Nginx监控模块,监控Nginx的7种状态
1. Nginx 的状态模块展示了七种不同的状态(四种计数器和三种状态)。以下是这七种状态的含义: 2. 1. active:当前 Nginx 正在处理的连接数,包括等待请求处理或正在响应请求的连接数。 3. 2. accepts:Nginx 启动后已经接受的连接总数。 4. 3. handled:Nginx 工作进程已成功处理的连接总数。与 accepts 计数器不同,此计数器可能会多个小于 accepts 数量,在某些情况下,客户端可能已经断开了连接而无法正常处理。 5. 4. requests:已经接收到、处理并响应的请求数量,该值通常应与 handled 值相等。 6. 5. reading:当前正在读取客户端请求头部字段的连接数。 7. 6. writing:当前正在向客户端发送响应数据的连接数。 8. 7. waiting:空闲 keep-alive 连接,既没有读也没有写。可以处理下一个请求的连接。 9. 通过理解这些状态可以帮助我们了解 Nginx 正在处理哪些连接,并且在调试和优化性能时非常有用。 当 active 连接数随着来自客户端的请求增加而增加时,可能需要考虑优化配置以确保足够的性能水平和稳定性。
1、开启Nginx状态模块
1. [root@Web01 ~]# cat /etc/nginx/conf.d/status.conf 2. server { 3. listen 88; 4. location /nginx_status { 5. stub_status; 6. } 7. } 8. [root@Web01 ~]# systemctl restart nginx
2、配置监控项
1. [root@Web01 ~]# curl -s 127.0.0.1:88/nginx_status 2. Active connections: 1 3. server accepts handled requests 4. 4 4 3 5. Reading: 0 Writing: 1 Waiting: 0
用awk以此取值,并设置为key
1. [root@Web01 ~]# cat /etc/zabbix/zabbix_agentd.d/nginx.conf 2. UserParameter=nginx.connections,curl -s 127.0.0.1:88/nginx_status|awk 'NR==1{print $NF}' 3. UserParameter=nginx.accepts,curl -s 127.0.0.1:88/nginx_status|awk 'NR==3{print $1}' 4. UserParameter=nginx.handled,curl -s 127.0.0.1:88/nginx_status|awk 'NR==3{print $2}' 5. UserParameter=nginx.requests,curl -s 127.0.0.1:88/nginx_status|awk 'NR==3{print $3}' 6. UserParameter=nginx.Reading,curl -s 127.0.0.1:88/nginx_status|awk 'NR==4{print $2}' 7. UserParameter=nginx.Writing,curl -s 127.0.0.1:88/nginx_status|awk 'NR==4{print $4}' 8. UserParameter=nginx.Waiting,curl -s 127.0.0.1:88/nginx_status|awk 'NR==4{print $6}' 9. [root@Web01 ~]# systemctl restart zabbix-agent.service
测试取值
1. [root@Zabbix ~]# zabbix_get -s 172.16.1.7 -k nginx.connections 2. 1
3、创建模板
基于模板创建监控项,也可以先添加监控项在复制到模板
其他六项也同理,不再截图
4、用默认键值添加Nginx-status端口监控项,并配置触发器
配置触发器
5、基于模板创建图形
5、模板创建完毕后关联被监控的主机
Web02同理