zabbix配置nginx监控的实现

本站所有内容来自互联网收集,仅供学习和交流,请勿用于商业用途。如有侵权、不妥之处,请第一时间联系我们删除!Q群:迪思分享
免费资源网 – https://freexyz.cn/

目录案例:zabbix 配置 nginx 监控1. 修改配置文件2. 编写 nginx 监控脚本3. 修改 zabbix 配置文件4. 服务端验证5. 添加模块6. 创建应用集7. 创建监控项8. 定义触发器9. 关联主机10. nginx 模板文件

案例:zabbix 配置 nginx 监控

1. 修改配置文件

stub_status 模块可参考: https://www.jb51.net/article/248979.htm

vim /usr/local/nginx/conf/nginx.conf

location /nginx_status {
stub_status;
}
说明:
nginx_status 自定义字段,访问地址(例:192.168.169.131/nginx_status)
stub_status 固定参数

# 重启 nginx
./nginx reload

zabbix配置nginx监控的实现插图

zabbix配置nginx监控的实现插图1

浏览器访问状态说明:
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配置nginx监控的实现插图2

2. 编写 nginx 监控脚本

#/bin/bash
#Description:Automated monitoring nginx performance and process nginx_status scripts

NGINX_PORT=80
NGINX_COMMAND=$1

nginx_ping(){
/sbin/pidof nginx |wc -l
}

nginx_active(){
/usr/bin/curl -s “http://127.0.0.1:”$NGINX_PORT”/nginx_status/” |awk /Active/ {print $NF}
}

nginx_reading(){
/usr/bin/curl -s “http://127.0.0.1:”$NGINX_PORT”/nginx_status/” |awk /Reading/ {print $2}
}

nginx_writing(){
/usr/bin/curl -s “http://127.0.0.1:”$NGINX_PORT”/nginx_status/” |awk /Writing/ {print $4}
}

nginx_waiting(){
/usr/bin/curl -s “http://127.0.0.1:”$NGINX_PORT”/nginx_status/” |awk /Waiting/ {print $6}
}

nginx_accepts(){
/usr/bin/curl -s “http://127.0.0.1:”$NGINX_PORT”/nginx_status/” |awk NR==3 {print $1}
}

nginx_handled(){
/usr/bin/curl -s “http://127.0.0.1:”$NGINX_PORT”/nginx_status/” |awk NR==3 {print $2}
}

nginx_requests(){
/usr/bin/curl -s “http://127.0.0.1:”$NGINX_PORT”/nginx_status/” |awk NR==3 {print $3}
}

case $NGINX_COMMAND in
ping)
nginx_ping
;;
active)
nginx_active
;;
reading)
nginx_reading
;;
writing)
nginx_writing
;;
waiting)
nginx_waiting
;;
accepts)
nginx_accepts
;;
handled)
nginx_handled
;;
requests)
nginx_requests
;;
*)
echo $”USAGE:$0 {ping|active|reading|writing|waiting|accepts|handled|requests}”
esac

# 修改文件权限
chmod u x /etc/zabbix/zabbix_agentd.d/zabbix_nginx.sh

zabbix配置nginx监控的实现插图3

3. 修改 zabbix 配置文件

vim /etc/zabbix/zabbix_agentd.d/userparameter_mysql.conf

# 增加
UserParameter=nginx_status[*],/bin/bash /etc/zabbix/zabbix_agentd.d/zabbix_nginx.sh $1

# 修改完成重启 zabbix-agent
systemctl restart zabbix-agent.service

4. 服务端验证

[root@zabbix ~]# zabbix_get -s 192.168.169.131 -k nginx_status[active]

5. 添加模块

模块名称:Template Nginx Web Status Monitor(自定义)

可见名称:NGINX STATUS MONITOR(自定义)

zabbix配置nginx监控的实现插图4

6. 创建应用集

名称:NGINX_STATUS

zabbix配置nginx监控的实现插图5

7. 创建监控项

名称:Nginx_Status_Ping

键值:nginx_status[ping]

zabbix配置nginx监控的实现插图6

zabbix配置nginx监控的实现插图7

8. 定义触发器

超过50个并发连接就执行报警

zabbix配置nginx监控的实现插图8

nginx 服务down了执行报警

zabbix配置nginx监控的实现插图9

9. 关联主机

将需要监控的主机添加上此模板

zabbix配置nginx监控的实现插图10

10. nginx 模板文件

zbx_export_templates.xml


© 版权声明
THE END
★喜欢这篇文章吗?喜欢的话,麻烦动动手指支持一下!★
点赞10 分享