Zabbix监控Nginx状态详细配置

注:Zabbix监控Nginx状态没有现成的模板使用,所以这里将会演示如何创建模板并使用。

zabbix部署说明

zabbix-server:CentOS7-63     服务器IP:192.168.3.63

zabbix-agent:CentOS7-64       服务器IP:192.168.3.64

zabbix版本说明zabbix-server:4.4.6   zabbix-agent:4.4.6

Zabbix监控Nginx状态详细配置步骤如下:

一、修改nginx配置文件

使用Nginx的statut状态来监控nginx情况,添加创建配置文件:

#如果是在生产环境上,有定义根重定向的或没有定义根重定向,都可以用以下 nginx 的配置

[root@centos7-64 ~]# vim /etc/nginx/conf.d/nginx_status.conf

server {

        listen 80;

        server_name 192.168.3.64;

        location ^/

        {

                 rewrite /  /status permanent;

        }

        location /status {

                stub_status on;

                allow 127.0.0.1;

                access_log off;

        }

}

二、在客户端创建Nginx监控脚本

[root@centos7-64 ~]# vim /etc/zabbix/scripts/nginx_status.sh

#!/bin/bash

##################################################

# Description:zabbix 通过 status 模块监控 nginx

##################################################

HOST="192.168.3.64"

PORT="80" #端口和你前面Nginx设置一样

stub_status=status   #名称和你前面开启Nginx的statut状态路径设置一样为status

function check() { #检查nginx是否存活

    if [ -f /sbin/pidof ]; then

       /sbin/pidof nginx | wc -w

    else

       ps ax | grep -v "grep" | grep -c "nginx:"

    fi

}

function active() {

    /usr/bin/curl -s "http://$HOST:$PORT/${stub_status}/" 2>/dev/null| grep 'Active' | awk '{print $NF}'

}

function accepts() {

    /usr/bin/curl -s "http://$HOST:$PORT/${stub_status}/" 2>/dev/null| awk NR==3 | awk '{print $1}'

}

function handled() {

    /usr/bin/curl -s "http://$HOST:$PORT/${stub_status}/" 2>/dev/null| awk NR==3 | awk '{print $2}'

}

function requests() {

    /usr/bin/curl -s "http://$HOST:$PORT/${stub_status}/" 2>/dev/null| awk NR==3 | awk '{print $3}'

}

function reading() {

    /usr/bin/curl -s "http://$HOST:$PORT/${stub_status}/" 2>/dev/null| grep 'Reading' | awk '{print $2}'

}

function writing() {

    /usr/bin/curl -s "http://$HOST:$PORT/${stub_status}/" 2>/dev/null| grep 'Writing' | awk '{print $4}'

}

function waiting() {

    /usr/bin/curl -s "http://$HOST:$PORT/${stub_status}/" 2>/dev/null| grep 'Waiting' | awk '{print $6}'

}

$1


文件权限设置:

chmod +x /etc/zabbix/scripts/nginx_status.sh
chown zabbix:zabbix /etc/zabbix/scripts/nginx_status.sh


三、测试

a.进行访问测试nginx的status状态是否可用

[root@centos7-64 ~]# curl 192.168.3.64/status

image.png

b、检测脚本能否正常使用

[root@centos7-64 ~]# sh /etc/zabbix/scripts/nginx_status.sh active

1

[root@centos7-64 ~]# sh /etc/zabbix/scripts/nginx_status.sh check

2

......可每个参数逐步进行检测比较:waiting、reading、writing、accepts、handled、requests

c、zabbix-server服务端监测数据是否能够正常传送

[root@centos7-64 ~]# systemctl restart zabbix-agent  #客户端重启zabbix-agent生效配置

[root@CentOS7-63 zabbix]# zabbix_get -s 192.168.3.64 -p 10050 -k nginx.status[active]

1

四、修改 zabbix_agentd.conf 配置文件

修改:UnsafeUserParameters 等于 1 :UnsafeUserParameters=1

添加:UserParameter=nginx.status[*],/bin/bash /etc/zabbix/scripts/nginx_status.sh $1

修改后如下图所示:

image.png

五、进入 zabbix 界面配置监控模板

1、配置流程:配置——模板——创建模板 Template Nginx-status

image.png

2、配置流程:配置——模板——Template Nginx-status——创建应用集

image.png

3、配置流程:配置——模板——Template Nginx-status——创建监控项

image.png

将监控脚本中涉及的8项检测内容全部添加监控项后,如图所示:

image.png

4、配置流程:配置——模板——Template Nginx-status——创建触发器

触发器实时监控 Nginx 的存活状态,Nginx一旦宕机,就会发生报警

image.png

5、配置流程:配置——模板——Template Nginx-status——创建图形

image.png在此,模板已经创建完成了

六、监控主机添加新创建的Template Nginx-status模板并查看最新检测数据

观察所监测的主机中是否有添加了自己所创建的模板,如果没有就需要添加;否则无法实行监控

image.png如果模板已经添加上,稍等片刻,就可以在 zabbix 的监控图像中可以观察到 nginx 的状态

image.png

最终结果如图:

image.png

附件下载:包含Nginx开启status状态配置文件和Nginx检测脚本

nginx_status.zip

版权声明:
作者:WaterBear
链接:https://l-t.top/767.html
来源:雷霆运维
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
< <上一篇
下一篇>>