首先nginx需要配置ngx_status模块
nginx -V 查看nginx在编译安装的时候有没有开启ngx_status模块 如果没有安装,请先编译安装这个模块--with-http_stub_status_module
1、 在nginx配置文件里添加配置
在默认主机里面加上location或者你希望能访问到的主机里面
-
server {
-
listen *:80 default_server;
-
server_name _;
-
location /ngx_status
-
{
-
stub_status on;
-
access_log off;
-
#allow 127.0.0.1;
-
#deny all; 如果开启此选项必须本机在能访问到状态统计页面
-
}
-
}
-
nginx -s reload #重新加载niginx配置文件
打开nginx状态统计页面
-
curl http://127.0.0.1/ngx_status 下方是输出结果 (配置成功)
-
Active connections: 11921
-
server accepts handled requests
-
21289 39352 12941
-
Reading: 10 Writing: 7 Waiting: 4
Zabbix客户端操作配置
编写nginx监控脚本
-
vim ngx_status.sh
-
#!/bin/bash
-
HOST="127.0.0.1"
-
PORT="80" #注意自己的nginx监听端口
-
-
# 检测nginx进程是否存在
-
function ping {
-
/sbin/pidof nginx | wc -l
-
}
-
# 检测nginx性能
-
function active {
-
/usr/bin/curl "" 2>/dev/null| grep 'Active' | awk '{print $NF}'
-
}
-
function reading {
-
/usr/bin/curl "" 2>/dev/null| grep 'Reading' | awk '{print $2}'
-
}
-
function writing {
-
/usr/bin/curl "" 2>/dev/null| grep 'Writing' | awk '{print $4}'
-
}
-
function waiting {
-
/usr/bin/curl "" 2>/dev/null| grep 'Waiting' | awk '{print $6}'
-
}
-
function accepts {
-
/usr/bin/curl "" 2>/dev/null| awk NR==3 | awk '{print $1}'
-
}
-
function handled {
-
/usr/bin/curl "" 2>/dev/null| awk NR==3 | awk '{print $2}'
-
}
-
function requests {
-
/usr/bin/curl "" 2>/dev/null| awk NR==3 | awk '{print $3}'
-
}
-
# 执行function
-
$1
-
chmod 755 ngx_status.sh #赋予脚本执行权限
Zabbix客户端配置
-
vim /xxdata/zabbix_agents/conf/zabbix_agentd.conf
-
添加:UserParameter=nginx.status[*],/usr/local/nginx/scripts/ngx_status.sh $1
-
(注:/usr/local/nginx/scripts是nginx监控脚本路径,请依据自身环境填写)
在zabbix客户端用zabbix_get测试取值
-
cd /xxdata/zabbix_agents/bin
-
./zabbix_get -s 192.168.2.1 -k 'nginx.status[accepts]'
-
85315
-
192.168.2.1为zabbix客户端地址
-
同样的也可以在zabbix server端进行测试
在zabbix server端添加主机 到处nginx监控模板 Nginx监控模板 监控 下载后请修改扩展名为xml直接导入即可
效果图
阅读(2227) | 评论(0) | 转发(0) |