Grafana+Prometheus|系统应用监控仪表盘

1,607 阅读5分钟

这是我参与更文挑战的第13天,活动详情查看: 更文挑战

前言:

应上篇文章,我们实现了Prometheus自定义Metrics监控,对于很多没接触过Grafana和Prometheus的小伙伴很不友好,今天我们主要介绍一下Grafana和Prometheus的作用以及如何进行搭建,如何初步的监控你的系统应用;

Grafana 是什么?

  • Grafana 跨平台的开源的度量分析和可视化工具,它是由 Grafana Labs 公司开源的的一个系统监测 (System Monitoring)Grafana 支持的数据源 工具。它可以大大帮助你简化监控的复杂度,你只需要提供你需要监控的数据,它就可以帮你生成各种可视化仪表。同时它还有报警功能,可以在系统出现问题时通知你。
  • Grafana 不对数据源作假设,它支持很多各种各种数据源,它都可以帮助生成仪表。同时在市面上,Grafana 市场占有量稳居第一。因此,如果你搞定了 Grafana,它几乎是一个会陪伴你到各个公司的一件称心应手的兵器;

Grafana 支持的数据源

  • Prometheus 本文中的例子,你没听过也没关系不影响阅读,把它想象成带时间戳的 MySQL 就好
  • Graphite
  • OpenTSDB
  • InfluxDB
  • MySQL/PostgreSQL
  • Microsoft SQL Server
  • 等等

Grafana的特点

  1. 展示方式:快速灵活的客户端图表,面板插件有许多不同方式的可视化指标和日志,官方库中具有丰富的仪表盘插件,比如热图、折线图、图表等多种展示方式;
  2. 数据源:Graphite,InfluxDB,OpenTSDB,Prometheus,Elasticsearch,CloudWatch和KairosDB等;
  3. 通知提醒:以可视方式定义最重要指标的警报规则,Grafana将不断计算并发送通知,在数据达到阈值时通过Slack、PagerDuty等获得通知;
  4. 混合展示:在同一图表中混合使用不同的数据源,可以基于每个查询指定数据源,甚至自定义数据源;
  5. 注释:使用来自不同数据源的丰富事件注释图表,将鼠标悬停在事件上会显示完整的事件元数据和标记;
  6. 过滤器:Ad-hoc过滤器允许动态创建新的键/值过滤器,这些过滤器会自动应用于使用该数据源的所有查询。

综上,在任何需要监控系统运行状况的地方就大概率会用到仪表盘,而用到仪表盘的时候就可以用 Grafana (不管你用什么语言)

Grafana安装及配置:

根据自己的系统版本和配置,下载对应的包,官方提供了如下说明,可直接按照说明进行下载

图片.png

当然也可以用Docker安装,官网有说明或者看一下这个 URL)

Prometheus:

prometheus 是由 SoundCloud 开源监控告警解决方案,存储的是时序数据,即按相同时序(相同名称和标签),以时间维度存储连续的数据的集合,大家可以把它想象成一个有时序的MySql;

图片.png

特性:
  • 高维度数据模型
  • 自定义查询语言
  • 可视化数据展示
  • 高效的存储策略
  • 易于运维
  • 提供各种客户端开发库
  • 警告和报警
  • 数据导出

github上有代码,大家一搜就ok或者可以看这个 URL 毕竟小编是一位开发 对运维这方面懂的不是特别多,以防把大家带到沟里,安装教程可以看一下这个 URL

当我们安装完成,项目跑起来以后,打开当前页面 用户名密码都是:admin 图片.png

Grafana主界面: 图片.png

上面说到,Grafana 是一个仪表盘,而仪表盘必然是用来显示数据的。 Grafana 本身并不负责数据层,它只提供了通用的接口,让底层的数据库可以把数据给它。而我们起的另一个服务,叫 Prometheus (中文名普罗米修斯数据库)则是负责存储和查询数据的。 也就是说,Grafana 每次要展现一个仪表盘的时候,会向 Prometheus 发送一个查询请求

安装时候会有一个 Prometheus-exporter项目,这个就是你真正监测的数据来源了,Prometheus-exporter 这个服务,会查询你的本地电脑的信息,比如内存还有多少、CPU 负载之类,然后将数据导出至普罗米修斯数据库。

搭建仪表盘

第一步:设置数据源

图片.png

添加数据源 图片.png

之后设置数据源 URL。请注意,Promethues 的工作原理是通过轮询一个 HTTP 请求来获取数据的,而 Grafana 在获取数据源的时候也是通过一个 HTTP 请求,因此这个地方你需要告诉 Grafana 你的 Prometheus 的数据端点是什么。

图片.png

第二步:导入 Dashboard

在 Grafana 里,仪表盘的配置可以通过图形化界面进行,但配置好的仪表盘是以 JSON 存储的。这也就是说,如果你把你的 JSON 数据分享出去,别人导入就可以直接导入同样的仪表盘(前提是你们的监测数据一样)。 图片.png

Grafana 的仪表盘市场:grafana.com/grafana/das… 图片.png

ok!今日分享到此结束,希望可以对大家有帮助,有不对的地方希望大家可以提出来的,共同成长;

整洁成就卓越代码,细节之中只有天地