1,确定监控内容
1)配置nginx
在编译nginx时加上--with-http_stub_status_module选项
编辑配置文件
[root@VM_0_2_centos ~]# vim /usr/local/nginx/conf/nginx.conf
location /status {
stub_status on;
}
2)查看
[root@VM_0_2_centos ~]# curl http://127.0.0.1/status
Active connections: 1
server accepts handled requests
42257 42257 43019
Reading: 0 Writing: 1 Waiting: 0
Active connections:当前活动的连接数量。
Accepts:已经接受客户端的连接总数量。
Handled:已经处理客户端的连接总数量。
(一般与accepts一致,除非服务器限制了连接数量)。
Requests:客户端发送的请求数量。
Reading:当前服务器正在读取客户端请求头的数量。
Writing:当前服务器正在写响应信息的数量。
Waiting:当前多少客户端在等待服务器的响应。
2,编写监控脚本
1)编写
[root@VM_0_2_centos ~]# vim /shell/chk_nginx_status.sh
#! /bin/bash
# Description:zabbix监控nginx性能以及进程状态
# Note:此脚本需要配置在被监控端,否则ping检测将会得到不符合预期的结果
#主机ip或者域名
HOST="jluocc.cn"
#nginx开放端口
PORT="80"
case $1 in
ping)
/sbin/pidof nginx | wc -l;;
active)
/usr/bin/curl "http://$HOST:$PORT/status/" 2>/dev/null| grep 'Active' | awk '{print $NF}';;
reading)
/usr/bin/curl "http://$HOST:$PORT/status/" 2>/dev/null| grep 'Reading' | awk '{print $2}' ;;
writing)
/usr/bin/curl "http://$HOST:$PORT/status/" 2>/dev/null| grep 'Writing' | awk '{print $4}';;
waiting)
/usr/bin/curl "http://$HOST:$PORT/status/" 2>/dev/null| grep 'Waiting' | awk '{print $6}';;
accepts)
/usr/bin/curl "http://$HOST:$PORT/status/" 2>/dev/null| awk NR==3 | awk '{print $1}';;
handled)
/usr/bin/curl "http://$HOST:$PORT/status/" 2>/dev/null| awk NR==3 | awk '{print $2}';;
requests)
/usr/bin/curl "http://$HOST:$PORT/status/" 2>/dev/null| awk NR==3 | awk '{print $3}';;
*)
echo 'ping|active|reading|writing|waiting|accepts|handled|requests'
esac
2)授权
[root@VM_0_2_centos ~]# chmod +x /shell/chk_nginx_status.sh
3)测试
[root@VM_0_2_centos ~]# /shell/chk_nginx_status.sh active
1
3,zabbix_agent配置
1)查看
[root@VM_0_2_centos ~]# cat /usr/local/zabbix/etc/zabbix_agentd.conf | grep zabbix_agentd.conf.d
# Include=/usr/local/etc/zabbix_agentd.conf.d/
# Include=/usr/local/etc/zabbix_agentd.conf.d/*.conf
Include=/usr/local/zabbix/etc/zabbix_agentd.conf.d/*.conf #开启这一行
2)编辑监控nginx配置文件
[root@VM_0_2_centos ~]# vim /usr/local/zabbix/etc/zabbix_agentd.conf.d/userparameter_nginx.conf
UserParameter=nginx.status[*],/shell/chk_nginx_status.sh $1
3)重启zabbix_agent
[root@VM_0_2_centos ~]# /etc/init.d/zabbix_agentd restart
4)测试
[root@VM_0_2_centos ~]# /usr/local/zabbix/bin/zabbix_get -s 172.16.0.2 -k nginx.status[active]
1
[root@VM_0_2_centos ~]# /usr/local/zabbix/bin/zabbix_get -s 172.16.0.2 -k nginx.status[reading]
0
4,zabbix_server端监控nginx
1)添加主机
2)添加监控模板
3)创建应用级
4)创建监控项
以一个accepts为例
创建后如下图
5)创建图形
5,查看监控项
6,创建聚合图形
最终合成
总结
到此监控nginx已经基本完成,触发告警下一节持续更新中,关注我
看官福利:
结束语:
更多精彩内容持续更新中,关注我,有你更精彩。
网友评论