Zabbix5通过脚本自定义Nginx监控

news/2024/11/16 16:55:10/

1、客户端配置

1.1、nginx开启nginx status

使用 zabbix 监控 nginx,首先 nginx 需要配置 ngx_status,nginx.conf加入以下配置,并重启Nginx或reload

location /ngx_status

    {

        stub_status on;

        access_log off;

        #allow 127.0.0.1;

        #deny all;

    }

nginx status 信息

[fieldyang@www nginx]$ curl http://127.0.0.1:1080/ngx_status

Active connections: 7

server accepts handled requests

 7493 7493 7511

Reading: 0 Writing: 6 Waiting: 1

说明

active connections – 活跃的连接数量

server accepts handled requests — 总共处理了7493 个连接 , 成功创建7493 次握手, 总共处理了7511个请求

reading — 读取客户端的连接数.

writing — 响应数据到客户端的数量

waiting — 开启 keep-alive 的情况下,这个值等于 active – (reading+writing), 意思就是 Nginx 已经处理完正在等候下一次请求指令的驻留连接.

1.2、zabbix 客户端配置

以上为 nginx 性能计数,除了监控以上数据,还需要监控 nginx 进程状态,并且配置触发器!

1.2.1、编写客户端脚本 ngx_status.sh

如脚本无法使用,请检查对应路径和相关变量

[fieldyang@www scripts]$ pwd

/usr/lib/zabbix/scripts

[fieldyang@www scripts]$ cat >ngx_status.sh

#!/bin/bash

# 功能:zabbix 监控 nginx 性能、进程状态、返回码统计

# 说明:需要配置在被监控端,否则 ping 检测将会得到不符合预期的结果

HOST="127.0.0.1"

PORT="1080"

lastmin=`date +"%Y:%H:%M" -d "1 min ago"`

code=$2

# 检测 nginx 进程是否存在

function ping {

/sbin/pidof nginx | wc -l

}

# 检测 nginx 性能

function active {

curl "http://$HOST:$PORT/ngx_status/" 2>/dev/null| grep 'Active' | awk '{print $NF}'

}

function reading {

curl "http://$HOST:$PORT/ngx_status/" 2>/dev/null| grep 'Reading' | awk '{print $2}'

}

function writing {

curl "http://$HOST:$PORT/ngx_status/" 2>/dev/null| grep 'Writing' | awk '{print $4}'

}

function waiting {

curl "http://$HOST:$PORT/ngx_status/" 2>/dev/null| grep 'Waiting' | awk '{print $6}'

}

function accepts {

curl "http://$HOST:$PORT/ngx_status/" 2>/dev/null| awk NR==3 | awk '{print $1}'

}

function handled {

curl "http://$HOST:$PORT/ngx_status/" 2>/dev/null| awk NR==3 | awk '{print $2}'

}

function requests {

curl "http://$HOST:$PORT/ngx_status/" 2>/dev/null| awk NR==3 | awk '{print $3}'

}

function status_sum {

sum=`grep " ${code}" /var/log/nginx/access.log |grep ${lastmin}|awk '{sum+=1}END{ print sum}'`

if [ "$sum" = "" ]

then

       echo 0

else

       echo $sum

fi

}

# 执行 function

