• 欢迎访问显哥博客,本网站纯属学习技术,绝无商业用途,欢迎小伙伴们共同学习!研究技术!QQ:52249909 加我QQ
  • 世界75亿人,这么小的概率,能认识你,是我一生的幸运,不妨加个QQ接触一下:52249909 加我QQ

企业级zabbix监控实战——zabbix监控Nginx服务【显哥出品,必为精品】

Zabbix监控 lixian 5年前 (2020-05-21) 21108次浏览 0个评论 扫描二维码

1.部署Nginx服务

#安装nginx
[root@web01 ~]# yum install -y nginx

#配置nginx文件
[root@web01 ~]# cat /etc/nginx/conf.d/default.conf
server {
    listen       80;
    server_name  localhost;
    location / {
        root   /usr/share/nginx/html;
        index  index.html index.htm;
    }
    location /nginx_status {
	stub_status on;
	allow 127.0.0.1;
	deny all;
    }
}

#检查nginx配置文件
[root@web01 ~]# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

#重启nginx服务
[root@web01 ~]# systemctl  restart nginx

#curl访问测试
[root@web01 ~]# curl http://127.0.0.1/nginx_status
Active connections: 1 
server accepts handled requests
 1 1 1 
Reading: 0 Writing: 1 Waiting: 0

2.编写监听脚本并赋予执行权限

[root@web01 ~]# mkdir -p /server/scripts
[root@web01 ~]# cd /server/scripts
[root@web01 /server/scripts]# vim nginx_status.sh
#!/bin/bash
NGINX_PORT=80  #如果端口不同仅需要修改脚本即可,否则修改xml很麻烦
NGINX_COMMAND=$1
nginx_active(){
    /usr/bin/curl -s "http://127.0.0.1:"$NGINX_PORT"/nginx_status/" |awk '/Active/ {print $NF}'
}

nginx_reading(){
    /usr/bin/curl -s "http://127.0.0.1:"$NGINX_PORT"/nginx_status/" |awk '/Reading/ {print $2}'
}

nginx_writing(){
    /usr/bin/curl -s "http://127.0.0.1:"$NGINX_PORT"/nginx_status/" |awk '/Writing/ {print $4}'
       }

nginx_waiting(){
    /usr/bin/curl -s "http://127.0.0.1:"$NGINX_PORT"/nginx_status/" |awk '/Waiting/ {print $6}'
       }

nginx_accepts(){
    /usr/bin/curl -s "http://127.0.0.1:"$NGINX_PORT"/nginx_status/" |awk 'NR==3 {print $1}'
       }

nginx_handled(){
    /usr/bin/curl -s "http://127.0.0.1:"$NGINX_PORT"/nginx_status/" |awk 'NR==3 {print $2}'
       }

nginx_requests(){
    /usr/bin/curl -s "http://127.0.0.1:"$NGINX_PORT"/nginx_status/" |awk 'NR==3 {print $3}'
       }

case $NGINX_COMMAND in
    active)
        nginx_active;
        ;;
    reading)
        nginx_reading;
        ;;
    writing)
        nginx_writing;
        ;;
    waiting)
        nginx_waiting;
        ;;
    accepts)
        nginx_accepts;
        ;;
    handled)
        nginx_handled;
        ;;
    requests)
        nginx_requests;
        ;;
    *)
        echo $"USAGE:$0 {active|reading|writing|waiting|accepts|handled|requests}"
esac

#赋予脚本执行权限
[root@web01 /server/scripts]# chmod +x nginx_status.sh

3.编写zabbix监控项

[root@web01 ~]# cat /etc/zabbix/zabbix_agentd.d/nginx_status.conf
UserParameter=nginx_status[*],/bin/bash  /server/scripts/nginx_status.sh "$1"
#重启nginx客户端
[root@web01 ~]# systemctl   restart   zabbix-agent

#客户端获取值测试
[root@web01 ~]# zabbix_agentd -t nginx_status[active]
nginx_status[active]                          [t|1]

#zabbix服务端获取值测试
[root@zabbix-server ~]# zabbix_get  -s 172.16.1.7 -k nginx_status[active]
1

4.导入监控nginx状态模板

企业级zabbix监控实战——zabbix监控Nginx服务【显哥出品,必为精品】

5.选择Nginx Start模板并导入(自行找我索要)

企业级zabbix监控实战——zabbix监控Nginx服务【显哥出品,必为精品】

6.发现已经导入成功了,选择监控项

企业级zabbix监控实战——zabbix监控Nginx服务【显哥出品,必为精品】

7.创建监控项

企业级zabbix监控实战——zabbix监控Nginx服务【显哥出品,必为精品】

8.填写监控项信息(监控tcp80端口)

企业级zabbix监控实战——zabbix监控Nginx服务【显哥出品,必为精品】

9.被控主机关联链接模板

企业级zabbix监控实战——zabbix监控Nginx服务【显哥出品,必为精品】

10.查看监控nginx服务的状态(等待30左右,若有数据则成功)

企业级zabbix监控实战——zabbix监控Nginx服务【显哥出品,必为精品】


本站博主 , 版权所有丨如未注明 , 均为原创
转载请注明原文链接:企业级zabbix监控实战——zabbix监控Nginx服务【显哥出品,必为精品】
喜欢 (0)

您必须 登录 才能发表评论!