作家
登录

如何快速实现一个基于Nginx网站的监控场景

作者: 来源: 2017-07-07 17:03:57 阅读 我要评论

若何快速实现一个基于Nginx网站的监控场景

一切大年夜应用办事监控说起

小明地点的一家小型互联网创虻公司一向将应用运行在阿里云上。该应用采取通用的分布式 Nginx+App 架构为用户供给电商数据统计的 webservice 办事。应用运行至今除偶发各类 Bug,机能问题以外,情况还算优胜。

undefined

比来,小明的老板给小明安排了一个义务,欲望把应用办事监控起来,以进步应用运行质量。老板的需求有三点:

1.先以应用办事监控为抓手,能

  1. 及时统计应用各类办事的调用次数
  2. 基于 a,及时统计各类办事各类返回值的次数,如 200,404,500,等。
  3. 基于 b,如不雅某类返回值调用超限,进行及时报警。

下图是另个数据集设备的例子,该数据集设备出和上例雷同然则次序相反的两个维度: Status 和 URL (支撑由 Status下钻到 URL 的萌芽方法),分别统计两个指标:PV,平均响应时光,最高响应时光 。个中,平均调用时光是复合指标,由总体调用时光 / PV 借居得出。

2.供给汗青萌芽功能,能返回随便率性时段随便率性办事随便率性返回值调用次数统计。

3.今后将来公司各类定制的营业监控能快速扩大到该体系上,如各接口响应统计时光,用户特点统计等。

1. ARMS 的 Nginx 监控筹划概述和预备

“筹划尽量多快好省,并且搭建的监控平台最好就在阿里云上,数据不要外放在第三方云上,主如果为了公网流量成本和今后大年夜数据分析作预备”,老板最后提到。

技巧选项

小明接到义务今后开端着手进行技巧选型。摆在他面前貌似可行的有三个选择,传统 OLAP 式处理方法,搜刮引擎,以及及时F算方法。

undefined

ARMS 采取的是及时F算+列式存储。这种筹划的优势是数据及时性高,并且对于固定的数据萌芽接口萌芽效力异常块。在 Nginx 的监控筹划中,其架构概要如下所示, 蓝色部分为 ARMS 所集成的 Nginx 监控开箱即竽暌姑的黑盒。

在调研近况和浩瀚技巧后,他发明,

因为公司营业范围不小,日存放段的平均 QPS 已经上百,并且营业还在快速增长,是以将每秒上百次调用信息每次直接存放到数据库中再及时萌芽肯定不合适,成本太高且不合适扩大。

阿里云供给搜刮引擎办事,缺点统计功能根本能知足老板需求。然则不肯定身分有两个。一方面搜刮引擎价格存储成本偏高(搜刮引擎须要惹人索引存储),并且各类聚号绫侨芽如接口响应时光统计等萌芽响应时光不太好包管,另一方面推敲到及时报警还须要编写 API 一向进行各类调用的缺点次数的轮询,机能和成本都不太肯定。

基于及时F算的架构,可以将线上所有日记经由过程办事,返回值缺点类型,和时光等维度在内存中进行及时的聚合计算,然后再持久化到存储中。一方面及时O⒚效力高,聚合后的结不雅大年夜小会比原始数据大年夜大年夜削减,是以持久化成本低,及时能包管;另一方面还可以在内存中及时校验报警策略,让报警的机能开销足够小。

存储方面,因为没有太强事物需求,并且在容量上请求较高,小明选择了一款类似 Hbase 的云上存储产品。

综上推敲,基于及时F算的架构看来最能知足当前公司的需求。决定了今后,小明开端思虑进一步架构设计。

架构设计

决定了基于及时F算的技巧今后,小明开端进行架构设计。经由过程参考各类技巧网站,他发明要架垢荷琐靠谱的网站监控筹划,须要的组件以下缺一弗成。

  • 数据通道:负责将数据大年夜 Nginx 拉掏出来,传送到搜刮引擎。数据通道同时肩负数据聚积和数据重算的义务。
  • 计算引擎:基于 Nginx 办事,缺点码,时光的维度的聚合及时F算逻辑须要基于选定的引擎进行编写。计算引擎最好能同时负责一些报警的逻辑。
  • 存储:存放最终 Nginx 监控结不雅的处所。推敲到监控结不雅固然表构造简单,然则各类维度萌芽比较多,最好是类似于 OLAP 的存储类型。
  • 展示门户:针对所有 Nginx 监控结不雅作各类维度的快速分析和展示。

好在针对前三个组件,阿里云供给了一些现成的产品组件,小明不须要本身手动一个个去搭建,是以入门门槛还不算高。

数据通道这块,小明在阿里云上拔取了一款类似于 Kafka 的数据通道,在支撑机能和消息聚积等特点的同时,在数据接入上供给了必定的简便性。

展示门户方面,没有直接对应产品。小明挠了挠头,决定照样只能本身突击一下前段编程技巧,基于开源展示框架来编写一个简单的萌芽门户。

跟老板申请了预算今后,小明开端陆续开通各类产品进行开辟测试。估计一个月完成义务,

漫漫开辟路程

开通流程很简单。花了半天不到,kafka、storm、hbase 的租户集群到手。可惜常言道,开辟项目 80% 的时光花费在最终 20% 的坑上。项目过了一个月,然则功能尚未完成 70%。小明在本身的技巧博客上默默的记录下以下踩过的坑。

集成故障排查成本

因为须要集成的组件包含数据通道,及时F算层,后台存储,并在代铝闼榀成推送数据逻辑以及报警萌芽逻辑。每个环节稍有掉足将造成全部链路壅塞,调试成本显得异常高。

 1/4    1 2 3 4 下一页 尾页

  推荐阅读

  如何实现模拟人类视觉注意力的循环神经网络?

道理篇本文所用的代码在https://github.com/SquarePants1991/OpenGLESLearn.git的ARKit分支中。iOS11推出了新框架ARKit,经由过程ARKit和SceneKit可以很便利的制造AR App。苹不雅也供给了>>>详细阅读


本文标题:如何快速实现一个基于Nginx网站的监控场景

地址:http://www.17bianji.com/lsqh/36093.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)