欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

zabbix监控nginx状态

程序员文章站 2022-07-12 19:40:12
...

我们要用zabbix来获取nginx的状态首先我们的nginx要支持 –with-http_stub_status_module模块。可以通过nginx -V来查看,如果没有配置那么请把nginx平滑升级,这里不在描述。

如果有这个模块那么我们就开始来启用nginx status配置在默认主机里面加上location或者你希望能访问到的主机里面。

 [root@koby ~]# vim /usr/local/nginx/conf/nginx.conf

    server {
        listen 82;

        location /nginx_stat {
        stub_status on;
        access_log off;
        allow 39.106.6.114; #允许的ip
        allow 127.0.0.1;
        deny all;
    }
  }

重启nginx

nginx -s reload

查看链接状态

[aaa@qq.com ~]# curl http://127.0.0.1:82/nginx_stat
Active connections: 2
server accepts handled requests
22421 22421 75450
Reading: 0 Writing: 1 Waiting: 1

上传监控nginx的脚本

[aaa@qq.com ~]# cd /usr/local/zabbix-3.4.4/scripts/
[aaa@qq.com scripts]# cat nginx_status.sh 
#!/bin/bash
HOST="39.106.6.114"     #这里的地址要写自己的
PORT="82"               #端口号和配置文件中的nginx_stat

function proc_num {
    num=$(pgrep nginx |wc -l)
}
function active {
    num=$(curl -s "http://$HOST:$PORT/nginx_stat" |grep 'Active' |awk '{print $NF}')
}
function reading {
    num=$(curl -s "http://$HOST:$PORT/nginx_stat" |grep 'Reading' |awk '{print $2}')
}
function writing {
    num=$(curl -s "http://$HOST:$PORT/nginx_stat" |grep 'Writing' |awk '{print $4}')
}
function waiting {
    num=$(curl -s "http://$HOST:$PORT/nginx_stat" |grep 'Waiting' |awk '{print $6}')
}
function accepts {
    num=$(curl -s "http://$HOST:$PORT/nginx_stat" |awk NR==3 |awk '{print $1}')
}
function handled {
    num=$(curl -s "http://$HOST:$PORT/nginx_stat" |awk NR==3 |awk '{print $2}')
}
function requests {
    num=$(curl -s "http://$HOST:$PORT/nginx_stat" |awk NR==3 |awk '{print $3}')
}

$1
echo ${num:-0}

[aaa@qq.com scripts]# chmod 755 nginx_status.sh & chown -R zabbix.zabbix nginx_status.sh

脚本已经改好接下来我们把userparameter_nginx.conf放到zabbix_agentd.conf.d中

[root@koby ~]# cd /usr/local/zabbix/etc/zabbix_agentd.conf.d/
[root@koby zabbix_agentd.conf.d]# cat userparameter_nginx.conf 
UserParameter=nginx.status[*],/usr/local/zabbix-3.4.4/scripts/nginx_status.sh $1

重启zabbix_agentd

[aaa@qq.com ~]# service zabbix_agentd restart
Shutting down zabbix_agentd: [ OK ]
Starting zabbix_agentd: [ OK ]

我们在zabbix上有关监控nginx的已经配置好了 剩下我们开始配置zabbix上的模板导入模板并监控

导入模板

zabbix监控nginx状态

把所选主机添加模板链接

zabbix监控nginx状态

检查监控项是否是正常的

zabbix监控nginx状态

这里显示监控项是正常的说明我们的nginx监控是没有问题的那么我们来看下是否出现了该有的图像

zabbix监控nginx状态

至此我们又用zabbix监控了nginx的性能,但是还有个问题,就是我们知道nginx作为前端服务器通常上面会挂着很多机器和很多域名,比如我们有A的域名和B的域名,我们如何用zabbix来分别监控出A域名此时有多少连接,B域名此时有多少连接,又该怎么办呢?

如在配置当中遇到问题 希望在评论区留下您的问题 希望我们共同进步

相关标签: nginx zabbix