zabbix监控Nginx

拟墨画扇 提交于 2021-01-24 19:13:05

监控流程

在zabbix_agent机器上安装nginx服务

配置nginx状态信息

在zabbix_agent机器测试

在zabbix_agent机器上编写脚本

编写zabbix_agent.conf

重启服务

zabbix_get 测试,在zabbix_server端执行

下载nginx模板

使用sz命令将,目录中的模板下载到pc上。然后在zabbixweb UI 上使用import导入就行了

将需要监控的nginx主机链接到该模板上

  • 在zabbix_agent机器上安装nginx服务
  1. 配置nginx的yum源
    	编辑yum仓库:
    	vi /etc/yum.repos.d/nginx.repo
    	粘贴:
    	[nginx]
    	name=nginx repo
    	baseurl=http://nginx.org/packages/centos/7/$basearch/
    	gpgcheck=0
    	enabled=1

     

  2. 安装:yum install -y nginx
  • 配置nginx状态信息
    	vi  /etc/nginx/conf.d/default.conf  #增加
    	location /nginx_status 
    	{
        stub_status on;
        access_log   off;
        allow 127.0.0.1;
        deny all;
    }

    5-70.png

  • 在zabbix_agent机器测试

curl http://127.0.0.1/nginx_status
5-71.png

说明

  • Active Connections 当前活动连接数,其中也包括了等待状态的连接
  • accepts 接收到的连接数
  • handled 已经处理完的连接数,该数字一般和accepts一致,如果不一致那么说明Nginx出错了
  • requests 总共处理的请求数,一个连接可以有多个请求,所以该值比accpets要大
  • Reading 正在读取请求头信息的连接数
  • Writing 正在发送响应报文的连接数
  • Waiting 处于闲置状态,等待客户端发送请求的连接数
  • 在zabbix_agent机器上编写脚本
vi /usr/local/sbin/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

chmod 755 /usr/local/sbin/ngx_status.sh
  • 编写zabbix_agent.conf

vi /etc/zabbix/zabbix_agentd.conf # 增加
UserParameter=nginx.status[*],/usr/local/sbin/ngx_status.sh $1
5-72.png
如果有多个脚本就定义多行。

  • 重启服务

systemctl restart zabbix-agent

  • zabbix_get 测试,在zabbix_server端执行

在服务端执行
zabbix_get -s 192.168.19.128 -k 'nginx.status[accepts]'

  • 下载nginx模板
下载模板
git clone https://github.com/aminglinux/linux2019.git
  • 使用sz命令将,目录中的模板下载到pc上。然后在zabbixweb UI 上使用import导入就行了。
  • 将需要监控的nginx主机链接到该模板上。
Configuration -> Hosts -> aminglinux02 -> Templates -> Select -> Add -> Update
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!