Prometheus与Grafana入门:从安装到基础监控的完整指南

news/2025/1/23 9:50:35/

Prometheus与Grafana入门:从安装到基础监控的完整指南

Prometheus 和 Grafana 是现代监控系统的黄金组合。Prometheus 作为一个开源的监控系统和时间序列数据库,以其强大的指标收集和查询能力广泛应用于云原生环境。而 Grafana 则是一个用于数据可视化和监控的开源平台,能够将 Prometheus 收集的数据以图表的形式展现出来,帮助用户更直观地理解系统的运行状态。本指南将从 Prometheus 和 Grafana 的安装开始,逐步讲解如何配置基本的监控任务。


一、Prometheus 简介

Prometheus 是一个开源系统监控和报警工具包,最初由 SoundCloud 开发,并且现已成为 Cloud Native Computing Foundation 的一个项目。Prometheus 专注于多维度的数据模型,灵活的查询语言(PromQL)和强大的数据收集、告警功能,使其在微服务和容器化应用监控中尤为流行。

Prometheus 主要特点
  1. 多维度数据模型:基于时间序列数据,标记数据由 metric 名称和键值对(labels)标识。
  2. PromQL 查询语言:用于实时查询和聚合数据。
  3. 无依赖架构:依赖拉模式(pull model)主动收集目标端点的 metrics 数据。
  4. 支持多种数据导出:支持多种 exporter 以便从不同的服务中收集数据。
  5. 内置时序数据库:独立运行,无需外部时序数据库依赖。

二、Grafana 简介

Grafana 是一个开源的、功能强大的可视化和监控平台。它允许用户连接多种数据源(如 Prometheus、Graphite、Elasticsearch 等),并使用丰富的图表、警报和面板进行数据展示。Grafana 的灵活性和易用性使其成为很多团队监控、分析、并告警的首选工具。

Grafana 主要特点
  1. 多数据源支持:支持多种数据源的集成和统一管理。
  2. 强大的可视化能力:多种图表类型支持(折线图、柱状图、热力图等)。
  3. 灵活的仪表盘管理:支持自定义仪表盘和面板。
  4. 丰富的插件生态:可以通过插件扩展数据源和图表类型。
  5. 告警功能:支持基于监控数据的阈值报警和通知。

三、Prometheus 与 Grafana 的安装

接下来我们将详细讲解如何在本地环境中安装 Prometheus 和 Grafana,并进行基础的配置。

1. Prometheus 的安装

步骤 1:下载 Prometheus

首先,从 Prometheus 官方下载页面 获取最新版本的 Prometheus。根据操作系统选择相应的版本并下载。

wget https://github.com/prometheus/prometheus/releases/download/v2.39.1/prometheus-2.39.1.linux-amd64.tar.gz
tar -xvzf prometheus-2.39.1.linux-amd64.tar.gz
cd prometheus-2.39.1.linux-amd64

步骤 2:配置 Prometheus

Prometheus 的配置文件通常命名为 prometheus.yml,用于定义需要监控的目标和其他相关配置。以下是一个基本的配置示例:

global:scrape_interval: 15s  # 默认抓取间隔scrape_configs:- job_name: 'prometheus'static_configs:- targets: ['localhost:9090']

这个配置定义了一个名为 prometheus 的 job,Prometheus 将每隔 15 秒从 localhost:9090 抓取数据。

步骤 3:启动 Prometheus

使用以下命令启动 Prometheus:

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

启动后,Prometheus 将默认运行在 localhost:9090

2. Grafana 的安装

步骤 1:下载 Grafana

从 Grafana 官方下载页面 获取最新版本的 Grafana,并根据操作系统进行安装。

例如,在 Ubuntu 上可以使用如下命令安装:

sudo apt-get install -y adduser libfontconfig1
wget https://dl.grafana.com/enterprise/release/grafana-enterprise_9.4.3_amd64.deb
sudo dpkg -i grafana-enterprise_9.4.3_amd64.deb

步骤 2:启动 Grafana

安装完成后,启动 Grafana 服务:

sudo systemctl start grafana-server
sudo systemctl enable grafana-server

Grafana 默认运行在 localhost:3000,初始用户名和密码都是 admin


四、Prometheus 和 Grafana 的集成

有了 Prometheus 和 Grafana 之后,我们需要将 Prometheus 作为数据源接入 Grafana 以实现数据可视化。

