Nginx monitor

为什么80%的码农都做不了架构师?>>>   hot3.png

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

1    监控解析nginx log:ngxtop

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

Usage:ngxtop [options]ngxtop [options] (print|top|avg|sum) <var> ...ngxtop infongxtop [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 logand 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$ ngxtop404前十的请求$ 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_refererAverage 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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/288937.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ASP.NET 6 中间件系列 - 执行顺序

这篇文章是 ASP.NET 6 中间件系列文章的第 3 部分&#xff0c;你还可以阅读第1部分和第2部分。我们通过中间件创建的管道是有执行顺序的&#xff0c;执行顺序与中间件的添加顺序是相同的&#xff0c;接下来我们讨论一下为什么要有执行顺序&#xff0c;以及它的重要性。示例项目…

OSChina 周四乱弹 ——程序员怎么撩外国妹子攻略

2019独角兽企业重金招聘Python工程师标准>>> Osc乱弹歌单&#xff08;2017&#xff09;请戳&#xff08;这里&#xff09; 【今日歌曲】 冬天之雪 &#xff1a;听歌听到苏菲玛索和刘欢演唱《玫瑰人生》。有网友评论&#xff1a;法语专业的刘欢老师等的就是这一刻。…

【C语言简单说】七:自定义函数(3)

前一节说了返回值的内容&#xff0c;那么这一节就说一下参数的内容 手打码了几章内容了。。。。困。&#xff3e;(&#xffe3;&#xff09;&#xffe3;)《(&#xffe3;&#xff09;&#xffe3;)&#xff3e;困.困.困. 相比看过前一节的知道我说自定义函数如果你要做一个运…

WireShare抓包在ssl协议里面提示(Level: Fatal, Description: Protocol Version)

1 问题 在后台访问部分链接的时候抓包&#xff0c;客户端发了client hello包&#xff0c;但是没有收到Server hello包&#xff0c; 提示&#xff1a;Alert(Level: Fatal, Description: Handshake Failure ) 包文如下 2 解决办法 是因为客户端的ssl协议版本和链接地址环境ss…

对于 APM 用户的一次真实调查分析(下)

一.前言 对 APM 用户的一次真实调查分析&#xff08;上&#xff09;中&#xff0c;我们主要聊到了现阶段国外 APM 行业对各个企业的渗透率、大部分使用 APM 工具的企业规模以及 APM 工具在用户心中的地位等问题&#xff0c;有兴趣的朋友可以点击链接观看。 我们本次继续顺着这个…

linux cpu核数查看_Linux日常必备的 8 个小技能

身为一个码农&#xff0c;日常工作中与我们打交道次数较多的操作系统除了Windows和Mac OS 之外&#xff0c;还有一个就是 Linux。今天偶尔有空翻越了之前码代码时期汇总的一些小技巧发现挺实用的&#xff0c;故分享给大家&#xff0c;希望能对大伙有一定的帮助。1. 如何查看系统…

NotificationManagerService使用详解与原理分析(一)

概况 Android在4.3的版本中(即API 18)加入了NotificationListenerService&#xff0c;根据SDK的描述(AndroidDeveloper)可以知道&#xff0c;当系统收到新的通知或者通知被删除时&#xff0c;会触发NotificationListenerService的回调方法。同时在Android 4.4 中新增了Notifica…

【C语言简单说】八:分支结构之if(1)

今天貌似更了很多章了&#xff0c;现在感觉累觉不爱。。。 ┐(—__—)┌ 你说我有啥米办法咧~&#xff08;要不叫别人替我更一下&#xff1f;&#xff09; 继续更。。。 这一节我们来说一下if语句&#xff1b;这个东西可是很常用的呀&#xff1b;在此之前我们来举个例子&…

ASP.NET 6 中间件系列 - 自定义中间件类

这篇文章是 ASP.NET 6 中间件系列文章的第2部分&#xff0c;点击这里可以阅读第1部分。在上一篇文章中&#xff0c;我们讨论了什么是中间件&#xff0c;它的作用是什么&#xff0c;以及在 ASP.NET 6 应用管道中添加中间件的简单方法。在这篇文章中&#xff0c;我们将在这些基础…

如何在IE浏览器里面定位到关键字的位置(页面代码)和这个关键字位置模块的请求

1 问题 比如用IE浏览器,打开一个页面,如何定位到关键字的具体位置,以及这个位置请求是什么?可能这个请求不是主页面的请求,因为我们知道页面html里面可以嵌套很多Frame(框架),把页面分割成很多块,然而每个Frame(框架)里面可以再嵌套一个url,有时候我们需要找到这个请求…

Java并发编程-原子性变量

image.png1. 原子性布尔 AtomicBoolean AtomicBoolean 类为我们提供了一个可以用原子方式进行读和写的布尔值&#xff0c;它还拥有一些先进的原子性操作&#xff0c;比如 compareAndSet()。AtomicBoolean 类位于 java.util.concurrent.atomic 包&#xff0c;完整类名是为 java.…

【C语言简单说】八:分支结构之if...else...(2)

上一节我们说了if的基本用法&#xff0c;这一小节我们来说明if…else…的用法 首先惯例举例子&#xff1a; 你今天早上饿了&#xff0c;打算去吃包子&#xff0c;可是没有包子了&#xff0c;你打算去吃米粉。 你昨天早上下雨了&#xff0c;带伞出门&#xff0c;结果没找到&a…

Java集合之LinkedList

上一篇写的是ArrayList&#xff0c;这一篇写一下LinkedList. 开宗明义&#xff0c;因为Vector已经被废弃了&#xff0c;所以list家族只剩下ArrayList和LinkedList两兄弟了&#xff0c;这里直接对比一下二位&#xff1a; ArrayList基于动态数组的实现&#xff0c;它长于随机访问…

由于开发者通过接口修改了菜单配置_Android SDK开发艺术探索(四)个性化配置...

一、前言本篇是Android SDK开发艺术探索系列的第四篇文章。介绍了通过流式API设计思想优雅地实现SDK的自定义选项配置需求。目录概览&#xff1a;一、前言 二、SDK自定义配置2.1、什么是自定义配置2.2、设计一个配置方法 三、结语系列文章&#xff1a;Android SDK开发艺术探索&…

C#中切片语法糖的使用

例子首先我们看这样一个例子&#xff0c;有这样一个数组string [] lst new string[] { "1", "2", "3", "4", "5", "6", "7" };我们怎么获取它的最后一个值&#xff0c; 传统方法是这样写的&#xff0c…

JavaScript 语言基础知识点总结(思维导图)

1.JavaScript数组 2.JavaScript 函数基础 3.Javascript 运算符 4.JavaScript 流程控制 5.JavaScript 正则表达式 6.JavaScript 变量 7.JavaScript 字符串函数 8.DOM 基本操作 制作工具&#xff1a;Mindjet MindManager 文章摘自&#xff1a;http://m.oschina.net/blog/175426转…

linux之一些比较新但是常用的命令(expr ag tree cloc stat tmux axel)

1 expr命令 介绍:这个命令用来匹配正则表达式,这个命令linux系统自带,不信你自己试下 使用:expr 正则表达式 输出结果 expr http:\/\/www\.baidu\.com http//www.baidu.com 用了这个命令,我们就不需要在网上去搞在线正则表达式匹配 2 tree命令 这个命令需要安装 sudo…

基于tiny4412的Linux内核移植 -- MMA7660驱动移植(九)

作者信息 作者: 彭东林 邮箱&#xff1a;pengdonglin137163.com QQ&#xff1a;405728433 平台简介 开发板&#xff1a;tiny4412ADK S700 4GB Flash 要移植的内核版本&#xff1a;Linux-4.4.0 &#xff08;支持device tree&#xff09; u-boot版本&#xff1a;友善之臂自带的…

【C语言简单说】八:分支结构之if...else if()...else...(3)

既然前面几种情况大家都了解了话&#xff0c;这一节的话我就不举例子了。。。 直接上代码&#xff1a; #include<stdio.h> #include<stdlib.h> int main() {int a1;if(a1){printf("a的值等于1\n");}else if(a2){printf("a的值等于2\n"); …

最通俗易懂的依赖注入与控制反转

这是一个关于 ASP.NET 6 依赖注入的系列文章。在这个系列中&#xff0c;我们将了解到什么是依赖注入、控制反转&#xff0c;它能够做什么&#xff0c;以及我们为什么要使用它。之后&#xff0c;我们会进一步了解 ASP.NET 6 依赖注入的生命周期、服务容器等重要概念。最后&#…