Zabbix监控Nginx性能状态
Nginx在生产环境中的应用越来越广泛,所以需要对nginx的性能状态做一些监控,从而发现故障隐患,Ngnx的监控指标可分为:基本活动指标,错误指标,性能指标。
需要使用zabbix监控nginx,首先nginx需要配置ngx_status,如果开启请看小柒博客之前的文章《Nginx服务器启用status状态页面》
监控Nginx思路:
1)首先,要想监控Nginx,需要状态模块的支持,也就是-with-http_stub_status_module;随后在nginx.conf配置开启status状态
2)通过awk取status的各个状态数值
3)自定义模板将取值status的状态写成脚本,放在UserParmeter后面,最后通过zabbix_get测试Agent端是否得到状态值
Active connections Nginx正处理的活动链接数个数;重要
server Nginx启动到现在共处理了多少个连接。
accepts Nginx启动到现在共成功创建几次握手。
handled requests Nginx总共处理了几次请求。
Reading Nginx读取到客户端的 Header 信息数。
Writing Nginx返回给客户端的 Header 信息数。
Waiting Nginx已经处理完正在等候下一次请求指令的驻留链接,开启 Keep-alive的情况下,Waiting这个值等于active-(reading + writing)。 请求丢失数=(握手数-连接数)可以看出,本次状态显示没有丢失请求。
Zabbix客户端配置
1、自定义KEY值
#编辑配置zabbix_agentd配置文件,添加以下内容
[root@localhost ~]# vim /usr/local/zabbix/etc/zabbix_agentd.conf
UserParameter=nginx.status[*],/data/scripts/auto_detection_nginx_state.sh $1
#保存退出
2、重启Zabbix_agentd服务
[root@localhost ~]# service zabbix_agentd restart
3、下载脚本文件(获取监控值)
[root@localhost ~]# cd /data/scripts
[root@localhost scripts]# wget -c https://mirrors.yangxingzhen.com/shell/auto_detection_nginx_state.sh
[root@localhost scripts]# cat auto_detection_nginx_state.sh
#脚本内容如下
#!/bin/bash
#Date:2017-5-20 13:14:00
#Author Blog:
# https://www.yangxingzhen.com
# https://www.yangxingzhen.cn
#Author WeChat:
# 微信公众号:小柒博客
#Author mirrors site:
# https://mirrors.yangxingzhen.com
#About the Author
# BY:YangXingZhen
# Mail:xingzhen.yang@yangxingzhen.com
# QQ:675583110
#Zabbix监控Nginx性能以及进程状态
HOST='www.yangxingzhen.com'
if [ $# -eq 0 ];then
echo -e "\033[32m Usage:/bin/bash|sh $0 ping|accepts|handled|requests|active|reading|writing|waiting\033[0m"
exit 1
fi
function ping {
/sbin/pidof nginx | wc -l
}
function accepts {
curl -s "https://$HOST/nginx_status" | awk NR==3 | awk '{print $1}'
}
function handled {
curl -s "https://$HOST/nginx_status" | awk NR==3 | awk '{print $2}'
}
function requests {
curl -s "https://$HOST/nginx_status" | awk NR==3 | awk '{print $3}'
}
function active {
curl -s "https://$HOST/nginx_status" | grep Active | awk '{print $NF}'
}
function reading {
curl -s "https://$HOST/nginx_status" | grep Reading | awk '{print $2}'
}
function writing {
curl -s "https://$HOST/nginx_status" | grep Writing | awk '{print $4}'
}
function waiting {
curl -s "https://$HOST/nginx_status" | grep Waiting | awk '{print $6}'
}
$1
4、脚本授权
[root@localhost scripts]# chmod +x auto_detection_nginx_state.sh
5、验证server端验证是否能获取agent端的key值
Key值列表:
nginx_status[active]
nginx_status[reading]
nginx_status[writing]
nginx_status[waiting]
nginx_status[accepts]
nginx_status[handled]
nginx_status[requests]
# 使用zabbix_get命令获取key值
Zabbix监控平台配置
1、下载模板文件
模板附件下载:
2、导入Nginx模板
进入后台->配置->模板->导入(右上角)-> 选择下载的模板文件->最后点击导入 。
至此,Nginx模板已经导入到Zabbix中。
3、关联模板
# 需要把Nginx模板链接到你的监控主机上,进入后台->配置->点击你的主机->模板->选择刚才导入模板,点击添加,最后点击更新即可。
4、效果图展示
至此,Zabbix监控Nginx性能状态完毕。
若文章图片、下载链接等信息出错,请在评论区留言反馈,博主将第一时间更新!如本文“对您有用”,欢迎随意打赏,谢谢!
广东省深圳市 电信 15F
求模板
广东省深圳市 电信 B1
@ AAA 评论后刷新即可
广东省深圳市 电信 14F
牛啊
广东省佛山市 电信 13F
写的真不错
广东省深圳市 电信 12F
监控模板
北京市海淀区 联通 11F
监控模板
广东省深圳市 电信 10F
监控模板
浙江省杭州市上城区 电信 9F
试试模板
广东省深圳市 电信 B1
@ Jason 欢迎
河北省张家口市 电信 8F
很好的
广东省 移动 7F
ginx监控模板
广东省深圳市 电信 6F
nginx监控模板
芬兰 5F
赞!
四川省成都市 电信 4F
继续学习
广东省广州市 电信 3F
牛逼666
广东省深圳市南山区 电信 2F
写的不错
广东省深圳市南山区 电信 1F