上周给创宇研发团队简单做了一次技术分享,主要讲了为什么我们要自己做监控,监控的指标维度,监控基本流程及常见监控工具介绍,最后如何从零快速开始搭建一套自己的监控工具。为了方便没有听到的同学,但是内容较多,我这里简单记录一下。
工具介绍Statsd 是一个使用Node开发网络守护进程,它的特点是通过UDP(性能好,及时挂了也不影响主服务)或者TCP来监听各种数据信息,然后发送聚合数据到后端服务进行处理。常见支持的「Graphite」, 「ElasticaSearch」,「InfluxDB」 等等 ,它故宫了各种语言的客户端API,这里我们使用了jsocol/pystatsd: A Python client for statsd进行数据收集
Graphite 是一套Python写的开源编程接口,主要是用来收集服务器的及时状态,在这里主要作为statsd的数据后端。分为了三个子项目carbon 守护进程,接收StatsD发送过来的原始统计数据。
whisper 用来存储统计数据的时间序列数据库。
graphite webapp 用来图形化展示统计数据的web项目。
Grafana 使用Go开发,可以在界面上设计调整自己的统计图表,支持多重报警,可定制化。
安装service carbon-cache start # statsd数据处理后会进入中转
service memcached start # 缓存
service collectd start # 收集服务负载可选
service apache2 start # 这可以通过使用nginx替换
service stats