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

2024-09-04 00:20

本文主要是介绍Prometheus与Grafana入门:从安装到基础监控的完整指南,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

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 丰富的插件和自定义报警配置,以更好地满足具体的监控需求。通过不断地优化和调整监控策略,你的系统将会变得更加健壮、可控。

这篇关于Prometheus与Grafana入门:从安装到基础监控的完整指南的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1134466

相关文章

Spring Security 从入门到进阶系列教程

Spring Security 入门系列 《保护 Web 应用的安全》 《Spring-Security-入门(一):登录与退出》 《Spring-Security-入门(二):基于数据库验证》 《Spring-Security-入门(三):密码加密》 《Spring-Security-入门(四):自定义-Filter》 《Spring-Security-入门(五):在 Sprin

流媒体平台/视频监控/安防视频汇聚EasyCVR播放暂停后视频画面黑屏是什么原因?

视频智能分析/视频监控/安防监控综合管理系统EasyCVR视频汇聚融合平台,是TSINGSEE青犀视频垂直深耕音视频流媒体技术、AI智能技术领域的杰出成果。该平台以其强大的视频处理、汇聚与融合能力,在构建全栈视频监控系统中展现出了独特的优势。视频监控管理系统EasyCVR平台内置了强大的视频解码、转码、压缩等技术,能够处理多种视频流格式,并以多种格式(RTMP、RTSP、HTTP-FLV、WebS

大模型研发全揭秘:客服工单数据标注的完整攻略

在人工智能(AI)领域,数据标注是模型训练过程中至关重要的一步。无论你是新手还是有经验的从业者,掌握数据标注的技术细节和常见问题的解决方案都能为你的AI项目增添不少价值。在电信运营商的客服系统中,工单数据是客户问题和解决方案的重要记录。通过对这些工单数据进行有效标注,不仅能够帮助提升客服自动化系统的智能化水平,还能优化客户服务流程,提高客户满意度。本文将详细介绍如何在电信运营商客服工单的背景下进行

Zookeeper安装和配置说明

一、Zookeeper的搭建方式 Zookeeper安装方式有三种,单机模式和集群模式以及伪集群模式。 ■ 单机模式:Zookeeper只运行在一台服务器上,适合测试环境; ■ 伪集群模式:就是在一台物理机上运行多个Zookeeper 实例; ■ 集群模式:Zookeeper运行于一个集群上,适合生产环境,这个计算机集群被称为一个“集合体”(ensemble) Zookeeper通过复制来实现

CentOS7安装配置mysql5.7 tar免安装版

一、CentOS7.4系统自带mariadb # 查看系统自带的Mariadb[root@localhost~]# rpm -qa|grep mariadbmariadb-libs-5.5.44-2.el7.centos.x86_64# 卸载系统自带的Mariadb[root@localhost ~]# rpm -e --nodeps mariadb-libs-5.5.44-2.el7

Centos7安装Mongodb4

1、下载源码包 curl -O https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-4.2.1.tgz 2、解压 放到 /usr/local/ 目录下 tar -zxvf mongodb-linux-x86_64-rhel70-4.2.1.tgzmv mongodb-linux-x86_64-rhel70-4.2.1/

综合安防管理平台LntonAIServer视频监控汇聚抖动检测算法优势

LntonAIServer视频质量诊断功能中的抖动检测是一个专门针对视频稳定性进行分析的功能。抖动通常是指视频帧之间的不必要运动,这种运动可能是由于摄像机的移动、传输中的错误或编解码问题导致的。抖动检测对于确保视频内容的平滑性和观看体验至关重要。 优势 1. 提高图像质量 - 清晰度提升:减少抖动,提高图像的清晰度和细节表现力,使得监控画面更加真实可信。 - 细节增强:在低光条件下,抖

Centos7安装JDK1.8保姆版

工欲善其事,必先利其器。这句话同样适用于学习Java编程。在开始Java的学习旅程之前,我们必须首先配置好适合的开发环境。 通过事先准备好这些工具和配置,我们可以避免在学习过程中遇到因环境问题导致的代码异常或错误。一个稳定、高效的开发环境能够让我们更加专注于代码的学习和编写,提升学习效率,减少不必要的困扰和挫折感。因此,在学习Java之初,投入一些时间和精力来配置好开发环境是非常值得的。这将为我

【Prometheus】PromQL向量匹配实现不同标签的向量数据进行运算

✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,阿里云开发者社区专家博主,CSDN全栈领域优质创作者,掘金优秀博主,51CTO博客专家等。 🏆《博客》:Python全栈,前后端开发,小程序开发,人工智能,js逆向,App逆向,网络系统安全,数据分析,Django,fastapi

零基础学习Redis(10) -- zset类型命令使用

zset是有序集合,内部除了存储元素外,还会存储一个score,存储在zset中的元素会按照score的大小升序排列,不同元素的score可以重复,score相同的元素会按照元素的字典序排列。 1. zset常用命令 1.1 zadd  zadd key [NX | XX] [GT | LT]   [CH] [INCR] score member [score member ...]