当前位置:首页 > 开发 > 开源软件 > 正文

通过ngx-lua来统计nginx上的虚拟主机性能数据

发表于: 2015-07-02   作者:ronin47   来源:转载   浏览:
摘要: 介绍 以前我们为nginx做统计,都是通过对日志的分析来完成.比较麻烦,现在基于ngx_lua插件,开发了实时统计站点状态的脚本,解放生产力.项目主页: https://github.com/skyeydemon/ngx-lua-stats 功能 支持分不同虚拟主机统计, 同一个虚拟主机下可以分不同的location统计. 可以统计与query-times request-time

介绍

以前我们为nginx做统计,都是通过对日志的分析来完成.比较麻烦,现在基于ngx_lua插件,开发了实时统计站点状态的脚本,解放生产力.
项目主页: https://github.com/skyeydemon/ngx-lua-stats

功能

  • 支持分不同虚拟主机统计, 同一个虚拟主机下可以分不同的location统计.
  • 可以统计与query-times request-time status-code speed 相关的数据.

环境依赖

  • nginx + ngx_http_lua_module

安装

http://wiki.nginx.org/HttpLuaModule#Installation

使用方法

添加全局字典

在nginx的配置中添加dict的初始化, 类似如下

 

为特定的location添加统计

只需要添加一句即可~~
将lua脚本嵌套进nginx的配置中, 例如:

输出结果

通过配置一个server, 使得可以通过curl获取到字典里的所有结果

可以通过如下命令获取

curl ip_addr:8080/status

清理字典

运行一段时间之后, 字典会变大. 可以通过如下接口清理

curl ip_addr:8080/empty_dict

支持的统计数据说明

目前支持统计以下数据,返回的原始数据类似于

其中 __ 用来分割虚拟主机(包含prefix)与后面的数据项,便于数据处理.
counter表示此值一直在累加
nb表示次数
可以得到的数据包括: query次数 request_time bytes_sent upstream_time
其中 upstream_time_10.20.12.49:8250_counter 表示到某个特定后端的upstrea_time耗时累加
upstream_time_10.20.12.49:8250_nb_counter 表示到到某个特定后端的upstrea_time次数累加

如何处理数据

因为采集到的数据大多都是counter值,需要监控系统支持对于delta的处理.目前我们公司的perf-counter监控系统支持简单运算。所以这个处理起来比较简单,对于没有这种系统的同学来说,需要自己处理数据,得到delta值以及更复杂的数据,比如:

转自http://noops.me/?p=867

通过ngx-lua来统计nginx上的虚拟主机性能数据

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
安装 在编译nginx之前,编译选项里加上: --with-http_stub_status_module 因为nginx默认是不安装改
SQLSERVER是怎麽通过索引和统计信息来找到目标数据的(第三篇) 最近真的没有什么精力写文章,天天加
用过Microsoft Office Excel的人知道,数据透视表是一种交互式报表,可以快速分类汇总、比较大量的
用过Microsoft Office Excel的人知道,数据透视表是一种交互式报表,可以快速分类汇总、比较大量的
多个web应用在同一台服务器上的部署通常使用nginx+tomcat的架构。 niginx nginx扮演的角色是反向代
Nginx 是一个轻量级高性能的 Web 服务器, 并发处理能力强, 对资源消耗小, 无论是静态服务器还是小网
基于IP的虚拟主机 IP地址如下: eth0 192.168.10.10 web1 eth0:0192.168.10.40 web2 nginx 配置文件
一,虚拟主机的概念: 虚拟主机是在网络服务器上划分出一定的磁盘空间供用户放置站点、应用组件等,
站长统计是很多网站最常用功能,很多站长需要跟踪自己网站的访问和转化情况,于是站长统计就是一个
如何知道一句SQL语句的执行效率呢,只知道下面3种: 1、通过SQL语句执行时磁盘的活动量(IO)信息来分
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号