Prometheus 和 Grafana科普介绍


1. Prometheus 简介

1.1 什么是 Prometheus?

Prometheus 是一个开源的 时间序列数据库监控系统,最初由 SoundCloud 开发,现在是 CNCF(云原生计算基金会) 的毕业项目。它专注于实时监控和告警,特别适合云原生和分布式系统的监控。

1.2 核心功能

  1. 数据采集
    • 通过 Pull 模型 定期从目标服务拉取指标数据。
    • 支持多种数据采集方式,如 HTTP 端点、Pushgateway(用于短期任务)、服务发现等。

  2. 数据存储
    • 使用高效的时间序列数据库(TSDB)存储指标数据。
    • 支持数据压缩和持久化。

  3. 查询语言
    • 提供强大的查询语言 PromQL,用于分析和聚合时间序列数据。

  4. 告警功能
    • 支持基于 PromQL 的告警规则配置。
    • 告警信息可以发送到 Alertmanager,进行分组、去重和路由。

  5. 多维度数据模型
    • 数据以键值对的形式存储,支持多维度标签(Labels),便于灵活查询和聚合。

  6. 生态系统
    • 提供丰富的客户端库(如 Go、Java、Python)和导出器(Exporters),支持多种应用和系统的监控。


2. Grafana 简介

2.1 什么是 Grafana?

Grafana 是一个开源的 数据可视化和监控工具,主要用于将时间序列数据以图表、仪表盘的形式展示出来。它支持多种数据源,包括 Prometheus、Elasticsearch、InfluxDB 等。

2.2 核心功能

  1. 数据可视化
    • 支持多种图表类型(如折线图、柱状图、饼图、热力图等)。
    • 提供丰富的仪表盘功能,支持自定义布局和交互。

  2. 多数据源支持
    • 支持 Prometheus、Elasticsearch、InfluxDB、Graphite、MySQL、PostgreSQL 等多种数据源。
    • 可以通过插件扩展支持更多的数据源。

  3. 实时监控
    • 支持实时数据的展示和刷新,帮助运维人员快速发现问题。

  4. 告警功能
    • 支持基于指标的告警规则配置,可以通过邮件、Slack、PagerDuty 等渠道发送告警通知。

  5. 权限管理
    • 支持用户和团队的角色管理,可以控制仪表盘的访问权限。


3. Prometheus + Grafana 的组合

3.1 工作原理

  1. 数据采集
    • Prometheus 从目标服务(如 Node Exporter、应用程序)拉取指标数据。
  2. 数据存储
    • Prometheus 将采集到的数据存储在本地的时间序列数据库中。
  3. 数据查询
    • Grafana 连接到 Prometheus,使用 PromQL 查询数据。
  4. 数据可视化
    • Grafana 将查询到的数据以图表和仪表盘的形式展示出来。
  5. 告警管理
    • Prometheus 的告警规则触发后,Alertmanager 处理告警并发送通知。

3.2 组合优势

  1. 强大的监控能力
    • Prometheus 提供高效的数据采集和存储,Grafana 提供灵活的数据可视化。
  2. 实时性
    • 支持实时数据的采集、存储和展示。
  3. 灵活性
    • 支持多种数据源和图表类型,适应不同的监控需求。
  4. 开源和社区支持
    • 两者都是开源工具,拥有活跃的社区和丰富的插件生态。

4. 典型使用场景

4.1 系统监控

场景:监控服务器、虚拟机、容器的 CPU、内存、磁盘、网络等性能指标。
实现
• 使用 Node Exporter 收集主机指标。
• Prometheus 采集 Node Exporter 的数据。
• Grafana 展示系统性能仪表盘。

4.2 应用性能监控(APM)

场景:监控应用的响应时间、错误率、吞吐量等性能指标。
实现
• 使用 Prometheus 客户端库在应用中暴露指标。
• Prometheus 采集应用指标。
• Grafana 展示应用性能仪表盘。

4.3 Kubernetes 监控

场景:监控 Kubernetes 集群的状态和资源使用情况。
实现
• 使用 kube-state-metrics 和 cAdvisor 收集 Kubernetes 指标。
• Prometheus 采集 Kubernetes 指标。
• Grafana 展示 Kubernetes 集群仪表盘。

4.4 数据库监控

场景:监控 MySQL、PostgreSQL、MongoDB 等数据库的性能和状态。
实现
• 使用 Prometheus 导出器(如 mysqld_exporter)收集数据库指标。
• Prometheus 采集数据库指标。
• Grafana 展示数据库性能仪表盘。

4.5 业务监控

场景:监控业务指标,如用户活跃度、订单量、交易成功率等。
实现
• 在应用中暴露业务指标。
• Prometheus 采集业务指标。
• Grafana 展示业务仪表盘。


