如何使用 Prometheus 和 Grafana 优雅的实现服务器可视化

公众号关注 「奇妙的 Linux 世界」

设为「星标」,每天带你玩转 Linux !

9809f2812f2e3fd1299a2cfee3d55f87.png

1Prometheus 简介

Prometheus 是一个开源监控工具,实现了高维数据模型。Prometheus 有多种数据可视化模式,其中一种是集成 Grafana。Prometheus 以高效的自定义格式将时间序列数据存储在内存和本地磁盘上。

Prometheus 有许多客户端可用于轻松监控服务,也可以轻松创建自定义客户端。每台服务器的可靠性都是独立的,仅依赖本地存储。用 Golang 编程语言编写,所有二进制文件都是静态链接的,易于部署。

Prometheus 采用拉取策略而不是推送策略,即 Prometheus 以一定的时间间隔从 exporter 那里拉取数据,而不是 exporter推送数据到 Prometheus。这种方式有其自身的优点和缺点,但我们不讨论这些细节。

2Grafana 简介

Grafana 是一款开源可视化和分析软件,它允许你查询、可视化、提醒和探索您的指标,无论这些指标存储在哪里。Grafana 支持数十种数据库,我们可以创建一个仪表盘来可视化它们全部。

Grafana 还提供报警,直观地定义阀值,并通过 Slack、 PagerDuty 和其他平台获得通知。Grafana 还提供了多种选项来查看我们的数据,从热力图到直方图,从图形到地理地图。Grafana 有大量的可视化选项可以帮助我们更好地理解数据。我正在使用 Ubuntu 18.04,并将显示与其相关的整个配置。

3Prometheus 安装

85764e3a23ce3ebc15f121a75008307b.png
$ wget https://github.com/prometheus/prometheus/releases/download/v2.21.0/prometheus-2.21.0.linux-amd64.tar.gz

$ tar -xzf prometheus-2.21.0.linux-amd64.tar.gz

$ cd prometheus-2.21.0.linux-amd64/

$ ./prometheus

安装非常简单,执行这些命令将会让 Prometheus 服务器在端口 9090 中运行。Prometheus 在端口9090上的仪表板如下图所示:

8bf34646e34ddf20e1a6a41fb8feaab8.png

如前所述,从 Prometheus 中抓取的指标发生在恒定的时间段内,因此可以在路径 /metrics 中查看它们。

f770cf05d1216118028e527c3711637a.png cd04606d0f44825f4ea3e959cdd8f186.png

这些指标用于形成具有各种聚合函数的复杂表达式,以我们想要的形式进行可视化,这在 promql 的帮助下基本上是可能的。Prometheus 中的图形可视化非常基本,没有提供太多自定义,因此我们将使用 Grafana。

4节点 Exporter 安装

a22484d282bbf67829d9f91e0753eade.png
$ wget https://github.com/prometheus/node_exporter/releases/download/v1.0.1/node_exporter-1.0.1.linux-amd64.tar.gz
$ tar -xzf node_exporter-1.0.1.linux-amd64.tar.gz
$ cd node_exporter-1.0.1.linux-amd64/
$ ./node_exporter

上述命令将安装节点 exporter 并在端口 9100 上运行,并且可以从 /metrics 扩展中抓取指标。

我创建了 3 个虚拟机并在所有虚拟机中安装了节点 exporter,以提供更好的可视化效果。所以在安装之后,我们必须告诉 Prometheus 从哪里抓取指标,这可以通过编辑 prometheus.yml 文件来完成。我们只需要在 scrape_configs 中添加一个新作业,指定目标中的 IP 地址和端口。在 prometheus.yml 文件中添加目标并重新启动 Prometheus 服务器后,我们可以在仪表板以及 /targets 路径中看到新目标及其状态。

8e81628e16f8d6813a51ce6d6ae006e5.png c07fffc5ad364088163c5687724d75de.png

确保所有目标都已启动,如果没有,请检查是否为该 VM 实例开放了 9100 端口。你还可以查看 Prometheus 从每个 exporter 抓取的时间以及上次抓取的时间。

5Grafana 安装

9ee3f1b7df7a593927a05d2f252ab119.png
$wget https://dl.grafana.com/oss/release/grafana-7.1.5.linux-amd64.tar.gz
$tar -xzf grafana-7.1.5.linux-amd64.tar.gz
$cd grafana-7.1.5.linux-amd64/
$./bin/grafana-server

通过运行上述命令即可完成安装,Grafana 运行在端口 3000。默认的用户名和密码均为“admin”。

当我们进入仪表板,我们需要添加一个数据源,在我们的例子中是 Prometheus。我们只需要提供 Prometheus URL 并点击保存和测试按钮。如果我们看到一个成功的提示框,说数据源正在工作,那么我们就可以开始了。

d672d6cf7788c09169b7cdb7ba21fbbc.png

我们可以使用自定义的查询语句创建自己的仪表板和面板,但这是一项乏味的工作。因此,为了简化我们的工作,其他用户已经创建了一些仪表板,我们可以使用相同的仪表板并根据我们的需要调整表达式。我使用的是 1860 和 405,这些是我们导入仪表板的唯一ID。

c34890c20f97b5953e43dccce28de5c8.png d19ad8a916fa2344111639d4a558ab96.png

导入完成后,我们会看到基于其表达式和时间范围的图表。你可以通过将时间范围减少到 5 分钟来深入了解。

be50d678320441e9408b7f67f0486a98.png 2fc744c297d3432258bfcbae541eeebd.png 2b9bfacaa25507e5eb19d096705475e6.png

Grafana 还允许我们查看合并多个 exporter的表单,以便更好地进行比较。

0852d6e82d02f766735acc46598402e5.png 1bb7844b6e59f939676bf0b7e2a8676f.png

所以在上面的图片中,我们可以看到所有三个节点 exporter 的数据都被可视化了。

以上总结了 Prometheus 和 Grafana 的基本设置,用来可视化节点指标数据。如果你觉得有帮助,请点赞分享。

原文链接:https://medium.com/javarevisited/prometheus-grafana-setup-to-visualize-your-servers-924773b83f3f

本文转载自:「分布式实验室」,公众号ID:dockerone。原文:https://tinyurl.com/2yd2t2vj,版权归原作者所有。欢迎投稿,投稿邮箱: editor@hi-linux.com。

8699950e6a7136632c85835b99ebf602.gif

b32e7c744aeda1cbc240a741997e772f.png

你可能还喜欢

点击下方图片即可阅读

b8637c66bd4f24bf058ceededbc68795.png

如何优雅的使用 IPtables 在多租户环境中实现 TCP 限速

753fa587967d7bb16223d4759c5b41e0.png
点击上方图片,『美团|饿了么』外卖红包天天免费领

857a4aa022d8e87ae7b7f04ea00c2884.png

更多有趣的互联网新鲜事,关注「奇妙的互联网」视频号全了解!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值