文章目录
监控系统-Prometheus(普罗米修斯)(五)Grafana可视化图形工具
Grafana是一个图形化工具, 它可以从很多种数据源(例如Prometheus)中读取数据信息, 使用很漂亮的图表来展示数据, 并且有很多开源的dashborad可以使用,可以快速地搭建起一个非常精美的监控平台。它与Prometheus的关系就类似于Kibana与ElasticSearch。
一、什么是Grafana
Github地址:https://github.com/grafana/grafana
官网地址:https://grafana.com
官网文档地址:http://docs.grafana.org/
下载地址:https://grafana.com/grafana/download
Grafana是一款用Go语言开发的开源数据可视化工具,可以做数据监控和数据统计,带有告警功能。它可以从很多种数据源(例如Prometheus)中读取数据信息, 使用很漂亮的图表来展示数据, 并且有很多开源的dashborad可以使用,可以快速地搭建起一个非常精美的监控平台。它与Prometheus的关系就类似于Kibana与ElasticSearch。
目前使用grafana的公司有很多,如paypal、ebay、intel等。
①可视化:快速和灵活的客户端图形具有多种选项。面板插件为许多不同的方式可视化指标和日志。
②报警:可视化地为最重要的指标定义警报规则。Grafana将持续评估它们,并发送通知。
③通知:警报更改状态时,它会发出通知。接收电子邮件通知。
④动态仪表盘:使用模板变量创建动态和可重用的仪表板,这些模板变量作为下拉菜单出现在仪表板顶部。
⑤混合数据源:在同一个图中混合不同的数据源!可以根据每个查询指定数据源。这甚至适用于自定义数据源。
⑥注释:注释来自不同数据源图表。将鼠标悬停在事件上可以显示完整的事件元数据和标记。
⑦过滤器:过滤器允许您动态创建新的键/值过滤器,这些过滤器将自动应用于使用该数据源的所有查询。
二、Grafana对Prometheus的支持
Prometheus官网:GRAFANA SUPPORT FOR PROMETHEUS
参考URL: https://prometheus.io/docs/visualization/grafana/
三、安装
-
参考官网说明,进行安装。
官网下线Grafana
yum安装方式,启动Grafana
systemctl daemon-reload
systemctl start grafana-server && systemctl enable grafana-server
ss -tulnp |grep 3000
注意:第一次登录需要更改密码
http://127.0.0.1:3000/login
默认情况下,Grafana将在http://localhost:3000.上监听**。默认登录是"admin" / “admin”.**
二进制安装,启动,demo:
/opt/lighthouse/server/env/grafana/bin/grafana server -homepath=/opt/lighthouse/server/env/grafana/
创建一个Prometheus的数据源
- 配置prometheus数据源
首先是添加数据源,示例如下:
选择Prometheus
设置适当的Prometheus Server URL(例如, http://localhost:9090/)
点击Save & Test (如下,需要我们提前开启Prometheus,正常联通,界面会显示如下)
使用 Explore 功能
在 Grafana 中先使用 Explore 功能,编写和验证 PromQL 语句,确保可以查询到数据
- 点击 Grafana 侧边栏中的 “Explore” 项打开 Explore 功能。
- 在 “Explore” 页面确保已经选择了正确的数据源,默认是上次使用的数据源。可以在下拉列表中切换数据源。
- 在查询编辑器输入框中输入 PromQL 语句,例如可以先尝试简单的 up 或者 metric_name 查询。
- 点击右上方的 “Run Query” 按钮执行查询。
- 在结果窗口可以看到该查询返回的时间序列数据。
- 通过修改时间范围或添加查询条件进行进一步的查询语句验证。
- 若查询没有返回结果,可以试着修改语句或与 Prometheus 表达式浏览器进行交叉验证。
- 一次有效查询可以用 Ctrl+Enter 快捷键保存到左侧的查询历史中。
- 验证通过的 PromQL 语句可以复制到 Dashboard 中的 Panel 查询字段中使用。
利用 Explore 的即时查询和反馈特性,可以快速调试和验证 PromQL 语句,隔离查询语法错误的问题。这可以大幅缩短问题定位的时间,帮助排查 Dashboard 无数据的问题。
配置dashboards
登录grafana的dashboards平台,查询所需的json文件,地址
https://grafana.com/grafana/dashboards
去官网寻找对应的表盘,我们选择node exporter
监控看板
在grafana中在导入表盘
例如: 访问 https://grafana.com/grafana/dashboards/8919/revisions
下载最新的json,或copy 对应 id
点击import
展示结果如下:
Grafana 关于自定义的 metrics 列表的dashboards
对于直接使用 Grafana 现成的 Dashboard,的确需要谨慎,因为 Dashboard 设计时默认的 metrics 和你的实际 metrics 可能不完全契合。
有以下两种选择:
- 根据你的 metrics 列表,搜索相关的 Grafana Dashboard。找一个 metrics 对应较多的现成 Dashboard 使用。
- 自己从 0 构建新的 Dashboard。可以导入一个空白 Dashboard,然后一个 Panel 一个 Panel 地添加你需要的图表。这需要对 Grafana 和 Prometheus 较熟悉,但可以完全自定义。
对于第二种自定义的方法,具体步骤可参考:
- 导入空白 Dashboard 模板
- 配置数据源,确保连接正确的 Prometheus
- 添加一个 Graph 类型的 Panel
- 在 Panel 中配置查询语句,使用 metrics 名称,验证能够查询到数据
- 调整查询范围,间隔,模板变量等参数
- 设定 Y 轴单位,图例,样式等可视化显示参数
- 保存这个 Panel
- 继续添加更多 Panel,选择不同的 metrics 展示数据
- 完成后应用 Dashboard,Share 给其他用户使用
总之,无论直接使用现成 Dashboard,还是自己从 0 构建,都需要根据实际 metrics 为导向进行设计,以显示真正需要的监控数据。
从零 构建elkeid的dashboards
从零开始构建显示 elkeid metrics 的 Grafana Dashboard,步骤如下:
- 在Grafana中创建一个空白的dashboard。
- 配置数据源,选择连接到采集elkeid metrics的Prometheus。
- 新增一个Graph类型的panel,在Metrics中输入一个elkeid metrics的名称,例如
go_goroutines
,然后运行查询验证是否可以获取到数据。 - 调整图表样式,比如设置Y轴范围,给图表加标题,调整颜色等视觉效果。
- 继续添加新的panel,显示更多elkeid metrics,比如CPU,内存,网络等数据。每添加一个metric都需要验证查询语句。
- 添加模板变量(template variable),用于选择不同的metrics或者不同的实例(instance)。模板变量可以用在查询语句中。
- 对dashboard进行整体布局,调整各个panel的大小和位置,使图表清晰易读。
- 添加自动刷新间隔,数据集中的时间范围选择。
- 完成后给dashboard设置一个描述性的名称,保存并分享给团队其他成员。
在整个过程中,要不断验证每个panel的metric查询语句,确保都能返回正确的时序数据。
随时可以新建一个panel来试验不同的可视化,找到最能展示metric数据的图表类型。
这样通过迭代增加和优化各个面板,可以定制出一个符合监控需求的elkeid dashboard。
TODO 待验证~
四、参考
运维监控之-Prometheus+Grafana+node_exporter监控并报警到钉钉&邮件
参考URL: https://blog.csdn.net/yaodunlin/article/details/89159500
Prometheus+Grafana+node-exporter配置
参考URL: https://www.cnblogs.com/mscm/p/13660930.html