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 指标显示已分配的文件描述符数量。

总结

欢迎指出我的错误!

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

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

相关文章

Centos7安装docker、java、python环境

文章目录 前言一、docker的安装二、docker-compose的安装三、安装python3和配置pip3配置python软链接(关键) 四、Centos 7.6操作系统安装JAVA环境 前言 每次vps安装docker都要看网上的文章,而且都非常坑,方法千奇百怪&#xff0c…

c++ 构造

#include <iostream> using namespace std; class Coordinate { public: // 无参构造函数 // 如果创建一个类你没有写任何构造函数&#xff0c;则系统自动生成默认的构造函数&#xff0c;函数为空&#xff0c;什么都不干 // 如果自己显示定义了一…

go elasticsearch 测试实例

// 查询列表数据 func QueryOperateList(ctx context.Context, esClient *elastic.Client, index string, pageNum, pageSize int, start, end int64, execSql string, list []interface{}, operateAccount string, operateAddr string, maxRows, minRows int, dbAddr, namespa…

对象转成json后转成byte[]后在转成string会提示序列化失败,第一个字符是问号

问题复现 一个对象需要转成json 后转成byte[]后经过网络传输&#xff0c;后再次反序列化为对象&#xff0c;但是最后反序列的时候会报错&#xff0c;打印json发现开头是一个问号 省流 使用这个进行反序列化 /// <summary>/// 反序列化方法/// </summary>/// <…

Java 中如何正确的将 float 转换成 double?

为什么 double 转 float 不会出现数据误差&#xff0c;而 float 转 double 却误差如此之大&#xff1f; double d 3.14; float f (float)d; System.out.println(f);输出结果是:3.14; float f 127.1f; double d f; System.out.println(d);输出结果是&#xff1a;127.09999…

【USRP】5G / 6G 原型系统 5g / 6G prototype system

面向5G/6G科研应用 USRP专门用于5G/6G产品的原型开发与验证。该系统可以在实验室搭建一个真实的5G 网络&#xff0c;基于开源的代码&#xff0c;专为科研用户设计。 软件无线电架构&#xff0c;构建真实5G移动通信系统 X410 采用了目前流行的异构式系统&#xff0c;融合了FP…

【毕业设计】基于雷达与深度学习的摔倒检测——微多普勒效应

运动物体的微多普勒效应为人体动作识别提供了可能&#xff0c;基于雷达的居家检测具有良好的隐私保护性&#xff0c;且不易受环境因素影响&#xff08;如光照、温度等&#xff09;&#xff0c;近年来已受到国内外学者的广泛关注。由于雷达信号的非平稳特性&#xff0c;通过短时…

Oracle-CDB容器数据库修改service_names踩坑

前言: 最近在对一套Oracle容器数据库进行迁移测试时&#xff0c;为了保持新环境与旧环境的服务名一致&#xff0c;需要在新环境添加旧环境的服务名&#xff0c;在CDB的根容器通过service_name参数添加旧环境的服务名之后&#xff0c;发现数据库PDB的服务名全部被注销&#xff0…

自动驾驶学习笔记(十四)——感知算法

#Apollo开发者# 学习课程的传送门如下&#xff0c;当您也准备学习自动驾驶时&#xff0c;可以和我一同前往&#xff1a; 《自动驾驶新人之旅》免费课程—> 传送门 《Apollo Beta宣讲和线下沙龙》免费报名—>传送门 文章目录 前言 感知算法 开发过程 测试和评价 前言…

[leetcode 哈希表] 模版

文章目录 1.有效字母的异位词 E2. 两个数组的交集 E3.快乐数 E4. 两数之和 E5. **topk(前k个高频元素) M** 1.有效字母的异位词 E :::details 给定两个字符串 s 和 t &#xff0c;编写一个函数来判断 t 是否是 s 的字母异位词。 注意&#xff1a;若 s 和 t 中每个字符出现的次…

一致性哈希算法,hash(key)是负值时,会出现异常吗?