if [ $# -gt 1 ]

then

        status_sum

else

        $1

fi

[fieldyang@www scripts]$ chmod +x ngx_status.sh

1.2.2、zabbix 客户端文件配置

将自定义的 UserParameter 加入配置文件,然后重启 agentd,如下:

[fieldyang@www scripts]$ cat /etc/zabbix/zabbix_agentd.conf|grep ^UserParameter

UserParameter=nginx.status[*],/usr/lib/zabbix/scripts/ngx_status.sh $1 $2

[fieldyang@www scripts]$ killall zabbix_agentd

[fieldyang@www scripts]$ ps -ef|grep zabbix_agentd

fieldyang      69914  57012  0 13:52 pts/0    00:00:00 grep --color=auto zabbix_agentd

[fieldyang@www scripts]$ /usr/sbin/zabbix_agentd -c /etc/zabbix/zabbix_agentd.conf

[fieldyang@www scripts]$ ps -ef|grep zabbix_agentd

zabbix    69918      1  0 13:52 ?        00:00:00 /usr/sbin/zabbix_agentd -c /etc/zabbix/zabbix_agentd.conf

zabbix    69919  69918  0 13:52 ?        00:00:00 /usr/sbin/zabbix_agentd: collector [idle 1 sec]

zabbix    69920  69918  0 13:52 ?        00:00:00 /usr/sbin/zabbix_agentd: listener #1 [waiting for connection]

zabbix    69921  69918  0 13:52 ?        00:00:00 /usr/sbin/zabbix_agentd: listener #2 [waiting for connection]

zabbix    69922  69918  0 13:52 ?        00:00:00 /usr/sbin/zabbix_agentd: listener #3 [waiting for connection]

zabbix    69923  69918  0 13:52 ?        00:00:00 /usr/sbin/zabbix_agentd: active checks #1 [idle 1 sec]

fieldyang      69928  57012  0 13:52 pts/0    00:00:00 grep --color=auto zabbix_agentd

[fieldyang@www scripts]$

1.2.3、zabbix_get 获取数据

通过此命令我们可以检测配置是否正确,如下命令 192.168.28.132 为zabbix-agent IP地址

Ps.推荐使用VMware安装 centos7最小系统,按需克隆主机,修改网卡配置的IP地址,重启network,便可以拷贝多台机器完成zabbix 学习。

[fieldyang@www network-scripts]$ cat  /etc/sysconfig/network-scripts/ifcfg-ens33|grep IPADDR

IPADDR=192.168.28.132

[fieldyang@www scripts]$ for i in ping active reading writing waiting accepts handled requests status_sum

> do

> if [ $i = "status_sum" ]

> then

> for j in 200 301 302 403 404 500

> do

> zabbix_get -s 192.168.28.132 -k nginx.status[$i,$j] |xargs |xargs echo "${i}_${j}:"

> done

> else

> zabbix_get -s 192.168.28.132 -k nginx.status[$i] |xargs |xargs echo "$i:"

> fi

> done

ping: 1

active: 1

reading: 0

writing: 1

waiting: 0

accepts: 141612

handled: 141613

requests: 141218

status_sum_200: 124

status_sum_301: 139

status_sum_302: 99

status_sum_403: 0

status_sum_404: 0

status_sum_500: 0

[fieldyang@www scripts]$

zabbix server 服务器上执行如上命令, 192.168.28.132 agentd 机器

2、zabbix web配置

2.1、创建“Template App NGINX”模板、应用集Nginx (略)

配置-->模板-->创建模板

配置-->模板-->“Template App NGINX”-->应用集-->创建应用集

2.2、创建监控项

配置-->模板-->“Template App NGINX”-->监控项-->创建监控项

注意:自定义的脚本只适合以下监控项,其他需求请按需修改脚本。

2.3、创建触发器

配置-->模板-->“Template App NGINX”-->触发器-->创建触发器

2.4、创建图形

配置-->模板-->“Template App NGINX”-->图形-->创建图形

2.5、创建触发器告警动作

配置-->动作-->左上角选择 触发器动作-->创建动作

2.6、链接模板

配置-->主机-->点击 nginx 所在服务器-->点击 模板-->链接新模板 输入"Template App NGINX"->Add->最后点击 更新。

3、功能验证

测试可以使用 ab工具模拟访问

ab -n 4000 -c 15 http://192.168.28.132:1080/ngx_status >>1.txt

或以下脚本

for i in `seq -w 1 9999`

do

curl http://192.168.28.132:1080/ngx_status>>1.txt

done

3.1、查看最新数据

监测-->最新数据

3.2、查看图形展示

监测-->主机-->选择nginx主机-->图形-->过滤相关图形

3.3、测试触发器动作。

模拟下线nginx

[fieldyang@www ~]$ service nginx stop

Redirecting to /bin/systemctl stop nginx.service

[fieldyang@www]~]$

在问题列表可以看到已经触发问题,并下发告警邮件。

重新上线nginx,可以看到问题已解决,并下发恢复邮件

4、导出模板

实际使用中,可以在测试环境中调试好模板,然后再导入到生产环境中

导出

配置-->模板-->选中要导出的模板-->导出

导入

配置-->模板-->选中要导入的模板-->导入


http://www.ppmy.cn/news/192198.html

相关文章

教大家如何选购直播声卡

随着网络直播的流行,越来越多的人开始加入行列中来,这也促进了对直播设备的需求。.们要知道在直播需要的设备中,只有摄像头和麦克风可以与所有电脑兼容通用,而声卡却不行,声卡分内置声卡和外置声卡。 内置声卡只能用在…

C/C++ 声卡编程代码

事实上,声卡是PC的一种多媒体设备,所以可以用Windows 的MCI(Media Control I nterface)命令来控制声卡。MCI它提供了一组与设备无关的控制命令,是一种访问多媒体设备的高层次方法。也正因为它属于一种高层次方法&#…

type-c边充边用直播声卡方案

随着直播平台的红火,也给直播设备带来了市场,不管是灯光,麦克风,还是耳机,声卡等等都有不错的销量。 本文就直播声卡展开讨论,首先声卡也叫音频卡,是多媒体系统中最基本的组成部分,…

计算机技术中pci指什么,电脑里面的PCI是什么

2009-02-22 电脑重新安装系统之后没有声音的原因?硬 建议安装驱动精灵2008 ,安装之后,使用其自动更新驱动功能,它会自动下载并安装最新版本驱动,包括,声卡、显卡、网卡、USB等,这是驱动的总汇。…

用什么软件可以检测苹果耳机芯片_创新发布Sound Blaster X3外置声卡:支持新一代Super XFi耳机音效...

火爆抢展位,请联系:info52audio.com 9月28日,创新发布声卡新品——Sound Blaster X3外置声卡,该声卡支持新一代Super X-Fi耳机音效。 其中,Sound Blaster X3采用超薄设计,整体类似微型电视盒,尺…

海尔微型计算机hdp-9108,9108能安装内置声卡?

2009-07-20 重装系统找不到声卡,是不是坏了啊 建议用下面的软件安装声卡驱动电脑无声故障排除方法如下:(1)首先检查任务栏右侧有无“小喇叭”。如果有,则声卡正常,故障原因可能是系统声音太小,或设置了静音&#xff0c…

OTG声卡Type-C边充边玩数据线方案

随着直播行业的兴起,不仅带动了线上带货的热潮,而且也让直播配件的市场火热起来,我从一位声卡商家了解到,前几年直播行业还没起来的时候,一个月销量不过百台,而如今直播的人多了,月销量直接上升…

linux作为输出电脑声卡,今天终于搞定我的电脑的ALC883声卡linux驱动了

今天终于搞定我的电脑的ALC883声卡linux驱动了 发布时间:2007-10-30 01:14:20来源:红联作者:kwareregb 我的电脑是神舟F206S,声卡是realtek ALC883 的 intel high definition audio 集成声卡。 修改配置文件:在 /etc/modprob.d/alsa-base 中加一行&#…