ZABBIX监测Nginx状态及脚本

安装了zabbix用来监测agent端的lnmp环境,先整理了一下配置nginx监测的步骤。

一、修改nginx配置文件
/etc/nginx/nginx.conf,可以新写一个server或者在旧的server里面新增一个localtion。保存之后重启nginx。
location /nginx_status {
stub_status on;
access_log off;
allow 127.0.0.1;
allow 192.168..;
#zabbix服务器的IP地址,一般是内网地址
deny all;
}
systemctl restart nginx
stub_status模块主要用于查看Nginx的一些状态信息,zabbix监测的就是status里面的一些基本数据。
使用allow可以运行该ip访问,用deny all 禁止其他机器访问地址,便于测试。我的zabbix分在两个机子上部署了,使用完毕可以把deny注释掉。

二、访问nginx_status
在这里插入图片描述

Activeconnections:对后端发起的活动连接数;

server accepts:处理的连接数;

handled:成功创建的握手次数;

requests:总共处理的请求数。

Reading:读取客户端的header数;

Writing: 返回给客户端的header数;

Waiting: 请求处理完成,正在等待下一请求指令的连接。

在访问效率很高,请求很快被处理完毕的情况下,Waiting 数比较多是正常的。如果 reading + writing 数较多,则说明并发访问量很大,正在处理过程中

三、 zabbix-agent配置文件开始自定义参数
vim /etc/zabbix/zabbix_agentd.conf

     Include=/etc/zabbix/zabbix_agentd.d/*.conf

     UnsafeUserParameters=1

四、新增脚本配置文件
agent配置文件中已经说明脚本存在于/etc/zabbix/zabbix_agentd.d/目录。
cd /etc/zabbix/zabbix_agentd.d/

    vi  nginx_status.conf

    UserParameter=nginx.status[*],/etc/zabbix/zabbix_agentd.d/nginx_status.sh $1

五、编写脚本
vim nginx_status.sh
#!/bin/bash
#Script to fetch nginx statuses for monitoring systems

    HOST="127.0.0.1"
    PORT="80"

    function ping {
        /sbin/pidof nginx | wc -l
    }

    function active {
        /usr/bin/curl "http://$HOST:$PORT/nginx_status/" 2>/dev/null| grep 'Active' | awk '{print $NF}'
    }
    function reading {
        /usr/bin/curl "http://$HOST:$PORT/nginx_status/" 2>/dev/null| grep 'Reading' | awk '{print $2}'
    }
    function writing {
        /usr/bin/curl "http://$HOST:$PORT/nginx_status/" 2>/dev/null| grep 'Writing' | awk '{print $4}'
    }
    function waiting {
        /usr/bin/curl "http://$HOST:$PORT/nginx_status/" 2>/dev/null| grep 'Waiting' | awk '{print $6}'
    }
    function accepts {
        /usr/bin/curl "http://$HOST:$PORT/nginx_status/" 2>/dev/null| awk NR==3 | awk '{print $1}'
    }
    function handled {
        /usr/bin/curl "http://$HOST:$PORT/nginx_status/" 2>/dev/null| awk NR==3 | awk '{print $2}'
    }
	function requests {
        /usr/bin/curl "http://$HOST:$PORT/nginx_status/" 2>/dev/null| awk NR==3 | awk '{print $3}'
    }
    $1

六、 赋权
chmod a+x nginx_status.sh

七、 重启zabbix-agent服务
systemctl restart zabbix-agent

八、 zabbix-server端测试连接
zabbix_get -s 192.168.236.130 -p 10050 -k nginx.status[accepts]
在这里插入图片描述

九、 zabbix-web端创建模板
在这里插入图片描述

十、创建应用集
在这里插入图片描述

十一、创建监控项
创建监控项时,键值要手动输入,选择里面是找不到的。网上好多文章没有说明是手输的。nginx.status[*]就是上面nginx_status.conf里面的参数,*是脚本里面的function名称。
在这里插入图片描述

十二、创建图形

在这里插入图片描述
十三、 关联模板。
选择需要配置的主机,点击模板。切记要点击添加,然后点击更新。
在这里插入图片描述

十四、查看动态
监测中—>图形—>选择主机—>图形
如果数据量比较小,可以通过ab进行测试。
在这里插入图片描述

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值