Nginx monitor

本文介绍了几种Nginx监控的方法,包括使用ngxtop解析日志、启用StubStatus模块及利用Nginx Plus等手段。此外还提供了一个Python脚本监控方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近在初步研究了一下nginx的监控,主要是想监控一些和业务相关的信息,发现能用的方案不多,主要有如下:

1    监控解析nginx log:ngxtop

        官方的解释是可以像top命令一样,实时的解析你的nginx访问日志。源码在这里github ngxtop,官方给的例子很多,下面主要解释一下ngxtop的参数:

Usage:
    ngxtop [options]
    ngxtop [options] (print|top|avg|sum) <var> ...
    ngxtop info
    ngxtop [options] query <query> ...
 
Options:
    -l <file>, --access-log <file>  需要分析的访问日志
    -f <format>, --log-format <format>  log_format指令指定的日志格式 [默认: combined]
    --no-follow  ngxtop default behavior is to ignore current lines in log
                     and only watch for new lines as they are written to the access log.
                     Use this flag to tell ngxtop to process the current content of the access log instead.
    -t <seconds>, --interval <seconds>  report interval when running in follow mode [default: 2.0]
 
    -g <var>, --group-by <var>  根据变量分组 [默认: request_path]
    -w <var>, --having <expr>  having clause [default: 1]
    -o <var>, --order-by <var>  排序 [默认: count]
    -n <number>, --limit <number>  显示的条数 [default: 10]
    -a <exp> ..., --a <exp> ...  add exp (must be aggregation exp: sum, avg, min, max, etc.) into output
 
    -v, --verbose  更多的输出
    -d, --debug  print every line and parsed record
    -h, --help  当前帮助信息.
    --version  输出版本信息.
 
    高级选项:
    -c <file>, --config <file>  运行ngxtop解析nginx配置文件
    -i <filter-expression>, --filter <filter-expression>  filter in, records satisfied given expression are processed.
    -p <filter-expression>, --pre-filter <filter-expression> in-filter expression to check in pre-parsing phase.
 
范例:
    All examples read nginx config file for access log location and format.
    If you want to specify the access log file and / or log format, use the -f and -a options.
 
    "top" like view of nginx requests
    $ ngxtop
 
    404前十的请求
    $ ngxtop top request_path --filter 'status == 404'
 
    总流量前十的请求
    $ ngxtop --order-by 'avg(bytes_sent) * count'
 
    访问量前十的ip地址
    $ ngxtop --group-by remote_addr
 
    输出400以上状态吗的请求以及请求来源
    $ ngxtop -i 'status >= 400' print request status http_referer
 
    Average body bytes sent of 200 responses of requested path begin with 'foo':
    $ ngxtop avg bytes_sent --filter 'status == 200 and request_path.startswith("foo")'
 
    使用common日志格式分析远程服务器Apache访问日志
    $ ssh remote tail -f /var/log/apache2/access.log | ngxtop -f common



2   开启Stub Status

        在编译nginx时添加--with-http_stub_status_module选项,在nginx.conf中开启stub:

location /nginx_status {
  stub_status on;
  access_log off;
  allow 127.0.0.1;
  deny all;
}

        不过这个只是一些简单的统计,针对每个域名虚拟主机的统计却没有。

3    nginx plus

        很好很强大的商业版,有个内置的http_stub_status_module模块可以统计每秒各种状态、连接数等等。亲自申请试用了一下,很赞。虽然用不起商业版的,但是在搜寻过程中发现了Server Density,这可是个好东东,虽然server没开源,但是client开源了,而且有一大堆插件,可以拿来主义了,地址在:github density

4    python script monitor

        一系列python脚本,里面有监控nginx的脚本,地址:github script

转载于:https://my.oschina.net/guol/blog/413629

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值