Zabbix 监控 Nginx 的连接状态
配置 Zabbix
监控 Nginx
的连接状态
实验平台:CentOS 7.6.1810
zabbix-Server 版本:5.0.2
zabbix-agent 版本:5.0.2
一、安装环境
1.查看 Nginx
已编译模块
$ nginx -V
nginx version: openresty/1.17.8.2
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-39) (GCC)
built with OpenSSL 1.0.2k-fips 26 Jan 2017
TLS SNI support enabled
configure arguments: --prefix=/usr/local/nginx//nginx --with-cc-opt=-O2 --add-module=../ngx_devel_kit-0.3.1 --add-module=../echo-nginx-module-0.62 --add-module=../xss-nginx-module-0.06 --add-module=../ngx_coolkit-0.2 --add-module=../set-misc-nginx-module-0.32 --add-module=../form-input-nginx-module-0.12 --add-module=../encrypted-session-nginx-module-0.08 --add-module=../srcache-nginx-module-0.32 --add-module=../ngx_lua-0.10.17 --add-module=../ngx_lua_upstream-0.07 --add-module=../headers-more-nginx-module-0.33 --add-module=../array-var-nginx-module-0.05 --add-module=../memc-nginx-module-0.19 --add-module=../redis2-nginx-module-0.15 --add-module=../redis-nginx-module-0.3.7 --add-module=../rds-json-nginx-module-0.15 --add-module=../rds-csv-nginx-module-0.09 --add-module=../ngx_stream_lua-0.0.8 --with-ld-opt=-Wl,-rpath,/usr/local/nginx/luajit/lib --sbin-path=/usr/local/nginx/sbin/nginx --conf-path=/usr/local/nginx/conf/nginx.conf --pid-path=/usr/local/nginx/run/nginx.pid --error-log-path=/usr/local/nginx/logs/error.log --http-log-path=/usr/local/nginx/logs/access.log --user=nginx --group=nginx --with-pcre --with-stream --with-threads --with-file-aio --with-http_v2_module --with-http_ssl_module --with-http_realip_module --with-http_gzip_static_module --with-http_stub_status_module --with-stream --with-stream_ssl_module --with-stream_ssl_preread_module
#Nginx性能监控需要通过ngx_http_stub_status_module模块来收集指标
2.如果没有可以参考这篇文章,在不改变已编译模块的情况下增加新模块
3.修改配置文件添加性能监控模块
$ vim /usr/local/nginx/conf.d/ngx_status.conf
server {
location /ngx_status {
stub_status on;
allow 127.0.0.1;
access_log off;
deny all;
}
}
4.重启 Nginx
$ nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
$ nginx -s reload
5.访问测试
$ curl http://127.0.0.1/ngx_status
Active connections: 7
server accepts handled requests
8836 8836 134105
Reading: 0 Writing: 1 Waiting: 6
- Active connections:Nginx 当前活动客户端连接的数量,包括正在等待的连接
- accepts:Nginx 已经接受客户端的连接总数量
- handled:Nginx已经处理客户端的连接总数量
- requests:客户端发送的请求的总数量
- Reading:Nginx 服务器当前正在读取客户端请求头的数量
- Writing:Nginx 服务器当前正在写响应信息的数量
- Waiting:当前有多少客户端在等待Nginx服务器响应
二、配置 Zabbix 脚本
1.编写监控 Nginx
的脚本
$ vim /usr/local/zabbix-agent/bash/ngx_status.sh
#!/bin/bash
HOST='127.0.0.1'
PORT='80'
#Nginx进程监控,进程存在值为1,进程停止值为0
function ping {
/sbin/pidof nginx | wc -l
}
#Nginx当前活动客户端连接的数量,包括正在等待的连接
function active {
/bin/curl "http://${HOST}:${PORT}/ngx_status" 2>/dev/null | grep 'Active' | awk '{print $NF}'
}
#Nginx服务器当前正在读取客户端请求头的数量
function reading {
/bin/curl "http://${HOST}:${PORT}/ngx_status" 2>/dev/null | grep 'Reading' | awk '{print $2}'
}
#Nginx服务器当前正在写响应信息的数量
function writing {
/bin/curl "http://${HOST}:${PORT}/ngx_status" 2>/dev/null | grep 'Writing' | awk '{print $4}'
}
#当前有多少客户端在等待服务器响应
function waiting {
/bin/curl "http://${HOST}:${PORT}/ngx_status" 2>/dev/null | grep 'Waiting' | awk '{print $6}'
}
#Nginx已经接受客户端的连接总数量
function accepts {
/bin/curl "http://${HOST}:${PORT}/ngx_status" 2>/dev/null | awk NR==3 | awk '{print $1}'
}
#Nginx已经处理客户端的连接总数量
function handled {
/bin/curl "http://${HOST}:${PORT}/ngx_status" 2>/dev/null | awk NR==3 | awk '{print $2}'
}
#客户端发送的请求的总数量
function requests {
/bin/curl "http://${HOST}:${PORT}/ngx_status" 2>/dev/null | awk NR==3 | awk '{print $3}'
}
$1
2.赋权
$ chown -R zabbix. /usr/local/zabbix-agent/
$ chmod u+x /usr/local/zabbix-agent/bash/ngx_status.sh
3.编辑 zabbix—agent
配置文件
$ vim /usr/local/zabbix-agent/etc/zabbix_agentd.conf
UnsafeUserParameters=1
UserParameter=ngx.status[*],/usr/local/zabbix-agent/bash/ngx_status.sh $1
4.重启 zabbix_agentd
$ /etc/init.d/zabbix_agentd restart
三、配置 Zabbix-Server
1.创建应用集
配置 --> 主机 --> 相应 Nginx 主机 --> 应用集 --> 创建应用集
2.创建监控项
配置 --> 主机 --> 相应 Nginx 主机 --> 监控项 --> 创建监控项
全部监控项
3.查看最新数据
4.创建触发器
配置 --> 主机 --> 相应 Nginx 主机 --> 触发器 --> 创建触发器
5.创建图像
配置 --> 主机 --> 相应 Nginx 主机 --> 图形 --> 创建图形
Over~
版权协议须知!
本篇文章来源于 Uambiguous ,如本文章侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意
1624 0 2020-09-01
博主卡片
运维时间
搭建这个平台,只为分享及记载自己所遇之事和难题。
现在时间 2025-01-30
今日天气
随机推荐
站点统计
- 文章总数:241篇
- 分类总数:29个
- 评论总数:14条
- 本站总访问量 370349 次
@svmuvwpuqi 真棒!
@smdxydrauu 博主太厉害了!
@xiaozi 最后的分享的镜像下载地址打不开 服务器没有开机吗?
@yuanyuan 为什么我的4b安装centos7.9 插上tf卡 显示不兼...
@Wong arrhenius 牛比
@MakerFace 厉害了!
@TongSir 老哥 更新下我的友链链接 https://blog.ton...