zabbix3.4实现nginx性能状态监控

zabbix3.4实现nginx性能状态监控

一、状态监控介绍

背景:nginx在生产环境中的应用越来越广泛,所以需要对nginx的性能状态监控去分析出现的问题。

实现对nginx的性能监控,首先需要配置nginx_status,具体配置过程请参考如下:
博客:https://blog.csdn.net/m0_37814112/article/details/80696052

Accepts(接受)、Handled(已处理)、Requests(请求数)是一直在增加的计数器
Active(活跃)、Waiting(等待)、Reading(读)、Writing(写)随着请求量而增减

二、nginx性能状态监控脚本

[root@host-47-98-97-124 scripts]# vi /usr/local/zabbix/scripts/nginx-status.sh
#!/bin/bash

#Filename:nginx-status.sh
#Author:zhangjunchao

function Active {
        /usr/bin/curl -s "http://47.98.97.124/nginx-status" 2>/dev/null | awk 'NR==1{print $3}'
}

function accepts {
        /usr/bin/curl -s "http://47.98.97.124/nginx-status" 2>/dev/null| awk 'NR==3{print $1}'
}

function handled {
        /usr/bin/curl -s "http://47.98.97.124/nginx-status" 2>/dev/null| awk 'NR==3{print $2}'
}

function requests {
        /usr/bin/curl -s "http://47.98.97.124/nginx-status" 2>/dev/null| awk 'NR==3{print $3}'
}

function Reading {
        /usr/bin/curl -s "http://47.98.97.124/nginx-status" 2>/dev/null| awk 'NR==4{print $2}'
}

function Writing {
        /usr/bin/curl -s  "http://47.98.97.124/nginx-status" 2>/dev/null| awk 'NR==4{print $4}'
}

function Waiting {
        /usr/bin/curl -s  "http://47.98.97.124/nginx-status" 2>/dev/null| awk 'NR==4{print $6}'
}


if [ $# -ne 1 ];then
    echo "please input one arguement"
fi

case $1 in

    Active)
        Active
        ;;

    accepts)
        accepts
        ;;

    handled)
        handled
        ;;

    requests)
        requests
        ;;

    Reading)
        Reading
        ;;

    Writing)
        Writing
        ;;

    Waiting)
        Waiting
        ;;
    *)
        echo "Usage $0: {Active | Reading | Writing | Waiting | accepts | handled |requests }"
        ;;
esac        

[root@host-47-98-97-124 scripts]# chmod +x  /usr/local/zabbix/scripts/nginx-status.sh

三、编辑userparameter_mysql.conf

[root@host-47-98-97-124 zabbix_agentd.conf.d]# cat userparameter_mysql.conf 

UserParameter=mysql.status[*],/usr/local/zabbix/scripts/chk-mysql.sh $1(已有的)  
UserParameter=nginx.status[*],/usr/local/zabbix/scripts/nginx-status.sh $1(要添加的)<==

四、重启zabbix_agentd服务

[root@host-47-98-97-124 ~]# pkill zabbix
[root@host-47-98-97-124 ~]# /usr/local/zabbix/sbin/zabbix_agentd 

五、添加监控nginx状态item

扩展:如何对多台主机的nginx进行监控?
当然,一台台的创建item也可以的,但是如果几千台呢?这样操作的话相当麻烦,随意可以有两种方案
第一种:在一个已经存有的模板中,添加nginx item
第二种:重新创建一个模板,将nginx item创建,然后所有的主机导入模板
在这里,我选择的是第一种方案,由于之前对三台主机的mysql的状态做了监控,导入了mysql监控模板,所以这里我直接在mysql的
监控模板里添加nginx的item。

Configuration—>Templates—>Item 27
这里写图片描述

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

东城绝神

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值