随着容器时代到来,公司对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等信息,通过导入,其它主机的展示全部搞定。


以上仅仅是个人总结的一点,优缺点还需要大家各自评点,下面是我的安装部署的一些资料,提供参考,不足之处请指正。

telegraf安装部署详解

influxdb 安装配置详解

grafana 安装配置详解