1. 配置 Grafana 数据源
  1. 登录 Grafana,进入仪表盘后选择“配置(齿轮图标)” > “数据源”。
  2. 点击“添加数据源”,选择 Prometheus 作为数据源。
  3. 在 URL 中输入 Prometheus 的地址(例如 http://localhost:9090),然后点击“保存和测试”。

成功配置后,Grafana 就可以从 Prometheus 获取数据进行展示。

2. 创建 Grafana 仪表盘
  1. 进入 Grafana 首页,点击左侧菜单的“创建” > “仪表盘”。

  2. 在新仪表盘页面,点击“添加新面板”。

  3. 选择 Prometheus 数据源,并在查询窗口中输入 PromQL 查询。例如,查询 CPU 使用率可以输入:

    rate(node_cpu_seconds_total{mode="idle"}[5m])
    
  4. 配置完成后,点击“应用”保存面板。

通过这种方式,可以逐步搭建符合自己需求的监控面板,展示系统的各项指标。


五、基础监控任务

Prometheus 和 Grafana 结合使用时,可以轻松实现多种监控任务。以下是一些常见的基础监控示例:

1. CPU 使用率监控

监控 CPU 使用率是服务器监控的基础任务之一。通过以下 PromQL 查询语句,可以获得 CPU 使用率的相关数据:

100 - (avg by(instance) (irate(node_cpu_seconds_total{mode="idle"}[5m])) * 100)
2. 内存使用情况监控

内存使用情况的监控同样非常重要,可以通过以下 PromQL 查询内存的使用率:

100 * (1 - (node_memory_MemAvailable_bytes / node_memory_MemTotal_bytes))
3. 磁盘 I/O 监控

磁盘 I/O 反映了磁盘的读写情况,通过监控这些指标,可以预防由于 I/O 瓶颈引发的性能问题。

rate(node_disk_read_bytes_total[5m])

和:

rate(node_disk_written_bytes_total[5m])
4. 网络流量监控

通过以下 PromQL 语句,可以监控网络的入站和出站流量:

rate(node_network_receive_bytes_total[5m])

和:

rate(node_network_transmit_bytes_total[5m])

六、告警设置

Prometheus 和 Grafana 不仅支持数据的收集和展示,还能够根据设定的规则发送告警。告警功能可以帮助管理员及时发现系统问题并采取措施。

1. Prometheus 告警规则配置

在 Prometheus 中,可以通过 alerting.rules 文件定义告警规则。例如,设置一个当 CPU 使用率超过 80% 时触发告警:

groups:
- name: examplerules:- alert: HighCPUUsageexpr: 100 - (avg by(instance) (irate(node_cpu_seconds_total{mode="idle"}[5m])) * 100) > 80for: 5mlabels:severity: warningannotations:summary: "High CPU usage detected"
2. Grafana 告警配置

在 Grafana 中可以基于面板设置告警规则:

  1. 选择一个需要告警的图表,进入“编辑”模式。
  2. 点击“报警”标签,选择“创建告警规则”。
  3. 设置告警条件、通知渠道(例如 Email、Slack)等,并保存。

七、总结

Prometheus 和 Grafana 是现代系统监控领域的强大工具组合。Prometheus 负责数据收集、存储和告警,而 Grafana 则专注于数据的可视化展示。通过本指南的详细步骤,你可以从零开始搭建一个基本的监控系统,帮助你更好地了解

和管理应用系统的性能和健康状态。

在使用过程中,可以进一步探索 Prometheus 的高级功能,如自定义导出器、复杂的 PromQL 查询等,以及 Grafana 丰富的插件和自定义报警配置,以更好地满足具体的监控需求。通过不断地优化和调整监控策略,你的系统将会变得更加健壮、可控。

文章来源:https://blog.csdn.net/2401_85639015/article/details/141873061
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ppmy.cn/news/1520967.html

相关文章

SQL Server 中 事务( Transaction )

在 SQL Server 中,Transaction(事务)是一种处理单位,它由一系列操作组成,这些操作要么全部成功,要么全部失败。事务是数据库管理系统中的一个核心概念,用于确保数据的完整性和一致性。 事务具有…

Linux 进程等待与替换

✏️ 代码引入&#xff1a; #include <stdio.h> #include <unistd.h> // _exit()要此头文件&#xff0c;使用方法与 exit()类似 #include <stdlib.h> // exit(),要此头文件// int fun() //{ // printf("call fun function done!\n"); // retu…

使用 Monai Bundle 和 Model Zoo 对医学影像数据进行分类-全脑133个结构分割

使用 Monai Bundle 和 Model Zoo 对医学影像数据进行分类-全脑133个结构分割 文章目录 导读Monai Bundle 和 Model Zoo简单介绍基于monai bundle的MRI全脑分割模型简介模型描述模型训练细节训练数据注意事项电脑配置完整的133个脑结构列表在3D slicer使用全脑结构分割模型完整的…

MySQL数据备份策略审计:确保数据安全与合规性

在企业环境中&#xff0c;数据备份策略的审计是确保数据安全、提高数据管理效率和满足合规要求的重要环节。MySQL作为广泛使用的数据库系统&#xff0c;其备份策略的审计可以帮助组织验证备份操作的有效性、监控备份过程并确保数据的完整性和可用性。本文将详细介绍如何在MySQL…

解决:axios 请求头url传参数组时发生400错误

一、前言 axios封装的网络请求&#xff0c;url传参时&#xff0c;数组作为参数传递&#xff0c;发生400错误请求时数组参数转url会保留 [] 二、原因 RFC3986&#xff1a;除了 数字 字母 -_.~ 不会被转义&#xff0c;其他字符都会被以百分号&#xff08;%&#xff09;后跟两位…

【Python机器学习】NLP词频背后的含义——距离和相似度

我们可以使用相似度评分&#xff08;和距离&#xff09;&#xff0c;根据两篇文档的表示向量间的相似度&#xff08;或距离&#xff09;来判断文档间有多相似。 我们可以使用相似度评分&#xff08;和举例&#xff09;来查看LSA主题模型与高维TF-IDF模型之间的一致性。在去掉了…

Spring Cloud LoadBalancer

1. 快速上手 SpringCloud 从 2020.0.1版本开始,移除了Ribbon 组件&#xff0c;使用Spring Cloud LoadBalancer 组件来代替 Ribbon 实现客户端负载均衡. 1.1 使用Spring Cloud LoadBalancer实现负载均衡 给 RestTemplate 这个Bean添加 LoadBalanced 注解就可以 Configuratio…

OCI编程高级篇(十九) 创建和使用OCI连接池

上一节介绍了连接池的概念和使用连接池的步骤&#xff0c;这一节看看具体的操作是怎样的&#xff0c;先看一下用到的函数原型和参数。 创建连接池函数OCIConnectionPoolCreate()&#xff0c;原型和参数如下。 sword OCIConnectionPoolCreate ( OCIEnv *envhp, OCIError …