Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2898944
  • 博文数量: 348
  • 博客积分: 2907
  • 博客等级: 中校
  • 技术积分: 2272
  • 用 户 组: 普通用户
  • 注册时间: 2010-03-12 09:16
个人简介

专注 K8S研究

文章分类

全部博文(348)

文章存档

2019年(22)

2018年(57)

2016年(2)

2015年(27)

2014年(33)

2013年(190)

2011年(3)

2010年(14)

分类: LINUX

2018-08-09 13:08:28

1.安装nginx
[root@linux-node2 ~]# yum install -y nginx
[root@linux-node2 ~]# mkdir /etc/zabbix/zabbix_agentd.d/scripts    #创建脚本文件夹
[root@linux-node2 ~]# vim /etc/nginx/nginx.conf
在server内增加nginx状态监控,nginx的状态主要来自nginx的自带的模块
       location /nginx_status {
                stub_status on;
                access_log off;
                allow 192.168.56.0/24;
                allow 127.0.0.1;
                deny all;
        }
[root@linux-node2 ~]# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
[root@linux-node2 ~]# systemctl restart nginx
[root@linux-node1 ~]# curl 
Active connections: 1 
server accepts handled requests
 9 9 7 
Reading: 0 Writing: 1 Waiting: 0 
 
Nginx状态解释:
Active connections  Nginx正处理的活动链接数1个
server              Nginx启动到现在共处理了9个连接。
accepts             Nginx启动到现在共成功创建9次握手。 
handled requests    Nginx总共处理了7次请求。
Reading             Nginx读取到客户端的 Header 信息数。
Writing             Nginx返回给客户端的 Header 信息数。
Waiting             Nginx已经处理完正在等候下一次请求指令的驻留链接,开启。
Keep-alive的情况下,Waiting这个值等于active-(reading + writing)。
请求丢失数=(握手数-连接数)可以看出,本次状态显示没有丢失请求。

2.添加agent的监控nginx状态配置
[root@linux-node2 ~]# vim /etc/zabbix/zabbix_agentd.d/nginx_monitor.conf
UserParameter=nginx_status[*],/bin/bash /etc/zabbix/zabbix_agentd.d/scripts/nginx_monitor.sh "$1"

3.编写获取nginx状态的shell脚本
[root@linux-node2 ~]# vim nginx_monitor.sh
NGINX_PORT=80  
NGINX_COMMAND=$1
nginx_active(){
    /usr/bin/curl -s ""$NGINX_PORT"/nginx_status/" |awk '/Active/ {print $NF}'
}
nginx_reading(){
    /usr/bin/curl -s ""$NGINX_PORT"/nginx_status/" |awk '/Reading/ {print $2}'
}
nginx_writing(){
    /usr/bin/curl -s ""$NGINX_PORT"/nginx_status/" |awk '/Writing/ {print $4}'
       }
nginx_waiting(){
    /usr/bin/curl -s ""$NGINX_PORT"/nginx_status/" |awk '/Waiting/ {print $6}'
       }
nginx_accepts(){
    /usr/bin/curl -s ""$NGINX_PORT"/nginx_status/" |awk 'NR==3 {print $1}'
       }
nginx_handled(){
    /usr/bin/curl -s ""$NGINX_PORT"/nginx_status/" |awk 'NR==3 {print $2}'
       }
nginx_requests(){
    /usr/bin/curl -s ""$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@linux-node2 scripts]# chmod +x nginx_status.sh
[root@linux-node2 ~]# systemctl restart zabbix-agent
测试一定使用Zabbix_get来获取值:
[root@linux-node1 ~]# zabbix_get -s 192.168.56.12 -k nginx_status[accepts]
10

4.创建监控模板以及添加监控项,并添加监控主机:

步骤和监控TCP状态一样:

总结:

添加自定义的监控有以下步骤:

(1)在/etc/zabbix/zabbix_agentd.d/目录下增加自定义监控项(item)

(2)在zabbix-server上测试使用自定义监控项是否能获取值

(3)创建监控模板

(4)创建监控主机并链接监控模板

(5)查看监控最新数据,是否生效


阅读(2246) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~