当前位置: 首页 > article >正文

2. Prometheus的Exporter

目录

一、Exporter的概述

2. Exporter 的关键特点:

3. Exporter 的例子:

二、Exporter的来源

三、prometheus的exporter的类型

特点:

示例:

特点:

示例:

四、Exporter获取监控数据的方式


一、Exporter的概述

1. Exporter是什么?

Exporter 是 Prometheus 生态系统中的一个概念,指的是能够从目标系统(如数据库、应用程序、硬件设备等)收集指标数据并将其暴露出来的程序。Prometheus 通过定期从这些 Exporter 收集数据来进行监控和报警。

在 Prometheus 中,Exporter 的工作是将目标系统(比如一个 Web 服务、数据库、操作系统等)的监控数据以 Prometheus 可识别的格式进行暴露,通常是通过 HTTP 服务接口提供指标。每个 Exporter 的实例被称为一个 target,它代表一个具体的监控对象。

2. Exporter 的关键特点:

  1. 数据采集:Exporter 会定期从其监控的目标系统中采集数据,比如 CPU 使用率、内存使用情况、网络流量等。
  2. 暴露接口:Exporter 会通过一个 HTTP 接口暴露这些数据,Prometheus 会定期抓取这些数据接口。
  3. 灵活性:Exporter 可以针对不同的应用和系统定制,Prometheus 官方提供了一些通用的 Exporter(例如:node_exporter 用于监控 Linux/Unix 系统,mysql_exporter 用于监控 MySQL 数据库)。

3. Exporter 的例子:

  • node_exporter:监控操作系统层面的指标,如 CPU 使用率、内存使用量、磁盘空间等。
  • mysql_exporter:监控 MySQL 数据库的性能指标,如查询延迟、连接数等。
  • blackbox_exporter:对外部服务进行 HTTP、DNS、TCP 等协议的监控。

Prometheus 通过定期向 Exporter 的 HTTP 接口请求数据,将这些数据存储并用来生成监控图表和报警规则。

二、Exporter的来源

  • 社区提供的

1. prometheus社区提供丰富的Exporter实现,涵盖了从基础设施,中间件以及网络等各个方面的        性能监控,例如:Node Exporter ,MySQL Exporter 

2. 官方文档连接:https://www.prometheus.io/docs/instrumenting/exporters/

  • 用户自定义的

1. 除了可以使用社区提供的提供的Exporter程序外,用户可以基于prometheus提供的Client Library创建自己的Exporter程序

2.这里给出ClientGo的链接:https://github.comhttps://github.com/prometheus/client_golang

三、prometheus的exporter的类型

Prometheus 的 Exporter 可以根据其数据采集方式的不同,分为两类:直接采集型间接采集型

  • 直接采集型 Exporter

直接采集型 Exporter 是通过直接访问被监控系统(如数据库、应用服务等)的内部接口或数据源,实时获取其运行时的指标数据。它们通常不依赖于其他外部组件,而是直接从目标系统本身提取指标。

特点:
  • 直接访问:直接从目标系统采集数据。
  • 实时性较强:能够实时反映目标系统的性能和状态。
  • 采集方式简单:通常会暴露一些预定义的指标,易于配置和使用。
示例:
  • MySQL Exporter:直接访问 MySQL 数据库的状态信息,如查询数、连接数、慢查询等。
  • PostgreSQL Exporter:直接访问 PostgreSQL 数据库,收集数据库相关的性能指标。
  • JMX Exporter:用于收集基于 Java 的应用程序(如 Tomcat、Kafka 等)通过 JMX 提供的监控数据

  • 间接采集型 Exporter

间接采集型 Exporter 则是通过某种中介、外部服务或监控代理来间接地获取数据。这些 Exporter 通常并不会直接从被监控系统获取数据,而是依赖一些中间工具、代理或外部系统来采集或推送数据。

特点:
  • 间接依赖:通过中间代理或其他工具获取目标数据。
  • 适用场景广泛:适用于需要通过其他工具收集数据的系统或场景。
  • 可能存在延迟:由于需要通过其他系统采集,数据的实时性和准确性可能略有滞后。
示例:
  • Node Exporter:通过操作系统的监控工具(如 vmstatiostatnetstat 等)间接获取系统的硬件、操作系统和网络等性能数据。
  • Blackbox Exporter:通过模拟对外部系统(如 HTTP、DNS、TCP 等)进行探测来间接获取外部服务的健康状况。它并不会直接访问被监控系统,而是对外部接口发起请求,测试其是否可用。
  • SNMP Exporter:通过 SNMP(简单网络管理协议)从网络设备(如交换机、路由器、打印机等)中间接收集数据。

四、Exporter获取监控数据的方式

1. HTTP/HTTPS方式:例如RabbitMQ exporter通过RabbitMQ的HGTTPS接口获取监控数据

2. TCP方式:例如:Redis exporter通过Redis提供的系统监控相关命令获取监控指标

3. 本地文件方式:例如:Node exporter通过读取proc文件系统下的文件,计算得到整个操作系统状态

五、安装Node_Exporter

下载位置:https://www.prometheus.io/download/      下拉找到Node_Exporter

1. 解压Node_Exporter并改名

tar xf node_exporter-1.9.0.linux-amd64.tar.gz  -C /usr/local/
mv /usr/local/node_exporter-1.9.0.linux-amd64/ /usr/local/node_exporter

2. 做成系统服务器

vim /lib/systemd/system/node_exporter.service


[Unit]
Description=Node Exporter
Wants=network-online.target
After=network-online.target

[Service]
Type=simple
Restart=always
ExecStart=/usr/local/node_exporter/node_exporter

[Install]
WantedBy=multi-user.target

3. 启动

systemctl daemon-reload 
systemctl start  node_exporter.service

4. 查看端口是否启动

[root@localhost ~]# netstat  -anptu |grep 9100
tcp6       0      0 :::9100                 :::*                    LISTEN      55325/node_exporter 

5. 查看网页端系统信息

本机ip:9100/metrics


http://www.kler.cn/a/569982.html

相关文章:

  • 【STM32H743IIT6】将外部SDRAM作为内部SRAM使用的方法及需要解决的问题
  • 小米和华为的需求管理及产品策划
  • Linux下安装VS Code
  • Go红队开发—文件操作
  • ZT23 小美的蛋糕切割
  • Spark主备切换了解么
  • UCRP4320-通用认知无线电平台
  • 每日一题-奶酪题(蓝桥杯)【模拟】
  • 【心得】一文梳理高频面试题 HTTP 1.0/HTTP 1.1/HTTP 2.0/HTTP 3.0的区别并附加记忆方法
  • 【SpringSecurity】——认证、注销、权限控制和注销、记住密码、自定义登入页等知识总结
  • 【JavaEE】SpringMVC简单练习
  • sql-labs靶场笔记
  • selenium grid分布式
  • 【每日八股】计算机网络篇(二):TCP 和 UDP
  • Kotlin中RxJava用法
  • 测试工程师的DeepSeek提效2:自动化测试应用
  • android TabLayout设置tab的时候文字默认居中,选中文字加粗
  • 微信小程序接入DeepSeek模型(火山方舟),并在视图中流式输出
  • PostgreSQL全页写机制深度解析:如何平衡WAL性能与数据可靠性
  • IDEA Tab 页设置多行显示