随着容器时代到来,公司对devops等概念理解越来越深刻,业务系统架构也在不断向微服务架构调整。业务系统也不断的提供更多的api接口,实现方便灵活的调用。在这种业务背景下,感觉业务系统的监控系统(zabbix、cacti)等,略显笨重,在使用灵活度上感觉也略显欠佳。
那么有没有新的监控系统能够在满足监控的需求的基础上,让使用变得更灵活、调用更加方便那?
答案是肯定的,有,个人查了一些资料,简单整理一下,下面进行简单描述:
监控系统一般分几块:
数据采集
数据存储
数据展示
告警 (后期探讨)
对应找到服务如下:
采集数据(telegraf)-> 存储数据(InfluxDB) -> 显示数据(Grafana)
下面对各个服务的特点进行介绍:
1:telegraf
Telegraf 是一个用 Go 编写的代理程序,可收集系统和服务的统计数据,并写入到 InfluxDB 数据库。
Telegraf 具有内存占用小的特点,通过插件系统开发人员可轻松添加支持其他服务的扩展。
个人感受:
1:监控插件满足主流监控需求;
2:添加监控项方式简单、灵活;
3:监控项模块化,方便自动程序调用;
官网参考地址
https://docs.influxdata.com/telegraf/v0.11/
2:influxdb
InfluxDB 是一个开源分布式时序、事件和指标数据库。使用 Go 语言编写,无需外部依赖。其设计目标是实现分布式和水平伸缩扩展。
1、它有三大特性:
1. Time Series (时间序列):你可以使用与时间有关的相关函数(如最大,最小,求和等)
2. Metrics(度量):你可以实时对大量数据进行计算
3. Eevents(事件):它支持任意的事件数据
2、特点
schemaless(无结构),可以是任意数量的列
Scalable
min, max, sum, count, mean, median 一系列函数,方便统计
Native HTTP API, 内置http支持,使用http读写
Powerful Query Language 类似sql
Built-in Explorer 自带管理工具
3、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等信息,通过导入,其它主机的展示全部搞定。
以上仅仅是个人总结的一点,优缺点还需要大家各自评点,下面是我的安装部署的一些资料,提供参考,不足之处请指正。