监控Nginx
监控指标
步骤:
- 编写监控数据采集脚本
Nginx服务器
vi /etc/zabbix/zabbix_agentd.conf ---把以前的内容删掉
PidFile=/var/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix/zabbix_agentd.log
DebugLevel=3
Server=192.168.1.234 ---Zabbix-Server端
ListenPort=10050
ListenIP=192.168.1.110 ---Nginx服务器
ServerActive=192.168.1.234
Hostname=192.168.1.110
Include=/etc/zabbix/zabbix_agentd.d/*.conf
:wq
获取监控指标
vi /usr/local/nginx/conf/nginx.conf ---在中间添加以下内容,查看nginx状态
server {
listen 8088; ---和以前的配置区分开来
server_name localhost; ---名字可能冲突需要更换
location /nginx_status {
stub_status on;
access_log off;
allow 127.0.0.1;
deny all;
}
}
:wq
/usr/local/nginx/sbin/nginx -s reload ---重新加载nginx,如果服务本来没开启的话直接重新打开服务即可
netstat -anpt | grep 8088 监听是否生效,不生效的话可以尝试把nginx关掉再开启
[root@localhost conf]# curl http://127.0.0.1:8088/nginx_status
Active connections: 1 ---当前客户端的连接数
server accepts handled requests ---已接受 已处理 客户端请求数
5 5 3
Reading: 0 Writing: 1 Waiting: 0 ---读 写 等待
编写监测脚本
mkdir /usr/local/zabbix_scripts
cd /usr/local/zabbix_scripts
vi nginx_status.sh
#!/bin/bash
#active 当前活动的客户端连接数,包括waiting连接数
#accepts 已接受的客户端连接数
#handled 已处理的连接总数
#requests 客户端请求的总数
#reading 正在读取请求头的当前连接数
#writing 将响应写回客户端的当前连接数
#waiting 等待请求空闲客户端的当前连接数
result="/usr/bin/curl -s http://127.0.0.1:8088/nginx_status"
case $1 in
active)
$result | awk '/Active/ {print $NF}'
;;
accepts)
$result | awk 'NR==3 {print $1}'
;;
handled)
$result | awk 'NR==3 {print $2}'
;;
requests)
$result | awk 'NR==3 {print $3}'
;;
reading)
$result | awk '/Reading/ {print $2}'
;;
writing)
$result | awk '/Writing/ {print $4}'
;;
waiting)
$result | awk '/Waiting/ {print $6}'
;;
*)
echo "No this result."
esac
:wq
chmod +x nginx_status.sh
vi /etc/zabbix/zabbix_agentd.conf
PidFile=/var/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix/zabbix_agentd.log
DebugLevel=3
Server=192.168.1.234 ---Zabbix服务器的IP地址
ListenPort=10050
ListenIP=192.168.1.110 ---本机IP地址
ServerActive=192.168.1.234
Hostname=192.168.1.110
Include=/etc/zabbix/zabbix_agentd.d/*.conf
UserParameter=nginx.status[*],/usr/local/zabbix_scripts/nginx_status.sh $1
:wq
systemctl restart zabbix-agent
Zabbix-Server端
[root@localhost ~]# zabbix_get -s 192.168.1.110 -p 10050 -k 'nginx.status[active]' ---这个zabbix_get是用yum安装的,源码安装的话前面要加上具体路径
1
[root@localhost ~]# zabbix_get -s 192.168.1.110 -p 10050 -k 'nginx.status[accepts]'
22
- 创建模板
剩下的几项也是用同样的方法添加进去
- 将运行Nginx的主机关联模板