监控Nginx性能状态
Nginx在生产环境中的应用越来越广泛,所以需要对Nginx的性能状态做一些监控,从而发现故障隐患,Ngnx的监控指标可分为:基本活动指标,错误指标,性能指标

监控Nginx思路:
1)首先,要想监控Nginx,需要状态模块的支持,也就是-with-http_stub_status_module;随后在nginx.conf配置开启status状态
2)通过awk取status的各个状态数值
3)自定义模板将取值status的状态写成脚本,放在UserParmeter后面,最后通过zabbix_get测试·agent端是否得到状态值
Accepts:接受的客户端请求数
Active:当前活跃的连接数
Handled:处理的请求数(正常服务器响应)
Requests:客户端处理的请求出(吞吐量)
Reading:当接收到的请求时,连接离开waiting状态,并且该请求本身使Reading状态统计数增加,这种状态下,nginx会读取客户端请求首部,请求首部是比较小的,因此这通常是一种快捷的操作
Writing:请求被读取之后,使得Writing状态计数增加,并保持在该状态,直到响应返回给客户端,这便意味着,该请求在writing状态时,一方面NGINX
安装nginx
被监控做以下操作,如果是自己监控自己就在本机上操作。
1 | [root@zabbix-agent-node1 ~]# vim /etc/yum.repos.d/nginx.repo |

操作完后重启nginx服务
1 | [root@zabbix-agent-node1 ~]# systemctl restart nginx |
浏览器访问:
Linux命令访问:
由于,这些指标,Zabbix自带的监控项,不能满足我们的需求,也就是没有监控项,能提取到精确的数值。所以,我们只能自定义监控项,也就是我们自己写监控项,需要在被监控端的/etc/zabbix/zabbix_agentd.d/目录下
1 | [root@zabbix-agent-node1 ~]# cd /etc/zabbix/zabbix_agentd.d/ |
awk命令相当于是从某个东西里扣东西。默认以空格作为分隔符,也可以 使用参数 -F 符号来指定分隔符,如awk -F : 就是以冒号作为分隔符。NR==1代表是第一行,不写的话默认代表所有行,{print $3}代表第三列。例如下:
1 | [root@zabbix-server ~]# free -m | awk 'NR==2{printf $3/$2*100}' |
可以看到第二次以.作为分隔符后只输出了68,因为只有一行所以写不写NR都无所谓。
在监控端zabbix_get测试
如果是本机监控本机就在本机安装即可!
1 | [root@zabbix-server ~]# yum -y install zabbix-get #zabbix-get是获取被监控端数据的一个工具 |
监控端测试如下,ip写被监控端ip即可
1 | [root@feige ~]# zabbix_get -s 192.168.100.20 -p 10050 -k "nginx_active_cons" |
来到监控端,创建对应的监控项

创建对应触发器

测试触发器
不断地去访问nginx的页面,它的活跃连接数就会增加,大于1,触发器就会触发,如下图

创建动作











