【Nginx 监控】【Reqstat 模块监控不常用】【awk截取pv uv】

Nginx 监控

1、Nginx的基础监控
  • 进程监控
  • 端口监控

注意: 这两个是必须要加在zabbix监控,加触发器有问题及时告警。

web 服务器 nginx 以其高性能与抗并发能力越来越多的被用户使用

Nginx 提供了 ngx_http_stub_status_module,ngx_http_reqstat_module模块,这个模块提供了基本的监控功能

2、监控的主要指标

我们需要对以下主要的指标进行监控:

1、基本活跃指标

Accepts(接受)、Handled(已处理)、Requests(请求数)是一直在增加的计数器。Active(活跃)
在这里插入图片描述

2、每秒请求数 – QPS

通过持续的 QPS 监控,可以立刻发现是否被恶意攻击或对服务的可用性进行评估。虽然当问题发生时,通过 QPS 不能定位到确切问题的位置,但是他却可以在第一时间提醒你环境可能出问题了

3、服务器错误率

通过监控固定时间间隔内的错误代码(4XX代码表示客户端错误,5XX代码表示服务器端错误),可以了解到客户端收到的结果是否是正确的错误率突然的飙升很可能是你的网站漏洞发出的信号

如果你希望通过 access log 分析错误率,那么你需要配置 nginx 的日志模块,让 nginx 将响应码写入访问日志

3、指标的收集

通过在编译时加入 nginxngx_http_stub_status_module 模块我们可以实时监控以下基本的指标:

server {
        listen 80;
        server_name localhost;
        location /nginx-status {
                stub_status     on;
                access_log      on;
                }
}

2、Nginx 状态查看
配置完成后在浏览器中输入http://196.196.196.130/nginx-status 查看
(或者用 `curl localhost/nginx-status),显示信息如下:
在这里插入图片描述
3、Stub Status 参数说明
正常情况下waiting数量是比较多的,并不能说明性能差。如果reading+writing数量比较多说明服务并发有问题。
在这里插入图片描述
Active connections:2 #当前nginx处理请求的数目(活跃的连接数)

server accepts handled requests
26 26 48

nginx总共处理了26个连接,成功创建26次握手,也就是成功的连接数connection. 总共处理了48个请求

失败连接=(总连接数-成功连接数)(相等表示中间没有失败的),

Reqstat 模块监控 ----已经不支持了(需要导入)

描述
这个模块讲一下,我用的是nginx1.16版本的 才兼容, 1.19版本以上的做不了这个模块

  • ngx_http_reqstat_module 模块

  • 这个模块计算定义的变量,根据变量值分别统计 nginx 的运行状况。

  • 可以监视的运行状况有:连接数、请求数、各种响应码范围的请求数、输入输出流量、rt、upstream访问等。

  • 可以指定获取所有监控结果或者一部分监控结果。

  • 利用变量添加自定义监控状态。总的监控状态最大个数为50个。

  • 回收过期的监控数据。

  • 设置输出格式

  • 跟踪请求,不受内部跳转的影响

  • 不要使用与响应相关的变量作为条件,比如"$status"

    现在通过ngx_req_status_module能够统计Nginx中请求的状态信息。需要安装第三方模块

安装模块:

tengine官方说req-status模块默认安装。但是并没有。从github引入第三方模块解决该问题
yum与编译安装的nginx扩展模块安装:
步骤; yum install -y unzip 下载解压工具

步骤;ngx_req_status_module 下载模块, 这是第三方模块需要添加

步骤; wget https://github.com/zls0424/ngx_req_status/archive/master.zip -O ngx_req_status.zip

步骤;unzip ngx_req_status.zip 解压
步骤; cp -r ngx_req_status-master/ /usr/local/ #与解压的nginx在同一级目录下

步骤; cd /usr/local/nginx-1.16.0/

步骤; yum -y install patch.x86_64 安装这个补丁,因为这个模块已经不支持了需要安装补丁

步骤; patch -p1 < …/ngx_req_status-master/write_filter-1.7.11.patch 这里提示提示先进入status-master/这个目录下

步骤; ./configure 添加上原来的参数 --add-module=/usr/local/ngx_req_status-master
步骤; make 由于原先已有nginx,所以不能执行make install,否则会覆盖掉以前的配置文件及内容
步骤; mv /usr/sbin/nginx /usr/sbin/nginx_bak
步骤; cp objs/nginx /usr/sbin/
步骤;systemctl restart nginx
步骤; nginx -V
如果发现编译的配置文件有变化就成功了!
在这里插入图片描述
配置如下:

req_status_zone server_name $server_name 256k;
req_status_zone server_addr $server_addr 256k;
req_status_zone server_url  $server_name$uri 256k;
req_status server_name server_addr server_url;
server {
		listen 80;
        server_name localhost;
        location /req-status {
        req_status_show on;
        }
}

指令介绍
在这里插入图片描述
在这里插入图片描述
请求状态信息包括以下字段:
在这里插入图片描述
nginx access log 分析
nginx 的 access log 中可以记录很多有价值的信息,通过分析 access log,可以收集到很多指标

1.制作nginx的日志切割,每天凌晨切割并压缩。
在这里插入图片描述
工作常用(面试题笔试):

1.根据访问IP统计UV

awk '{print $1}'  access.log|sort | uniq -c |wc -l

2.统计访问URL统计PV

awk '{print $7}' access.log|wc -l

3.查询访问最频繁的URL

awk '{print $7}' access.log|sort | uniq -c |sort -n -k 1 -r|more

4.查询访问最频繁的IP

awk '{print $1}' access.log|sort | uniq -c |sort -n -k 1 -r|more

5.查询访问最频繁的前10的IP

awk '{print $1}' access.log|sort | uniq -c |sort -n -k 1 -r|head -n 10
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值