5. 示例:搭建 Prometheus + Grafana 监控系统

5.1 部署 Prometheus

  1. 下载 Prometheus:
    wget https://github.com/prometheus/prometheus/releases/download/v2.30.3/prometheus-2.30.3.linux-amd64.tar.gz
    tar -xvf prometheus-2.30.3.linux-amd64.tar.gz
    cd prometheus-2.30.3.linux-amd64
    
  2. 启动 Prometheus:
    ./prometheus --config.file=prometheus.yml
    

5.2 部署 Grafana

  1. 下载并安装 Grafana:
    sudo apt-get install -y adduser libfontconfig1
    wget https://dl.grafana.com/oss/release/grafana-8.1.5.linux-amd64.tar.gz
    tar -xvf grafana-8.1.5.linux-amd64.tar.gz
    cd grafana-8.1.5
    
  2. 启动 Grafana:
    ./bin/grafana-server
    

5.3 配置数据源和仪表盘

  1. 打开 Grafana(默认地址:http://localhost:3000),登录(默认用户名/密码:admin/admin)。
  2. 添加 Prometheus 数据源:
    • 在 Grafana 中,进入 Configuration > Data Sources,选择 Prometheus
    • 配置 Prometheus 的 URL(如 http://localhost:9090)。
  3. 导入仪表盘:
    • 在 Grafana 中,进入 Dashboards > Manage,选择 Import
    • 输入仪表盘 ID(如 1860 用于 Node Exporter 监控),加载并保存。

6. 总结

PrometheusGrafana 是监控和可视化领域的黄金组合。Prometheus 提供强大的数据采集和存储能力,Grafana 提供灵活的数据可视化和仪表盘功能。它们广泛应用于系统监控、应用性能监控、Kubernetes 监控、数据库监控和业务监控等场景。通过结合使用这两个工具,可以构建高效、实时的监控系统,帮助团队快速发现和解决问题。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

15:00面试,15:06就出来了,问的问题有点变态。。。

从小厂出来,没想到在另一家公司又寄了。 到这家公司开始上班,加班是每天必不可少的,看在钱给的比较多的份上,就不太计较了。没想到8月一纸通知,所有人不准加班,加班费不仅没有了,薪资还要降40%…

ORACLE 19.8版本数据库环境EXPDP导数据的报错处理

近期用户在做EXPDP导出时,报错异常termination终止;EXPDP本身是简单的功能并且这个环境也是经常做导出的,到底是什么原因导致了这个问题呢? 导出脚本报错: 分析导出日志,当时系统资源充足但是进程启动失败,…

【Editor】动态添加/移除宏定义

ProjectSetting中OtherSettings页签 执行工具指令 using UnityEditor; using UnityEngine; using System.Linq;public class Tools : Editor {//在菜单栏中点击自动添加[MenuItem("Tools/AddScriptingSymbols")]private static void AddScriptingSymbols(){//获取当…

Web-Machine-N7靶机实战攻略

1.安装并开启靶机 下载VirtualBox:https://www.virtualbox.org 导入虚拟机 设置为桥接模式 2.获取靶机IP Kali设为桥接模式 3.访问靶机 4.获取敏感目录文件和端口 gobuster dir -u http://172.16.2.68 -w /usr/share/wordlists/dirbuster/directory-list-2.3-me…

C语言实验:数组,指针实现问题求解

实验目的:掌握数组,指针的使用 实验内容: 1直接选择排序 2字符串运算 3交换数字 流程图: 1直接选择排序 2字符串运算 3交换数字 程序调试 1直接选择排序 1-1出现问题(贴图并说明) 错误原因&#xf…

【HarmonyOS Next】鸿蒙中App、HAP、HAR、HSP概念详解

【HarmonyOS Next】鸿蒙中App、HAP、HAR、HSP概念详解 (图1-1) 一、鸿蒙中App、HAP、HAR、HSP是什么? (1)App Pack(Application Package) 是应用发布的形态,上架应用市场是以App Pa…

LiteIDE中配置golang编译生成无CMD窗口EXE的步骤

LiteIDE中配置golang编译生成无CMD窗口EXE的步骤 一、环境配置1、设置GOROOT‌2、配置GOPATH‌ 二、项目编译参数设置1、新建/打开项目‌2、修改编译配置‌3、其他优化选项(可选)‌ 三、构建与验证1、编译生成EXE‌2、验证无窗口效果‌ 四、注意事项 一、…

暗光增强技术研究进展与产品落地综合分析(2023-2025)

一、引言 暗光增强技术作为计算机视觉与移动影像领域的核心研究方向之一,近年来在算法创新、硬件适配及产品落地方面取得了显著进展。本文从技术研究与产业应用两个维度,系统梳理近三年(2023-2025)该领域的关键突破,并对比分析主流手机厂商的影像技术优劣势。 二、暗光增…

理解 RAG 第四部分:RAGA 和其他评估框架

检索增强生成(RAG) 在扩展独立大型语言模型(LLM)的限制和克服其诸多局限性方面发挥了关键作用。通过整合检索器,RAG 提高了响应相关性和事实准确性:它只需实时利用外部知识源(如矢量文档库),并在原始用户查询或提示中添…

基于视觉的核桃分级与套膜装置研究(大纲)

基于视觉的核桃分级与套膜装置研究:从设计到实现的完整指南 (SolidWorks、OpenCV、STM32开发实践) 🌟 项目背景与目标 1.1 为什么选择视觉分级与套膜? 产业痛点: 中国核桃年产量全球第一,但…

蓝桥杯2023年第十四届省赛真题-子矩阵

题目来自DOTCPP: 暴力思路(两个测试点超时): 题目要求我们求出子矩阵的最大值和最小值的乘积,我们可以枚举矩阵中的所有点,以这个点为其子矩阵的左上顶点,然后判断一下能不能构成子矩阵。如果可…

系统思考—啤酒游戏经营决策沙盘模拟

再次感谢文华学院的邀请,为经纬集团管理层带来 《啤酒游戏经营决策沙盘》! 很多朋友问:“最近是不是啤酒游戏上的少了?” 其实,真正的关键不是游戏本身,而是——如何让大家真正看见复杂系统中的隐性结构。 …

Linux 驱动开发笔记--1.驱动开发的引入

1.引入 Linux内核的整体架构本就非常庞大,其包含的组件也非常多。而我们怎样把需要的部分都包含在内核中呢? 一种方法是把所有需要的功能都编译到Linux内核中。这会导致两个问题,一是生成的内核会很大,二是如果我们要在现有的内核中新增或删…

跨域问题确认及处理

背景如下: 近期在做的项目中,有个奇怪的需求,需要在JSP项目中嵌套一个VUE项目,原因是:JSP项目是在运且不大方便重构的一个项目,新需求又想为了未来着想做一套单独的项目,无奈只能嵌套。 当项目开…

Qwen2.5-VL 开源视觉大模型,模型体验、下载、推理、微调、部署实战

一、Qwen2.5-VL 简介 Qwen2.5-VL,Qwen 模型家族的旗舰视觉语言模型,比 Qwen2-VL 实现了巨大的飞跃。 欢迎访问 Qwen Chat (Qwen Chat)并选择 Qwen2.5-VL-72B-Instruct 进行体验。 1. 主要增强功能 1)直观地理解事物&…

实时监控、数据分析!Web-Check构建你的网站健康检测系统实操方案

文章目录 前言1.关于Web-Check2.功能特点3.安装Docker4.创建并启动Web-Check容器5.本地访问测试6.公网远程访问本地Web-Check7.内网穿透工具安装8.创建远程连接公网地址9.使用固定公网地址远程访问 前言 在数字化运维领域,网站稳定性保障始终是开发者和运维团队的核…

为什么在外置容器时要保证打包方式是war包?

目录 1. 符合Java EE标准 2. 打包结构清晰 3. 便于部署 4. 支持热部署 5. 与Spring Boot的对比 示例:将Spring Boot应用打包为WAR文件 在传统的Java Web应用开发中,当使用外置容器(如Tomcat、Jetty等)部署应用时&#xff0c…

【大语言模型_8】vllm启动的模型通过fastapi封装增加api-key验证

背景: vllm推理框架启动模型不具备api-key验证。需借助fastapi可以实现该功能 代码实现: rom fastapi import FastAPI, Header, HTTPException, Request,Response import httpx import logging# 创建 FastAPI 应用 app FastAPI() logging.basicConfig(…

【Linux】快速上手Makeflie CMake

🦄个人主页:修修修也 🎏所属专栏:Linux ⚙️操作环境:Xshell (操作系统:Ubuntu 22.04 server 64bit) 目录 快速上手Makefile 基本结构 变量 自动变量 常用目标 快速上手CMake CMake与Makefile的关系 CMake的使用步骤 常用命令 (1) 基本配置 (2) 变量与选…

智能蔬菜收获移动平台设计(大纲)

智能蔬菜收获移动平台设计 基于视觉识别与机械臂协同的自动化采摘系统 第一章 绪论 1.1 研究背景与意义 农业自动化需求: 人力成本高、采摘效率低(尤其在温室、大棚等复杂环境)传统机械采摘易造成蔬菜损伤,缺乏柔性化能力 技…