文章系国内领先的 ITOM 管理平台供应商 OneAPM 编译呈现。

概览

Grafana 是一个开源的监控数据分析和可视化套件。最常用于对基础设施和应用数据分析的时间序列数据进行可视化分析,也可以用于其他需要数据可视化分析的领域。Grafana 可以帮助你查询、可视化、告警、分析你所在意的指标和数据。可以与整个团队共享,有助于培养团队的数据驱动文化。

Grafana 有强大的社区支持,有丰富的模板插件,足够满足需要的功能特性。几乎可以集成任何数据源、监控工具和告警平台。可谓是不可多得的神器。也有很多国内国外的知名公司在使用。

接下来,小编从 Grafana 的重要特性展开来说,最后附上部分示例实践,仅供参考。

  • 可视化,酷炫,灵活易用的可视化组件

  • 统一,同时集成多个数据源

  • 开源,活跃强大的社区

  • 告警,定义告警并集成其他告警平台

  • 通知,可扩展,模板和插件机制

一、可视化(Visualize)

Grafana 提供了丰富的图标、图形和其他可视化选项,经过简单的界面操作就能通过分析来更好的理解数据。并且大部分情况下你只需要使用社区提供的模板和插件就足够了,并不需要自己过多的配置。

OneAPM大讲堂 | 监控数据的可视化分析神器 Grafana 的告警实践 技术分享 第1张

二、统一(Unify)

可以把所有数据源的数据同时集成到 Grafana,因此可以获取更好的上下文。Grafana 原生支持超过30个开源和商业的数据源,在统一的仪表板中将它们的数据混合在一起分析。并且可以通过现有的插件集成 Zabbix 这样常用的监控工具的数据。非常的方便。

Grafana 内置支持的常用数据源:

  • InfluxDB

  • OpenTSDB

  • Elasticsearch

  • Zabbix

  • Graphite

  • MySQL

具体的数据源请参考 https://Grafana.com/plugins,总能找到你想要的。

InfluxDB

OneAPM大讲堂 | 监控数据的可视化分析神器 Grafana 的告警实践 技术分享 第2张

混合数据源(Mix Data Source)

OneAPM大讲堂 | 监控数据的可视化分析神器 Grafana 的告警实践 技术分享 第3张

三、开放(Open)、可扩展(Extend)、合作(Collaborate)

Grafana 的开源性质,可以让你没有任何顾虑的深度使用,同时还有一个活跃强大的社区。并且 Grafana 可以安装部署在任何平台上。包括 Linux,Windows,macOS 和 Docker。在 Grafana 中有数百个图表模板和插件,几乎每周都会更新。所以你能想到的绝大部分使用场景都是可以找到相应的模板和插件。Grafana 还可以在团队之间共享,通过授权用户来进行协同工作。这也可以培养团队的数据驱动文化。

Grafana 的动态仪表板(使用动态 dashboard,使用在仪表板顶部显示为下拉列表的模板变量创建动态和可重复使用的仪表板):

OneAPM大讲堂 | 监控数据的可视化分析神器 Grafana 的告警实践 技术分享 第4张

Grafana 注释(使用来自不同数据源的丰富事件注释图表。 将鼠标悬停在事件上可以显示完整的事件元数据和标签):

OneAPM大讲堂 | 监控数据的可视化分析神器 Grafana 的告警实践 技术分享 第5张

Ad-hoc 过滤器(Ad-hoc 过滤器允许即时创建新的键/值过滤器,这些过滤器会自动应用于使用该数据源的所有查询):

OneAPM大讲堂 | 监控数据的可视化分析神器 Grafana 的告警实践 技术分享 第6张

四、告警(Alerting)

无缝定义告警在数据中的的位置,可视化的定义阈值,并可以通过 Slack,OneAlert 等平台获取告警通知。最为重要的是可直观的定义告警规则,不断的评估并发送通知。注意告警功能在新版本中才有。

OneAPM大讲堂 | 监控数据的可视化分析神器 Grafana 的告警实践 技术分享 第7张

五、通知(Notifications)

当指标超过设定的告警阈值时,Grafana 就会触发告警接。当指标恢复到正常时 Grafana 就会关闭告警。这些动作都会有通知。除了最常见的 Email 通知,Grafana 内置的通知 APP 有 Slack,PagerDuty,VictorOps,OpsGenie。这些平台均为国外,可能在国内因为翻墙(如果大家有好的翻墙方式可以留言分享)、语言等原因,导致在国内有点水土不服。国内类似平台很少,首家 SaaS 一站式告警平台 OneAlert (不能否认,目前国内一直是处于领先)支持通过webhook 方式集成 Grafana。OneAlert 可以解决告警的汇聚、告警的分派,多方式通知,多人团队排班、告警压缩等问题,在此就不展开了,有兴趣去官网了解下。OneAlert 官网:http://www.onealert.com/

