Statsd+Graphite+Grafana:搭建web监控系统

2022-04-21 00:00:00 数据 代码 发送 复制 公网

简单介绍

Statsd:一个nodejs的客户端,用于向graphite的收集器发送数据,使用各类编程语言的客户端响起发送timer,counter等统计数据后,其通过udp定时向graphite发送数据。

  • Statsd 早是 2008 年 Flickr 公司用 Perl 写的针对 Graphite、datadog 等监控数据后端存储开发的前端网络应用,2011 年 Etsy 公司用 node.js 重构。
  • statsd狭义来讲,其实就是一个监听UDP(默认)或者TCP的守护程序,根据简单的协议收集statsd客户端发送来的数据,聚合之后,定时推送给后端,如graphite和influxdb等,再通过grafana等展示。

Graphite:Graphite 是用 Python 模仿 RRDtools 写的时间序列数据库套件。包括三个部分:

  • carbon: 是一个Twisted守护进程,监听处理数据;
  • whisper: 存储时间序列的数据库;
  • webapp: 一个用 Django 框架实现的网页应用。
  • 我们这里使用其接收Statsd收集上来的的数据,并存储监控数据;

Grafana:是一个开源的强有力的数据展示、量化分析工具,数据源包括 graphite、prometheus、mysql、influxdb 等等,可以直接在页面上组装语句,另外还可以对资源实现可用性和性能监控报警,同时还支持集成OpenLDAP;


Statsd

容器启动

docker run -d \
    -p 8125:8125/udp \
    -p 8126:8126 \
    -v /home/statsd/config.js:/usr/src/app/config.js \
    statsd

相关文章