监控流程
在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服务
- 配置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
- 安装: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;}
- 在zabbix_agent机器测试
curl
说明
- Active Connections 当前活动连接数,其中也包括了等待状态的连接
- accepts 接收到的连接数
- handled 已经处理完的连接数,该数字一般和accepts一致,如果不一致那么说明Nginx出错了
- requests 总共处理的请求数,一个连接可以有多个请求,所以该值比accpets要大
- Reading 正在读取请求头信息的连接数
- Writing 正在发送响应报文的连接数
- Waiting 处于闲置状态,等待客户端发送请求的连接数
- 在zabbix_agent机器上编写脚本
vi /usr/local/sbin/ngx_status.sh #内容如下#!/bin/bashurl="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}'}$1chmod 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 如果有多个脚本就定义多行。
-
重启服务
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