【架构】prometheus+grafana系统监控

news2024/10/2 7:56:23

文章目录

      • 一、Prometheus简介
      • 二、Grafana简介
      • 三、Prometheus+Grafana系统监控的实现
      • 四、优势与应用场景
    • 参考

Prometheus+Grafana系统监控是一个强大的组合,用于实时监控和分析系统的性能与状态。以下是对这一组合在系统监控中的详细解析:

一、Prometheus简介

Prometheus(普罗米修斯)是一个开源的系统监控和警报工具包,由Go语言开发,是云原生计算基金会(CNCF)的项目之一。它主要特点包括:

  • 时间序列数据库:Prometheus的核心是一个时间序列数据库,能够高效存储来自各种应用程序和系统的指标数据,如CPU利用率、内存使用情况、HTTP请求响应时间等。
  • 灵活的查询语言:PromQL(Prometheus Query Language)允许用户对存储的指标数据进行复杂的查询和聚合操作。
  • 强大的警报系统:Prometheus可以根据定义的规则触发警报,并通过多种渠道(如邮件、Slack等)发送通知。
  • 不依赖分布式存储:单个节点即可实现自治,易于部署和扩展。

Prometheus四种数据类型
Counter

Counter用于累计值,例如记录请求次数、任务完成数、错误发生次数。一直增加,不会减少。重启进程后,会被重置。

例如:http_response_total{method=“GET”,endpoint="/api/tracks"} 100,10秒后抓取http_response_total{method=“GET”,endpoint="/api/tracks"} 100。

Gauge

Gauge常规数值,例如 温度变化、内存使用变化。可变大,可变小。重启进程后,会被重置。

例如: memory_usage_bytes{host=“master-01”} 100 < 抓取值、memory_usage_bytes{host=“master-01”} 30、memory_usage_bytes{host=“master-01”} 50、memory_usage_bytes{host=“master-01”} 80 < 抓取值。

Histogram

Histogram(直方图)可以理解为柱状图的意思,常用于跟踪事件发生的规模,例如:请求耗时、响应大小。它特别之处是可以对记录的内容进行分组,提供count和sum全部值的功能。

例如:{小于10=5次,小于20=1次,小于30=2次},count=7次,sum=7次的求和值。

Summary

Summary和Histogram十分相似,常用于跟踪事件发生的规模,例如:请求耗时、响应大小。同样提供 count 和 sum 全部值的功能。

例如:count=7次,sum=7次的值求值。

它提供一个quantiles的功能,可以按%比划分跟踪的结果。例如:quantile取值0.95,表示取采样值里面的95%数据。

二、Grafana简介

Grafana是一个开源的数据可视化和监控平台,由Torkel Ödegaard于2014年创建。其主要特点包括:

  • 多数据源支持:Grafana能够连接多种数据源,包括Prometheus、Graphite、Elasticsearch、InfluxDB等,并在同一仪表板中统一展示数据。
  • 丰富的可视化选项:提供多种图表类型和配置选项,如折线图、柱状图、仪表板、热图等,用户可以根据需求自由组合和定制。
  • 告警功能:支持设置警报规则,并在达到特定条件时发送通知。
  • 插件生态系统:拥有丰富的插件生态系统,用户可以根据需要扩展和定制功能。
    在这里插入图片描述

三、Prometheus+Grafana系统监控的实现

  1. 环境准备

    • 选择合适的操作系统(如Ubuntu、CentOS等)。
    • 安装Prometheus和Grafana,以及必要的Exporter(如Node Exporter用于收集Linux系统指标)。
  2. Prometheus配置

    • 下载并解压Prometheus安装包。
    • 配置prometheus.yml文件,定义监控目标和抓取间隔。
    • 启动Prometheus服务,并验证其正常运行。
  3. Grafana配置

    • 下载并解压Grafana安装包。
    • 启动Grafana服务,并使用默认用户名和密码登录。
    • 在Grafana中添加Prometheus数据源,并配置数据源URL。
  4. 创建仪表板

    • 在Grafana中创建新的仪表板。
    • 添加图表组件,并设置查询以展示所需的指标数据(如CPU使用率、内存占用等)。
    • 自定义图表样式和布局,以满足监控需求。
  5. 配置告警

    • 在Prometheus中定义告警规则文件(如alerts.yml)。
    • 在Grafana中添加告警规则,并配置通知渠道(如邮件、Slack等)。
    • 测试告警功能,确保在指标异常时能够及时收到通知。

