用10分钟了解Grafana

Grafana 是什么?

Grafana是Grafana Labs开发的一个用于日志和数据可视化的工具,与Kibana几乎相同。

grafana_top.png

Grafana 和 Kibana 都可以实时查询保存在数据库中的日志并显示数据,可以更改显示的时间范围和时间段,还可以交互式地操作可视化来显示特定节点的数据。

Grafana原生支持多个数据库,目前支持以下数据库:
– Graphite
– Prometheus
– Elasticsearch
– InfluxDB
– OpenTSDB
– MySQL
– AWS Cloudwatch

Kibana 只支持 Elasticsearch
虽然我觉得 Kibana 的用户界面功能更强大,但是在 Grafana 上也有插件提供各种功能和用户界面,并且还可以自己开发
https://grafana.com/plugins

然而,就从资源监控和应用状态监控的角度考虑,我认为并不需要如此丰富的可视化,所以使用哪种方式应该没有太大差别。

我们可以使用Grafana来以酷炫的方式可视化通过Prometheus获取的数据。

安装Grafana

可以按照公式文件的指引进行安装,但使用Docker是最简单的。

如果只是简单地让它运行起来,并不考虑数据的保存,那就只需要这个!

$ docker run -d -p 3000:3000 grafana/grafana

使用Grafana进行数据可视化

我們將創建一個名為儀表板(Dashboard)的項目,並為每個儀表板設置可視化組件。

可视化的步骤基本上只有以下几步:
1. 创建仪表盘
2. 添加用户界面部件
3. 设置数据获取查询

在考虑查询时可能需要稍微费点脑力,然后可以顺利地尝试并添加进去。
设置好的仪表盘可以保存,还可以以 Json 形式导出设置,因此也可以将其作为代码备份。

可以使用的用户界面组件。

UI.png
heatmap.png

由于Grafana插件提供了多种UI组件的公开,所以如果需要复杂的显示,也可以使用这些组件之一。

commit.png

在Prometheus中进行查询的配置。

利用不同的后端,查询的细节会有所不同,以下是使用Prometheus作为例子的一小部分。

使用 Prometheus 中介绍的 node_exporter 可以在 10 分钟内理解并利用,通过它可以获取到机器的 CPU、内存、磁盘等资源信息。

要获取可用内存,请设置如下内容

node_memory_MemAvailable

您可以通过以下查询获取每台机器的 CPU 使用率。

100 - (avg by (instance) (irate(node_cpu{mode="idle"}[5m])) * 100)

说实话,我不太了解”クエリ”的意思。
关于”クエリ”的意思,请查看这里!
https://www.robustperception.io/understanding-machine-cpu-usage/

这是用Grafana制作的仪表盘!

进行各种设置后,可以制作出这样的仪表板。
与Prometheus提供的默认仪表板相比,差距非常明显。

grafana_s.png

给您带来愉悦的仪表板生活!

广告
将在 10 秒后关闭
bannerAds