prometheus基础,结合node_exporter监控节点

文章目录

  • 一、Prometheus是什么
  • 二、exporters是什么
  • 三、node_exporter
  • 四、安装 Prometheus 和 node_exporter
    • 下载
    • 运行 prometheus
    • 运行 node_exporter
  • 五、配置 Prometheus 收集监控数据
  • 总结


一、Prometheus是什么

Prometheus 是一个开源的监控和警报工具,它记录任何纯数字时间序列,适用于监控操作系统和硬件指标,例如资源使用率和饱和度,也适用于监控应用程序的响应时间、错误率等。由于其设计简单且易于扩展,它尤其适合于微服务架构的监控。

Prometheus 的主要特点包括:

  1. 多维数据模型:Prometheus 使用时间序列数据来存储监控信息,每个时间序列都通过指标名和键值对(称为标签)来唯一标识。

  2. 灵活的查询语言:Prometheus 提供了一种强大的查询语言 PromQL(Prometheus Query Language),允许用户非常灵活地检索和聚合数据。

  3. 无依赖存储:Prometheus 存储其数据在本地磁盘上,并以高效压缩方式进行存储,不依赖于外部存储系统。

  4. 服务发现:Prometheus 支持多种服务发现机制,可以动态发现目标服务,并自动监控这些服务。

  5. 多种模式的数据抓取:Prometheus 主要通过主动拉取(pull)模式获取指标数据,但也支持被动推送(push)模式。

  6. 支持多种图形和仪表板:虽然 Prometheus 自身带有一个基础的用户界面用于执行 PromQL 查询和查看警报状态,但它通常与 Grafana 这样的可视化工具一起使用,以创建更复杂的仪表板。

  7. 告警:Prometheus 的 Alertmanager 可以处理告警,支持多种方式通知用户,如邮件、聊天平台等。

二、exporters是什么

Prometheus 的 exporters 是用于从第三方系统中导出监控数据的工具或服务,它们将这些数据转换为 Prometheus 可以理解的格式。因为 Prometheus 主要通过 HTTP 协议拉取(pull)指标数据,exporters 就扮演了数据适配器的角色,让各种不同来源的监控信息能够被 Prometheus 服务器采集和存储。

Exporters 分为两大类:

  • 官方 Exporters:由 Prometheus 团队官方提供支持的 exporters,通常用于常见的基础设施组件和服务,如 node_exporter(用于主机级别的指标)、mysqld_exporter(用于 MySQL 数据库的指标)等。
  • 社区 Exporters:由社区成员开发和维护的 exporters,覆盖了广泛的应用和服务,比如针对不同数据库、消息队列、HTTP 服务器等的 exporters。

Prometheus 提供了多种官方的和社区贡献的导出器(exporters)和集成,用于收集不同系统和服务的监控数据。以下是一些常用的 Prometheus 导出器:

  1. node_exporter: 收集节点的资源运行状况
  2. blackbox_exporter: 用于对网络端点进行探测,支持检查 HTTP、HTTPS、DNS、TCP 和 ICMP。
  3. mysqld_exporter: 专门用于收集 MySQL 服务器的指标。
  4. postgres_exporter: 用于收集 PostgreSQL 数据库的性能指标。
  5. redis_exporter: 收集 Redis 数据库的指标。
  6. snmp_exporter: 用于通过 SNMP 协议收集网络设备的指标。
  7. haproxy_exporter: 用于收集 HAProxy 负载均衡器的性能指标。
  8. kafka_exporter: 用于监控 Apache Kafka 集群的指标。
  9. grafana_loki: Loki 是 Grafana 提供的日志聚合系统,提供与 Prometheus 兼容的查询接口。
  10. cdvisor: 用于收集容器化环境中的容器运行时和资源使用情况的指标。
  11. kube-state-metrics: 用于 Kubernetes 集群,收集有关集群状态的各种对象的指标。
  12. prometheus-operator: 为 Kubernetes 提供了一种简化 Prometheus 监控集群部署的方法。
  13. pushgateway: 用于支持短期作业和批处理作业的场景,这些作业无法长时间运行以等待 Prometheus 的拉取操作。
  14. alertmanager: 虽然不是导出器,但 Alertmanager 是 Prometheus 生态系统中的关键组件,负责处理告警。

三、node_exporter

node_exporter 是 Prometheus 生态系统中的一个组件,它负责收集并暴露被监控主机上的硬件和操作系统级别的指标数据。node_exporter 作为一个独立的服务运行在每台需要被监控的机器上,它通过采集系统信息来提供关于服务器的各种指标,例如 CPU、内存、磁盘和网络使用情况等。

这些指标以 Prometheus 标准的格式暴露出来,通常是 HTTP 接口的形式,允许 Prometheus 服务器定期拉取这些数据。node_exporter 提供了丰富的指标,可以帮助系统管理员和开发人员监控系统资源使用情况,分析性能瓶颈,并在问题发生时及时响应。