四、优势与应用场景

Prometheus+Grafana组合在系统监控中具有以下优势:

  • 实时监控:能够实时监控系统的各项性能指标,确保系统稳定运行。
  • 可视化展示:通过Grafana提供的丰富图表和仪表板,用户可以直观地了解系统状态。
  • 灵活扩展:支持多种数据源和插件,可以根据需求灵活扩展监控范围和功能。
  • 告警通知:强大的告警系统能够在指标异常时及时通知相关人员,便于快速响应和处理问题。

该组合广泛应用于云计算、微服务架构、容器化部署等场景,为系统稳定性和性能提供了有力的保障。

参考

【Prometheus】Prometheus 监控 + Grafana 可视化平台部署
Prometheus+grafana监控系统-学习笔记
大数据监控系列(一)——Prometheus+Grafana监控概述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

postgresql僵尸进程的处理思路

简介 僵尸进程&#xff08;zombie process&#xff09;是指一个已经终止但仍然在进程表中保留条目的进程。正常情况下&#xff0c;当一个进程完成执行并退出时&#xff0c;操作系统会通过父进程调用的wait()或waitpid()系统调用来收集该子进程的退出状态。如果父进程未及时调用…

快速了解:MySQL InnoDB和MyISAM的区别

目录 一、序言二、InnoDB和MyISAM对比1、InnoDB特性支持如下2、MyISAM特性支持如下 三、两者核心区别1、事务支持2、锁机制3、索引结构4、缓存机制5、故障恢复6、使用场景 一、序言 在MySQL 8.0中&#xff0c;InnoDB是默认的存储引擎。除了InnoDB&#xff0c;MySQL还支持其它的…

SQL - 函数

1. 操作类函数 这一类函数针对数据结构&#xff0c;表格进行筛选操作 1.1 GROUP BY 根据某个单一列中属性或者多个列对结果集进行分组 SELECT column1, SUM(column2) FROM table GROUP BY column1; 上述代码将所选择列进行column1中的属性分组&#xff0c;作为每一行的索引…

如何在idea使用RabbitMQ

一.RabbitMQ的安装和访问 1.在linux虚拟机安装RabbitMQ docker run -d --name rabbitmq -p 5671:5671 -p 5672:5672 -p 4369:4369 -p 25672:25672 -p 15671:15671 -p 15672:15672 rabbitmq:3.9.9-management 2.启动RabbitMQ docker start rabbitmq 3.访问 RabbitMQ网页 在自…

【Python】Uvicorn:Python 异步 ASGI 服务器详解

Uvicorn 是一个为 Python 设计的 ASGI&#xff08;异步服务器网关接口&#xff09;Web 服务器。它填补了 Python 在异步框架中缺乏一个最小化低层次服务器/应用接口的空白。Uvicorn 支持 HTTP/1.1 和 WebSockets&#xff0c;是构建现代异步Web应用的强大工具。 ⭕️宇宙起点 &a…

C++网络编程之IP地址和端口

概述 IP地址和端口共同定义了网络通信中的源和目标。IP地址负责将数据从源设备正确地传输到目标设备&#xff0c;而端口则确保在目标设备上数据被交付到正确的应用或服务。因此&#xff0c;在网络编程中&#xff0c;IP地址和端口是密不可分的两个概念&#xff0c;共同构成了网络…

Why RTSP?RTSP播放器优势探究

RTSP优势探究 好多开发者搞不清楚&#xff0c;低延迟的传输&#xff0c;到底是走RTMP、WebRTC还是RTSP&#xff1f;如果走RTSP&#xff0c;RTSP播放器的优势有哪些&#xff1f;能否达到期望的延迟&#xff1f;答案是肯定的&#xff0c;废话不多说&#xff0c;上效果图&#xf…

Power apps:一次提交多项申请

1、添加一个Form&#xff0c;导入sharepoint列表&#xff0c;添加确认&#xff0c;继续&#xff0c;取消按钮 2、在页面的onvisible属性中添加 Set(applynumber,Last(付款申请表).申请编号1); #定义一个申请编号变量&#xff0c;每次申请&#xff0c;就将列表最后一个…

医疗陪诊APP开发实战:从互联网医院系统源码开始

