欢迎来到站长天空!

其它服务器

当前位置: 主页 > 服务器 > 其它服务器

zabbix配置nginx监控的实现

时间:2025-12-23 14:30:05|栏目:其它服务器|点击:

目录
  • 案例: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监控的实现

浏览器访问状态说明:
		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. 编写 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. 修改 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监控的实现

6. 创建应用集

名称:NGINX_STATUS

zabbix配置nginx监控的实现

7. 创建监控项

名称:Nginx_Status_Ping

键值:nginx_status[ping]

zabbix配置nginx监控的实现

zabbix配置nginx监控的实现

8. 定义触发器

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

zabbix配置nginx监控的实现

nginx 服务down了执行报警

zabbix配置nginx监控的实现

9. 关联主机

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

zabbix配置nginx监控的实现

10. nginx 模板文件

zbx_export_templates.xml



    4.0
    2022-05-21T12:29:43Z
    
        
            Linux servers
        
    
    
        
    
    
        
            {Template Nginx Web Status Monitor:nginx_status[active].last()}>50
            0
            
            Excessive number of active links in nginx
            0
            
            
            0
            4
            
            0
            0
            
            
        
        
            {Template Nginx Web Status Monitor:nginx_status[ping].last()}=0
            0
            
            Nginx down on {HOST.NAME}
            0
            
            
            0
            4
            
            0
            0
            
            
        
    
    
        
            Nginx_Status
            900
            200
            0.0000
            100.0000
            1
            1
            0
            1
            0
            0.0000
            0.0000
            0
            0
            0
            0
            
                
                    1
                    0
                    1A7C11
                    0
                    2
                    0
                    
                        Template Nginx Web Status Monitor
                        nginx_status[accepts]
                    
                
                
                    2
                    0
                    F63100
                    0
                    2
                    0
                    
                        Template Nginx Web Status Monitor
                        nginx_status[active]
                    
                
                
                    3
                    0
                    2774A4
                    0
                    2
                    0
                    
                        Template Nginx Web Status Monitor
                        nginx_status[handled]
                    
                
                
                    4
                    0
                    A54F10
                    0
                    2
                    0
                    
                        Template Nginx Web Status Monitor
                        nginx_status[ping]
                    
                
                
                    5
                    0
                    FC6EA3
                    0
                    2
                    0
                    
                        Template Nginx Web Status Monitor
                        nginx_status[reading]
                    
                
                
                    6
                    0
                    6C59DC
                    0
                    2
                    0
                    
                        Template Nginx Web Status Monitor
                        nginx_status[requests]
                    
                
                
                    7
                    0
                    AC8C14
                    0
                    2
                    0
                    
                        Template Nginx Web Status Monitor
                        nginx_status[waiting]
                    
                
                
                    8
                    0
                    611F27
                    0
                    2
                    0
                    
                        Template Nginx Web Status Monitor
                        nginx_status[writing]
                    
                
            
        
    


上一篇:nginx 配置指令之location使用详解

栏    目:其它服务器

下一篇:项目中Nginx多级代理是如何获取客户端的真实IP地址

本文标题:zabbix配置nginx监控的实现

本文地址:https://zz.feitang.co/server/32930.html

广告投放 | 联系我们 | 版权申明

申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:257218569 | 邮箱:257218569@qq.com

Copyright © 2018-2025 站长天空 版权所有 Powered by EyouCms冀ICP备14023439号