四、安装 Prometheus 和 node_exporter

下载

https://prometheus.io/download/#prometheus
https://prometheus.io/download/#node_exporter

根据你的操作系统选择下载,我这里下载windows的prometheus和Linux的node_exporter,两个程序都是解压既可以直接运行
在这里插入图片描述
在这里插入图片描述

运行 prometheus

解压后,进去目录,双击prometheus.exe
在这里插入图片描述

访问:http://localhost:9090/
看到下面的页面:

在这里插入图片描述

运行 node_exporter

把 node_exporter-1.7.0.linux-amd64.tar.gz 拉进去linux目录

tar -zxvf node_exporter-1.7.0.linux-amd64.tar.gz

进去解压目录: nohup ./node_exporter &

启动成功后,可以通过节点ip访问地址: http://ip:9100/metrics

可以看到:
在这里插入图片描述

五、配置 Prometheus 收集监控数据

进去 promethues 解压目录,修改 promethues.yml 文件:

加入下面的内容

在这里插入图片描述
重启 prometheus

访问刚才的 prometheus 页面,选中Graph,输入 key ,可以查询出已经收集的节点监控数据:

在这里插入图片描述

当然也支持 PromQL ,例如内存使用率:(1 - (node_memory_MemAvailable_bytes / node_memory_MemTotal_bytes)) * 100

在这里插入图片描述

node_exporter 提供的常见指标类型:

  • CPU: CPU 使用率、用户空间和内核空间的时间、闲置时间、IO 等待时间等。

    例如:node_cpu_seconds_total 指标会显示 CPU 花费在不同模式下的时间(用户模式、系统模式等)。

  • 内存: 总内存、可用内存、使用中的内存、缓存、交换空间等。

    例如:node_memory_MemAvailable_bytes 或 node_memory_MemFree_bytes 指标会显示可用或空闲的内存量。

  • 磁盘: 磁盘使用情况、IO 统计、文件系统的大小和使用量等。

    例如:node_filesystem_avail_bytes 指标会显示某个文件系统上可用的字节数。

  • 网络: 网络接口的数据包发送和接收统计、错误计数、丢包等。

    例如:node_network_receive_bytes_total 和 node_network_transmit_bytes_total 指标分别显示接收和发送的总字节数。

  • 系统信息: 系统启动时间、登录用户数、系统负载等。

    例如:node_boot_time_seconds 指标显示系统最后一次启动的时间戳。

  • 进程: 系统中运行的进程数量、进程状态等。

    例如:node_procs_running 指标显示当前正在运行的进程数。

  • 文件描述符: 文件描述符的使用情况。

    例如:node_filefd_allocated 指标显示已分配的文件描述符数量。

总结

欢迎指出我的错误!

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

关于随机数的设定和随机噪声

以下是设立随机数和随机噪声的code: 设定随机数的方法有很多,下面代码是通过numpy的API设定随机数,除了numpy,实际上scikit,tf,pytorch都有设定随机数的API的 # Set a random seed for reproducibility(0…

排序算法介绍(五)归并排序

0. 简介 归并排序(Merge Sort)是一种分治思想的应用,它将待排序的数组不断拆分成小数组,直到每个小数组只有一个元素,然后将小数组两两合并,直到最终得到有序的数组。 1. 归并排序的实现 归并排序的基本思…

前端笔记(二):CSS 选择器与特性

CSS(层叠样式表)是一种样式表语言,用于描述HTML或XML文档的呈现方式。它定义了如何在屏幕、纸张或其他媒体上显示文档的样式、布局和外观。 里面的代码由 选择器 { } 组成 体验 CSS CSS 可以让我们界面变得更加美观,这是 CSS 的…

flutter使用动态路由传参的最小案例

flutter中使用动态路由传递参数的封装案例,子组件页面只需要接收arguments参数即可,参数是一个map,里面包含有所需要的参数,类似于json。在MaterialApp中配置onGenerateRoute,然后动态判断传递参数: route…

MobaXterm连接相关

其实最终解决的方法,还是,因为要远程连接的是个局域网ip,我所在的ip和要连接的这个不在同一个局域网内,需要实验室搭的VPN才行。 甚至,我连防火墙都没关,也可以连接 至于修改密码,passwd&#…

猜数字赢金币

充值金币后开始游戏,猜中奖励10金币退出,不中扣除1金币继续。 (笔记模板由python脚本于2023年12月03日 21:52:23创建,本篇笔记适合熟悉程序函数式编程,熟练掌握基本数据类型的coder翻阅) 【学习的细节是欢悦的历程】 Python 官网&…

RocketMQ-RocketMQ集群实践

搭建RocketMQ可视化管理服务 下载可视化客户端源码下载 | RocketMQ 这里只提供了源码,并没有提供直接运行的jar包。将源码下载下来后,需要解压并进入对应的目录,使用maven进行编译。(需要提前安装maven客户端) mvn clean package -Dmaven.t…

项目实战一-性能测试筑基