本文将从互联网医院系统源码出发&#xff0c;深入探讨医疗陪诊APP的开发实战。 一、从互联网医院系统源码入手 开发医疗陪诊APP的基础在于互联网医院系统的源码。互联网医院系统通常包括以下几个模块&#xff1a; 1.用户管理&#xff1a;用户注册、登录、信息管理等功能。 …

C++继承的三种方式[ACCESS]

C继承的定义 两个类的继承关系在派生类中声明&#xff0c;派生类定义使用以下语法&#xff1a; class DerivedClass: [ACCESS] BaseClass{ /…/ }; 冒号&#xff08;:&#xff09;后的[ACCESS]是继承的最高权限级别符&#xff0c;可以是以下三个值&#xff08;存取权限级别&am…

fpga系列 硬件(时序收敛):触发器建立时间(setuptime)

触发器 电平触发、边沿触发和脉冲触发是三种主要的触发形式。always (posedge clk or negedge rst_n) 是一个典型的 Verilog 语句&#xff0c;用于定义一个带复位的触发器。D触发器是一种基本的数字存储元件&#xff0c;主要用于数据存储和时序控制。 D触发器的建立时间和保持…

Zabbix自动发现SNMP主机

前言 利用Zabbix监控DELL R740主机硬件&#xff0c;监控通过自动发现主机&#xff0c;链接SNMP监控模板 一、配置自动发现 自动发现脚本 cat discovery_host.pyfrom os.path import abspath, dirname, join import json import sysreload(sys) sys.setdefaultencoding(utf-8…

【2024】前端学习笔记11-网页布局-弹性布局flex

学习笔记 网页布局弹性布局&#xff1a;flex案例&#xff1a;flex布局案例 网页布局 在页面布局中&#xff0c;display属性用于设置一个元素的显示方式。它可以指定元素是作为块级元素、内联元素还是充当表格元素显示。 display的常见属性值&#xff1a; block&#xff1a;将…

前端——Ajax和jQuery

一、Ajax Ajax即“Asynchronous Javascript And XML”&#xff08;异步 JavaScript 和 XML&#xff09;&#xff0c; 通过 JS 异步的向服务器发送请 求并接收响应数据。 同步访问&#xff1a;当客户端向服务器发送请求时&#xff0c;服务器在处理的过程中&#xff0c;浏览器…

AutoGen实现多代理-Planning_and_Stock_Report_Generation(六)

1. 案例背景 本节内容是构建Agent组&#xff0c;通过广播模式&#xff0c;实现管理者对agent工作流的管理。本实验链接&#xff1a;传送门 2. 代码实践 2.1 环境设置 llm_config{"model": "gpt-4-turbo"}# 工作任务描述 task "Write a blogpost a…

【CSS3】css开篇基础(1)

1.❤️❤️前言~&#x1f973;&#x1f389;&#x1f389;&#x1f389; Hello, Hello~ 亲爱的朋友们&#x1f44b;&#x1f44b;&#xff0c;这里是E绵绵呀✍️✍️。 如果你喜欢这篇文章&#xff0c;请别吝啬你的点赞❤️❤️和收藏&#x1f4d6;&#x1f4d6;。如果你对我的…

【树莓派系列】树莓派首次开机配置

树莓派首次开机配置 文章目录 树莓派首次开机配置1.镜像烧录2.开启串口调试1.无屏幕2.有屏幕3.串口登录系统 3.配置网络VNC与SSH的区别 4.更新vim5.固定IP地址6.开启SSH&#xff0c;网络登录开发板7.xrdp图形化登录开发板XRDP与VNC区别8.更新国内下载镜像源9.vscode连接开发板1…

C语言 | Leetcode C语言题解之第450题删除二叉搜索树中的节点

题目&#xff1a; 题解&#xff1a; struct TreeNode* deleteNode(struct TreeNode* root, int key){struct TreeNode *cur root, *curParent NULL;while (cur && cur->val ! key) {curParent cur;if (cur->val > key) {cur cur->left;} else {cur c…

OpenAi FunctionCalling 案例详解

源码详细讲解 pdf 及教学视频下载链接&#xff1a;点击这里下载 FunctionCalling的单一函数调用 天气预报查询&#xff08;今天长沙的天气如何&#xff1f;&#xff09; import json import requests from openai import OpenAIclient OpenAI()location "长沙"…