实用|从0到1 搭建Web性能监控系统

工具介绍

1. Statsd 是一个使用Node开发网络守护进程,它的特点是通过UDP(性能好,及时挂了也不影响主服务)或者TCP来监听各种数据信息,然后发送聚合数据到后端服务进行处理。

常见支持的「Graphite」,「ElasticaSearch」,「InfluxDB」 等等 ,它集成了各种语言的客户端API,这里我们使用了jsocol/pystatsd: A Python client for statsd进行数据收集。

2. Graphite 是一套Python写的开源编程接口,主要是用来收集服务器的及时状态,在这里主要作为statsd的数据后端。分为了三个子项目

- carbon 守护进程,接收StatsD发送过来的原始统计数据。

- whisper 用来存储统计数据的时间序列数据库。

- graphite webapp 用来图形化展示统计数据的web项目

3. Grafana 使用Go开发,可以在界面上设计调整自己的统计图表,支持多重报警,可定制化。

安装

在这里我使用了[synthesize(https://github.com/obfuscurity/synthesize)进行快速安装Graphite和Statsd包,这里面需要注意安装数据在 **/opt/graphite ** 目录下面。这里面我们安装启动了

  1. service carbon-cache start # statsd数据处理后会进入中转
  2. service memcached start # 缓存
  3. service collectd start # 收集服务负载可选
  4. service apache2 start # 这可以通过使用nginx替换
  5. service statsite start # statsd的后端服务

这里面需要单独启动graphite-web应用,端口启动:0.0.0.0:8080,后面配置数据源需要使用。

  1. cd /opt/graphite/
  2. sudo ./run-graphite-devel-server.py /opt/graphite/

Grafana数据包可以通过手动下载安装也可以通过apt-get 安装

  • sudo apt-get install grafana

启动之后访问3000端口就能看到这样一个页面,默认的账号密码:admin,admin可以通过配置github或者google登录。

login

数据收集

Python端我们使用statsd进行数据统一打点到到监控服务器收集

  1. >>> import statsd
  2. >>> c = statsd.StatsClient(‘localhost‘, 8125)
  3. >>> c.incr(‘foo‘) # Increment the ‘foo‘ counter.
  4. >>> c.timing(‘stats.timed‘, 320) # Record a 320ms ‘stats.timed‘.
  5. 这里面我们通过Python把数据收集到statsite,通过Graphite Web服务来进行展示。

配置Graphite

进入Grafana后台,进行配置点击 「Data Sources」进行配置Graphite的数据(来自前端statsd收集)。

data_source

接下来配置对应的数据展示:

add-graph

到此基本的数据配置就完了,恭喜你拥有了一个完整的监控系统。

为了方便理解这里我补充一下,数据从应用内,添加agent,把应用的时间性能数据通过statsd收集发送到服务端,通过carbon统计,whisper存储最后展示在graphite,

其中这里面我们用grafana来替代了graphite原生的UI展示,也就是我们题图的效果。

原文地址:https://www.cnblogs.com/gucb/p/11280455.html

时间: 2024-10-09 11:57:55

实用|从0到1 搭建Web性能监控系统的相关文章

性能监控系统的搭建(转)

引言 前阵子在w3ctech的走进名企 - 百度前端 FEX 专场上曾“夸下海口”说听完讲座后七天就可以打造自己的前端性能监控系统,既然说出去了也不能食言.从前一篇文章前端数据之美相信大家对前端数据有了一定的了解,下面就针对其中的性能数据及其监控进行详细阐述. 开始行动 本文中的性能主要指 web 页面加载性能,对性能还不了解?不用担心,接下来的“每一天”跟我一起进入前端性能的世界. Day 1 为什么要监控性能? “If you cannot measure it, you cannot im

基于phantomJS实现web性能监控

转载,原文链接http://www.webryan.net/2013/02/web-page-test-based-on-phontomjs/ 1.web性能监控背景描述 上期分享的<Web性能监控自动化探索之路–初识WebPageTest>从依赖webpagetest的角度给出了做性能日常检查的方案,但由于依赖结构相对复杂我们需要给出更简单的解决方案.测试同学没有快速投入的主要原因也是语言和维护成本相对比较大.但解决方案是多种多样的.那么我们再看下这个需求的本质:针对内外网环境需要定期对站点

zabbix之web性能监控

zabbix之web性能监控 设置: 原文地址:http://blog.51cto.com/wsw26/2069216

[转载]前端数据之美 -- 七天打造前端性能监控系统

开始行动 本文中的性能主要指 web 页面加载性能,对性能还不了解?不用担心,接下来的“每一天”跟我一起进入前端性能的世界. Day 1 为什么要监控性能? “If you cannot measure it, you cannot improve it” ———— William Thomson 这是一个最基本的问题,为什么要关注和监控前端性能?对于公司来说,性能在一定程度上与利益直接相关.国外有很多这方面的调研数据: 性能 收益 Google 延迟 400ms 搜索量下降 0.59% Bin

7 天打造前端性能监控系统

引言 前阵子在w3ctech的走进名企 - 百度前端 FEX 专场上曾“夸下海口”说听完讲座后七天就可以打造自己的前端性能监控系统,既然说出去了也不能食言.从前一篇文章前端数据之美相信大家对前端数据有了一定的了解,下面就针对其中的性能数据及其监控进行详细阐述. 开始行动 本文中的性能主要指 web 页面加载性能,对性能还不了解?不用担心,接下来的“每一天”跟我一起进入前端性能的世界. Day 1 为什么要监控性能? “If you cannot measure it, you cannot im

7 天打造前端性能监控系统(转)

引言 前阵子在w3ctech的走进名企 - 百度前端 FEX 专场上曾“夸下海口”说听完讲座后七天就可以打造自己的前端性能监控系统,既然说出去了也不能食言.从前一篇文章前端数据之美相信大家对前端数据有了一定的了解,下面就针对其中的性能数据及其监控进行详细阐述. 开始行动 本文中的性能主要指 web 页面加载性能,对性能还不了解?不用担心,接下来的“每一天”跟我一起进入前端性能的世界. Day 1 为什么要监控性能? “If you cannot measure it, you cannot im

前端性能监控系统ShowSlow

作者:zhanhailiang 日期:2014-11-14 1. 简介 ShowSlow是开源的前端性能监控系统,提供了以下功能: 前端性能指标数据收集功能:ShowSlow原生提供了数据收集工具DOM Monster!,但也支持通过YSlow,PageSpeed等第三方工具将性能数据上报给服务端完成收集(其服务器端提供了针对多达8种不同工具上报的数据收集器dommonster,dynatrace,events,har,metric,pagespeed,webpagetest,yslow): 前

多语言应用性能监控系统:Elastic APM

? 概述 Elastic APM 是基于 Elastic Stack 构建的应用性能监控系统.通过 Elastic APM 可以监控应用程序,收集有关请求的响应时间.数据库查询.高速缓存调用.外部 HTTP 请求等的详细性能信息,这样可以更快地查明并修复性能问题. Elastic APM 还会自动收集未处理的错误和异常,错误主要基于堆栈跟踪进行分组,因此可以识别出现的新错误,并密切关注特定错误发生的次数. ? APM 组件 Elastic APM 包含四个组件: APM agent APM ag

教你怎么搭建远程视频监控系统

时下,越来越多的情况需要应用到远程监控了,在此将刚做好的一个小项目给大家 首先介绍一下硬件方面, 海康威视DS-7016录像机         1台     西部数据SATA接口500G硬盘      1个     TP-LINK R460+路由器           1个    花生壳动态域名专业服务        1年    电源线和视频线随便几百米就够了 第一步搭建你的监控系统 首先将录像机接电源并连接路由器,通过硬盘录像机的默认管理地址进行登陆管理设置,如http://192.168.0