一致性哈希算法,hash(key)是负值时,会出现异常吗? 一致性哈希算法中&#xff0c;哈希函数hash(key)的返回值通常是一个非负整数。如果hash(key)返回负值&#xff0c;则可能会出现一些问题&#xff0c;例如无法正确地映射对象到哈希环上的位置&#xff0c;或者无法正确地找到…

【PTA-C语言】编程练习3 - 循环结构Ⅱ

如果代码存在问题&#xff0c;麻烦大家指正 ~ ~有帮助麻烦点个赞 ~ ~ 编程练习3 - 循环结构&#xff08;9~15&#xff09; 7-9 特殊a串数列求和&#xff08;分数 15&#xff09;7-10 穷举法搬运砖块问题&#xff08;分数 15&#xff09;7-11 数字金字塔&#xff08;分数 15&…

鸿蒙4.0开发笔记之ArkTS装饰器语法基础@Prop@Link@State状态装饰器(十二)

文章目录 一、哪些是状态装饰器二、StatePropLink状态传递的核心规则三、状态装饰器练习 一、哪些是状态装饰器 1、State&#xff1a;被装饰拥有其所属组件的状态&#xff0c;可以作为其子组件单向和双向同步的数据源。当其数值改变时&#xff0c;会引起相关组件的渲染刷新。 …

思维模型 赫洛克效应

本系列文章 主要是 分享 思维模型&#xff0c;涉及各个领域&#xff0c;重在提升认知。及时反馈&#xff0c;激发动力。 1 赫洛克效应的应用 1.1 赫洛克效应在管理中的应用 美国惠普公司是一家全球知名的科技公司&#xff0c;该公司非常注重员工的激励和认可。在惠普公司&…

网络和Linux网络_9(应用层和传输层_笔试选择题)

目录 一. 常见应用协议等等 1. 以下不是合法HTTP请求方法的是( ) 2. 文件传输使用的协议是&#xff08;&#xff09; 3. HTTP1.1的请求方法不包括&#xff1f;() 4. http状态码中&#xff0c;( )表示访问成功&#xff0c;( )表示坏请求&#xff0c;( )表示服务不可用。() …

mysql的几种索引

mysql可以在表的一列、或者多列上创建索引&#xff0c;索引的类型可以选择&#xff0c;如下&#xff1a; 普通索引&#xff08;KEY&#xff09; 普通索引可以提高查询效率。在表的一列、或者多列上创建索引。 每个表可以创建多个普通索引。 例如&#xff0c;下面示例&#…

智能优化算法应用:基于海洋捕食者算法无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用&#xff1a;基于海洋捕食者算法无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用&#xff1a;基于海洋捕食者算法无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.海洋捕食者算法4.实验参数设定5.算法结果…

KWin、libdrm、DRM从上到下全过程 —— drmModeAddFBxxx(21)

接前一篇文章:KWin、libdrm、DRM从上到下全过程 —— drmModeAddFBxxx(20) 距离本系列上一篇文章发布的时间已经过去了十多天,虽然这样算下来时间不算长,但笔者感觉上都快过了一个月没更新了。这可能是在我心里一直把Linux图形、尤其是DRM、libdrm这块看得很重,总想尽快往…

实现一个简单的网络通信下(udp)

时间过去好久了&#xff0c;先回忆一下上一篇博客的代码&#xff01;&#xff01; 目前来看&#xff0c;我们客户端发一条消息&#xff0c;我服务器收到这一条消息之后呢&#xff0c;服务器也知道了是谁给我发来的消息&#xff0c;紧接这就把这条消息放进buffer当中&#xff0c…

伸展树你需要了解一下

介绍 伸展树&#xff08;Splay Tree&#xff09;是一种平衡二叉搜索树&#xff0c;它能在O(log n)内完成插入、查找和删除操作。它是丹尼尔斯立特Daniel Sleator 和 罗伯特恩卓塔扬Robert Endre Tarjan 在1985年发明的。 伸展树是一种自调整形式的二叉查找树&#xff0c;它会在…