这里写目录标题 一、为什么程序会出现性能问题、性能问题是怎么出现的?二、功能测试和性能测试的区别是什么?三、核心性能指标1、用户角度核心a、响应时间:b、并发量 2、成本角度3、运维角度面试题、并发量和吞吐量得区别?a、吞吐…

一些后端测试的东西

后端测试都测试些什么 接口测试最小单元测试联调测试 接口测试 接口测试要素 可重复性 异常覆盖 环境一致 如何进行方便的接口测试 测试工具: idea-httpRequest , apifox , postman, jmeter 如何使用idea进行高效的接口测试 编写接口 启动项目直接…

AD生产BOM表时如何隐藏不需要的器件记录

在完成图纸设计号通常需要生产BOM表,以便采购等,如果不做一些操作,往往输出的BOM表中包含一些非需要采购的器件,如下图 这时就需要对原理图或者PCB图做一些处理,以原理图为例,在需要屏蔽的器件上双击&#…

【C语言】扫雷小游戏初学者版

成功的秘诀就是每天都比别人多努力一点。 今天给大家带来一款非常经典的小游戏——扫雷的实现和讲解 这里是目录 前言整体框架1.打印菜单2.创建二维数组3.初始化棋盘4.打印棋盘5.布置棋盘中的雷6.排查雷和统计雷总体代码test.cgame.cgame.h 进阶(递归展开&#xff0…

力扣572:另一棵树的子树

力扣572:另一棵树的子树 给你两棵二叉树 root 和 subRoot 。检验 root 中是否包含和 subRoot 具有相同结构和节点值的子树。如果存在,返回 true ;否则,返回 false 。 二叉树 tree 的一棵子树包括 tree 的某个节点和这个节点的所…

SpringBootAdmin

SpringBootAdmin 文章目录 SpringBootAdmin创建SpringBootAdmin服务端创建SpringBootAdmin客户端启动应用 总结 github地址 https://github.com/codecentric/spring-boot-admin 可以查到所有的版本号 创建SpringBootAdmin服务端 创建springBoot项目的时候,在ops选项…

【Vue】Vue CLI 脚手架(Vue Command Line Interface)安装教程(通过npm)

前言 Vue CLI(Vue Command Line Interface)是一个基于Vue.js的官方脚手架工具,用于快速搭建和管理Vue.js项目。它提供了一套完整的开发工具和配置,包括项目初始化、开发服务器、热重载、构建和打包等功能。 Vue CLI使用了Webpac…

使用PCSS实现的实时阴影效果

PCSS的技术可以使得阴影呈现出近硬远软的效果,并且能够实时实现。 其核心理念是通过模拟光源的面积来产生更自然、更柔和的阴影边缘。 具体步骤: 1、生成shadowmap 2、在进行阴影的比较时候进行平均,并非之前的shadow map 或者之后完全的阴影…

laraval6.0 GatewayWorker 交互通信

laravel 6.0 GatewayWorker 通讯 开发前准备下载 GatewayWorker 及操作方式前端demo测试效果项目中安装GatewayClient 开发前准备 GatewayClient 官网:https://www.workerman.net/ 当前使用的是宝塔操作 下载 GatewayWorker 及操作方式 前端demo 测试效果 项目中安…

unordered_map与unordered_set的实现(含迭代器)

unordered_map与unordered_set的实现 文章目录 unordered_map与unordered_set的实现前言一、问题一HashTable.h 二、问题二&问题三1.封装时如何取出key2.不同类型key如何建立对应关系 三、问题四&问题五问题四问题五 四、实现代码MyUnorderedSet.hMyUnorderedMap.hHash…

文案二次创作软件,文案二次创作的软件

文案创作成为品牌传播和营销不可或缺的一环。对于许多从业者而言,文案创作常常是一项既耗时又耗力的工作。为了解决这一文案创作的难题,市场上涌现出了众多的智能文案生成工具。我们通过对这些工具的介绍和分析,希望能够为你提供一些在文案创…

Kafka 架构深度解析:生产者(Producer)和消费者(Consumer)

Apache Kafka 作为分布式流处理平台,其架构中的生产者和消费者是核心组件,负责实现高效的消息生产和消费。本文将深入剖析 Kafka 架构中生产者和消费者的工作原理、核心概念以及高级功能。 Kafka 生产者(Producer) 1 发送消息到…

【C++】异常处理 ⑦ ( 异常类的继承层次结构 | 抛出 / 捕获 多个类型异常对象 | 抛出子类异常对象 / 捕获并处理 父类异常对象 )

文章目录 一、抛出 / 捕获 多个类型异常对象1、抛出 / 捕获 多个类型异常对象2、操作弊端3、完整代码示例 二、异常类的继承层次结构1、抛出子类异常对象 / 捕获并处理 父类异常对象2、完整代码示例 - 抛出子类异常对象 / 捕获并处理 父类异常对象 自定义的 异常类 , 可能存在 …