OneAPM大讲堂 | 监控数据的可视化分析神器 Grafana 的告警实践 技术分享 第8张

六、实践

作为一个 Geek 看到这么酷炫的东西怎么能不动手试一下呢。大部分情况下我们最常使用的功能是 Dashboard 模板、数据源应用、告警和通知这几个关键的功能。下面就从一个简单的示例来实际操作一下。

1、安装,注意:因为告警功能只在4.0以上版本可用,最好安装当前最新稳定版。

以 Linux 环境为例安装

Ubuntu & Debian(64 Bit):

wget      https://s3-us-west-2.amazonaws.com/Grafana-releases/release/Grafana_4.6.3_amd64.deb

sudo dpkg -i Grafana_4.6.3_amd64.deb

Standalone Linux Binaries(64 Bit):

wget      https://s3-us-west-2.amazonaws.com/Grafana-releases/release/Grafana-4.6.3.linux-x64.tar.gz

tar -zxvf Grafana-4.6.3.linux-x64.tar.gz

Redhat & Centos(64 Bit):

wget      https://s3-us-west-2.amazonaws.com/Grafana-releases/release/Grafana-4.6.3-1.x86_64.rpm

sudo yum localinstall Grafana-4.6.3-1.x86_64.rpm

2、启动,如果需要请加入开机自启,centos6.x 为例

sudo service Grafana-server start

3、配置 DataSource和Dashboard

添加一个 DataSource,以 InfluxDB 为例。

Data Sources->Add Data Source

OneAPM大讲堂 | 监控数据的可视化分析神器 Grafana 的告警实践 技术分享 第9张

创建一个 Dashboard 或者直接引入一个 Dashboard 模板。

OneAPM大讲堂 | 监控数据的可视化分析神器 Grafana 的告警实践 技术分享 第10张

4、配置告警

OneAPM大讲堂 | 监控数据的可视化分析神器 Grafana 的告警实践 技术分享 第11张

告警的阈值可以通过鼠标拖动来实现:

OneAPM大讲堂 | 监控数据的可视化分析神器 Grafana 的告警实践 技术分享 第12张

5、添加通知渠道

Notification channels->add channel

首先添加一个 email 通知:

OneAPM大讲堂 | 监控数据的可视化分析神器 Grafana 的告警实践 技术分享 第13张

Send Test 一下应该就能收到。

再添加一个 OneAlert 通知,如果没有用过 OneAlert 的同学直接去注册 ok 了,跟着引导可以很方便快捷创建一个 Grafana 应用,并且记录 Appkey。

如果已经有 OneAlert 账号,直接登录->应用->添加应用->Grafana,OneAlert 的配置界面说明非常完整,直接参考就可以了。

OneAPM大讲堂 | 监控数据的可视化分析神器 Grafana 的告警实践 技术分享 第14张

将获取到的 URL 直接复制下来:

OneAPM大讲堂 | 监控数据的可视化分析神器 Grafana 的告警实践 技术分享 第15张

在 Grafana 中添加一个 Webhook channel,将 URL 填入 Webhook Settings 的 URL 中,http method 为 POST,选中 type 为 Webhook,勾选 Send on all alerts 和 Include image,你会在 OneAlert 中得到很好的使用体验。点击Send Test 后再 OneAlert 中就能看到你的告警。

OneAPM大讲堂 | 监控数据的可视化分析神器 Grafana 的告警实践 技术分享 第16张

最后在 Grafana 的 Alert 配置页面选中 OneAlert 和 Email 的通知 Channel:

OneAPM大讲堂 | 监控数据的可视化分析神器 Grafana 的告警实践 技术分享 第17张

测试通过的话,接下来你就可以通过配置 OneAlert 的通知策略、分派策略、排班等,就可以时刻通过微信、短信、电话、APP来接收告警并和团队一起协作。

总结

Grafana 可以促进以数据驱动运维的团队工作效率提升,让我们花更少的时间和精力来减少故障、快速恢复故障和避免故障。配合告警神器 OneAlert,可以弥补 Grafana 不能解决的精准分派、多方式通知、排班等功能的不足,如果大家有更好欢迎留言推荐分享,大家一起进步!

Grafana 的 Github 地址:https://github.com/Grafana/Grafana

参考资料:Grafana Document:http://docs.Grafana.org/


OneAlert 是北京蓝海讯通科技有限公司旗下产品,是国内首个 SaaS 模式的云告警平台,集成国内外主流监控/支撑系统,实现一个平台上集中处理所有 IT 事件,提升 IT 可靠性。想了解更多信息,请访问 OneAlert 官网 ,欢迎免费注册体验 。