随着容器时代到来,公司对devops等概念理解愈来愈深入,业务系统架构也在不断向微服务架构调整。业务系统也不断的提供更多的api接口,实现方便灵活的调用。在这种业务背景下,感受业务系统的监控系统(zabbix、cacti)等,略显笨重,在使用灵活度上感受也略显欠佳。
html
那么有没有新的监控系统可以在知足监控的需求的基础上,让使用变得更灵活、调用更加方便那?
sql
答案是确定的,有,我的查了一些资料,简单整理一下,下面进行简单描述:数据库
监控系统通常分几块:api
数据采集跨域
数据存储架构
数据展现app
告警 (后期探讨)less
对应找到服务以下:分布式
采集数据(telegraf)-> 存储数据(InfluxDB) -> 显示数据(Grafana)ide
下面对各个服务的特色进行介绍:
1:telegraf
Telegraf 是一个用 Go 编写的代理程序,可收集系统和服务的统计数据,并写入到 InfluxDB 数据库。
Telegraf 具备内存占用小的特色,经过插件系统开发人员可轻松添加支持其余服务的扩展。
我的感觉:
1:监控插件知足主流监控需求;
2:添加监控项方式简单、灵活;
3:监控项模块化,方便自动程序调用;
官网参考地址
https://docs.influxdata.com/telegraf/v0.11/
2:influxdb
InfluxDB 是一个开源分布式时序、事件和指标数据库。使用 Go 语言编写,无需外部依赖。其设计目标是实现分布式和水平伸缩扩展。
一、它有三大特性:
1. Time Series (时间序列):你可使用与时间有关的相关函数(如最大,最小,求和等)
2. Metrics(度量):你能够实时对大量数据进行计算
3. Eevents(事件):它支持任意的事件数据
二、特色
schemaless(无结构),能够是任意数量的列
Scalable
min, max, sum, count, mean, median 一系列函数,方便统计
Native HTTP API, 内置http支持,使用http读写
Powerful Query Language 相似sql
Built-in Explorer 自带管理工具
三、API
InfluxDB 支持两种api方式
HTTP API
Protobuf API
我的感觉:
1:数据为为监控而生;
2:方便扩容;
3:管理、使用都很爽;
3:grafana
Grafana是一个纯粹的html/js应用,访问InfluxDB时不会有跨域访问的限制。只要配置好数据源为InfluxDB以后就能够,剩下的工做就是配置图表。Grafana 功能很是强大。
使用ElasticsSearch保存DashBoard的定义文件,也能够Export出JSON文件(Save ->Advanced->Export Schema),而后上传回它的/app/dashboards目录。
我的感觉:
1:gafana 太强了,展现监控数据就是小菜一碟;
2:丰富的数据源接口,各类数据都能接入,在gafana进行展现;
3:丰富的API接口,方便自动化程序调用;
4:监控dashboard 导入 、导出,这个很棒,作好一个比较满意的展现面板,导出后主要修改一下里面的IP等信息,经过导入,其它主机的展现所有搞定。
以上仅仅是我的总结的一点,优缺点还须要你们各自评点,下面是个人安装部署的一些资料,提供参考,不足之处请指正。