zabbix监控nginx

1.在需要监控的nginx客户端操作

一.如果没有nginx的话,安装nginx
需要一个模块:

 --with-http_stub_status_module

可以直接yum安装,也可以源码包编译安装。
yum安装需要先配置一个nginx的yum仓库,因为centos7的
yum源并没有包含nginx包。

#nginx仓库
cd /etc/yum.repos.d

vim nginx.repo
#写入
[nginx]
name=name repo
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=0
enabled=1

#yum 安装nginx
yum install -y nginx

二.编辑nginx配置文件:

vim /etc/nginx/conf.d/default.conf

在里面添加nginx自带的状态模块:

 location /nginx_status
    {
        stub_status on;   //开启状态检测
        access_log off;   //不要写入访问日志
        allow 127.0.0.1;    //只允许本机去访问状态
        deny all;   //除了allow,拒绝所有
    }

在这里插入图片描述
检查nginx配置是否有错,没错的话启动:

nginx -t
systemctl start nginx

用命令行的形式检测nginx状态模块是否被加载:

curl 127.0.0.1/nginx_status

在这里插入图片描述
状态参数说明:
Active Connections:当前活动连接数,其中也包括了等待状态的连接
accepts:接收到的连接数
handled:已经处理完的连接数,该数字一般和accepts一致,如果不一致说明nginx出错了。
requests:总共处理的请求数,一个连接可以有多少个请求,所以该值可以比accepts大。
Reading:正在读取请求头信息的连接数。
Writing:正在发送响应报文的连接数。
Waiting:处于闲置状态,等待客户端发送请求的连接数。
nginx状态数会随着nginx重启清零。

三.编写一个监控nginx状态脚本,获取到状态信息:

cd /usr/local/sbin/
vim ngx_status.sh
#!/bin/bash
url="http://127.0.0.1/nginx_status"
curl=/usr/bin/curl

#检测nginx进程是否开启
function ping {
        /sbin/pidof nginx | wc -l
}

#检测nginx状态信息
function active {
        $curl $url 2>/dev/null | grep 'Active' | awk '{print $NF}'
}
function reading {
        $curl $url 2>/dev/null | grep 'Reading' | awk '{print $2}'
}
function writing {
        $curl $url 2>/dev/null | grep 'Writing' | awk '{print $4}'
}
function waiting {
        $curl $url 2>/dev/null | grep 'Waiting' | awk '{print $6}'
}
function accepts {
        $curl $url 2>/dev/null | awk NR==3 | awk '{print $1}'
}
function handled {
        $curl $url 2>/dev/null | awk NR==3 | awk '{print $2}'
}
function requests {
        $curl $url 2>/dev/null | awk NR==3 | awk '{print $3}'
}
$1
#给nginx监控加权限
chmod +x ngx_status.sh

#运行脚本

#检测是否开启
./ngx_status.sh ping
1   //开启返回1,否为0

#检测连接数active
./ngx_status.sh active

四.把zabbix_agent和nginx监控脚本关联起来

编辑zabbix_agent配置文件:

vim /etc/zabbix/zabbix_agentd.conf
#找到UserParamete=那行,再下面添加
UserParameter=nginx.status[*],/usr/local/sbin/ngx_status.sh $1

UserParameter是zabbix自定义监控脚本的一个选项,如果有多个可以写多行。
nginx.status[*]:这个参数是在zabbix里面自定义nginx_status.sh脚本的名字,方括号里面表示脚本有参数,就是$1。

2.在zabbix-server端操作

在zabbix-agent已经和监控脚本关联起来了,在server端测试有没有生效:

zabbix_get -s 192.168.247.170 -k 'nginx.status[accepts]'
// -s 源主机,就是zabbix-agent主机
//-k 后面接zabbix定义的监控脚本名字,方括号里参数

在这里插入图片描述
测试可以检测之后,最终还得以zabbix-web的形式呈现出来。

进入zabbixweb页面
在这里插入图片描述
我之前已经把nginx所在的服务器监控起来了,但是只是监控了服务器本身的一些系统参数,并没有监控应用。此次实验也是在这个基础上的(懒得在弄一次,相关的笔记我还没有写,可能等一下补充 可以在博客里找一下)。
如果手动把监控项添加进来的话,比较麻烦,需要一项项添加。所以我把这些监控项弄到了一个模板里面,然后在添加模板就简单多了。
模板下载链接:

https://pan.baidu.com/s/1PU9HzprLy7v0EU9IHbFv9g
导入模板到zabbix-web:
在这里插入图片描述
在这里插入图片描述
导入成功后,查看模块,模块名叫Template App NGINX
在这里插入图片描述
在主机中添加这个模块:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值