当前位置: 代码迷 >> 综合 >> 如何使用 Prometheus 和 Grafana 优雅的实现服务器可视化
  详细解决方案

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

热度:47   发布时间:2023-12-13 14:43:15.0

1Prometheus 简介

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

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

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

2Grafana 简介

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

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

3Prometheus 安装

e8c70bd1dd0f34e2bf57e1c1b26a854e.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上的仪表板如下图所示:

6c89882a2442c0ba59f531f54a5a5350.png

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

8213de26999bf4c53fbc4772f2de07d1.png 631c107be08e4c16c6846da777d3745f.png

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

4节点 Exporter 安装

f80bf49014f623108cee9537e18770e7.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 路径中看到新目标及其状态。

8eaed9d74ac86823b9cc7275d2206e22.png 95fdb28f8d3e573b05f908c26fde8f75.png

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

5Grafana 安装

a2c8aaa026daf8ad157b8fb9f13938e2.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 并点击保存和测试按钮。如果我们看到一个成功的提示框,说数据源正在工作,那么我们就可以开始了。

7fb01d676939d004099ed20b4b540040.png

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

0a6f38272ada3eac3ced2772a9ea9a3b.png 3e1ceb6ffd8697384c010467861b695a.png

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

beea6bac818ac093ad748c7b0603f7bd.png 71145fb696e1d1fb94a636e09314830e.png 3c2b4e0db200b7dd5bc02a70fd57d1a3.png

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

36a9a9e3ab9a1603b2e6f61595fa1e22.png cc324230cb1795d1418a616740c93608.png

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

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

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

371391b4444522ecb64c904d738ac360.png