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:2018-5-20 14:08:55
#Author Blog:
# https://www.yangxingzhen.com
#Author WeChat:
# 微信公众号:小柒博客
#Author mirrors site:
# https://mirrors.yangxingzhen.com
#About the Author
# BY:YangXingZhen
# Mail:xingzhen.yang@yangxingzhen.com
#About the Author
# BY:、、、小柒
# QQ:675583110
# Mail:675583110@qq.com
#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值
#使用zabbix_get命令获取key值
#键值
nginx_status[active]
nginx_status[reading]
nginx_status[writing]
nginx_status[waiting]
nginx_status[accepts]
nginx_status[handled]
nginx_status[requests]
Zabbix监控平台配置
1、下载模板文件
模板附件下载:
2、导入Nginx模板
进入后台->配置->模板->导入(右上角)-> 选择下载的模板文件->最后点击导入 。
至此Nginx模板已经导入到Zabbix中。
3、关联模板
需要把Nginx模板链接到你的监控主机上,进入后台->配置->点击你的主机->模板->选择刚才导入模板,点击添加,最后点击更新即可。
4、效果图展示
至此,Zabbix监控Nginx性能状态完毕。
若文章图片、下载链接等信息出错,请在评论区留言反馈,博主将第一时间更新!如本文“对您有用”,欢迎随意打赏,谢谢!
上海市 电信 6F
终于找到出处了,谢谢
上海市 电信 5F
佩服佩服!!!
浙江省杭州市 电信 4F
?aaaa啊啊啊啊
上海市长宁区 /普陀区电信 3F
厉害
北京市 优位风尚(北京)信息技术有限公司联通节点 2F
文档写的很细致,易懂,点赞。
陕西省西安市 电信 1F
mark学习一下