prometheus中通过node-exporter中的--collector.textfile.directory这一选项参数自定义监控指标

news2025/1/21 12:01:01

简述node-exporter中该选项参数的作用。

--collector.textfile.directory 是 Node Exporter 的一个命令行选项,用于指定从 textfile 收集器中收集数据的目录。

Node Exporter 会通过各种方式收集主机的度量值,并将这些度量值暴露给 Prometheus。其中之一是 textfile 收集器,它允许您从文本文件中收集指标。这些文本文件通常由其他程序生成,并以固定格式存储在指定的目录中。

使用 --collector.textfile.directory 选项,您可以告诉 Node Exporter 去哪个目录下查找这些文本文件。当 Node Exporter 拉取度量值时,它会扫描该目录下所有符合规则的文件,并将它们解析为度量样本,然后传递给 Prometheus Server。

例如,您可以执行以下命令来启动 Node Exporter 并指定 textfile 目录:

node_exporter --collector.textfile.directory /path/to/textfile/directory

需要注意的是,textfile 收集器并不会自动监控目录中的新文件。相反,它会根据时间表(如 cron 作业)或其他外部机制启动更新。因此,为了确保及时更新数据,请确保您的文本生成进程能够按照预期地更新文本文件。

使用场景

遇到一个需求,需要监控mongoDB中的log日志文件大小,在日志文件过大时需要进行自动报警。

使用流程

1. 环境配置

需要在linux服务器中下载安装prometheus、node-exporter和grafana。

Prometheus是一个开源的系统监控和警报工具,可以收集和处理时间序列数据,并提供查询语言、图形化界面和告警功能。它支持多种数据模型,包括度量值、日志文件和事件等。

Node Exporter是一个Prometheus的客户端,用于监测服务器资源使用情况,例如CPU、内存、磁盘和网络等指标。它能够以Prometheus格式公开指标,并将它们暴露给Prometheus服务器采集。
(由于node-exporter需要监测服务器资源的使用情况,所以不推荐使用docker安装。并且下文中所提到的node-exporter也是直接安装在服务器上的)

Grafana是一个开源的数据可视化和分析平台,支持多种数据源,其中包括Prometheus。它提供了强大的查询和可视化功能,可以创建漂亮的交互式仪表板、图表和报表。Grafana与Prometheus集成得非常紧密,可以轻松地创建仪表板并展示Prometheus中收集到的指标数据。

2. node-exporter启动设置

2.1. 创建node-exporter系统服务

创建系统服务的时候就要设置好node-exporter的启动选项了。
下述代码直接复制粘贴到linux的命令行中即可。
其中--collector.textfile.directory=/root的意思为:在/root目录下的所有以.prom结尾的文件都会被载入node-exporter的监控结果中,并且会一起被prometheus获取到。

cat > /etc/systemd/system/node_exporter.service <<"EOF"
[Unit]
Description=Prometheus node_exporter
Requires=network.target remote-fs.target
After=network.target remote-fs.target

[Service]
Type=simple
User=root
Group=root
ExecStart=/opt/prometheus/node_exporter/node_exporter --web.listen-address=0.0.0.0:9100 --collector.textfile.directory=/root
ExecReload=/bin/kill -HUP $MAINPID
KillMode=process
Restart=on-failure
RestartSec=5s

[Install]
WantedBy=multi-user.target
EOF

2.2. 启动 node-exporter

systemctl daemon-reload
systemctl start node_exporter.service
systemctl enable node_exporter.service
systemctl status node_exporter.service

systemctl daemon-reload:重新加载systemd管理的所有服务配置文件,使新添加的或修改过的服务配置文件生效。
systemctl start node_exporter.service:启动名为"node_exporter"的服务。
systemctl enable node_exporter.service:将名为"node_exporter"的服务开机自启动。
systemctl status node_exporter.service:显示名为"node_exporter"的服务的当前状态,包括服务是否正在运行、最近启动时间、进程ID等信息。

到这里就可以获取到/root目录下以.prom结尾文件中的自定义监控指标了。
(这里默认prometheus中已经配置好node-exporter结点了,不再赘述了)

2.3. 示例展示

2.3.1. 创建disk.prom文件

/root目录下创建disk.prom文件,添加下述内容。
在这里插入图片描述

所有自定义生成的指标需要按照如下的方式进行存储:

# HELP disk_free Amount of free space on the disk.
# TYPE disk_free gauge
disk_free{mountpoint="/opt/prometheus/node_exporter"} 123456789

如果没有写help的话,系统会帮助生成一个简单的help描述,但是如果有多个文件中出现相同的指标名称(example_metric),需要保证这些指标的help和type都一致,否则采集将出错. 基本格式也可以参考node_exporter/metrics路径下显示的内容.

2.3.2. 查看node-exporter中是否包含自定义数据

在这里插入图片描述
可见其中包含我们自定义的一个指标。

2.3.3. 查看grafana中展示是否正常

在这里插入图片描述
可见出现了我们想要的指标信息。

3. 补充说明

对于disk.prom文件,我们可以自己编写一些脚本文件自动更新。

自定义采集,需要自己写crontab定时任务,定时执行。所以仿照刚刚实例中的定时任务格式写就好了,sponge是写入管道传来的数据到文件中。tee也可以,tee会输出内容。

之前碰到过一种现象,就是加入数据正在写入,但是prometheus正好拉取,可能会出现拉取出现问题,这里呢,需要先将自定义指标写入一个临时文件,然后将文件mv一下到正式的文件。

可以参考下面解决方案(可在https://github.com/prometheus/node_exporter中找到)
在这里插入图片描述

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

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

相关文章

【嵌入式烧录刷写文件】-2.3-删除/修改Intel Hex文件中指定地址范围内的数据

案例背景&#xff08;共6页精讲&#xff09;&#xff1a; 有如下一段HEX文件&#xff0c;如何“自动”地完成地址范围0x9110-0x9113数据的删除或修改。 :2091000058595A5B5C5D5E5F606162636465666768696A6B6C6D6E6F70717273747576775F :2091200078797A7B7C7D7E7F808182838485…

C++ STL之 list 基础

文章目录 前言STL之list基础知识1. list的介绍2. list的使用2.1 list的构造2.2 list iterator的使用2.3 空间相关2.4 元素访问2.5 相关函数2.6 list的迭代器失效 3. list与vector的对比 后记 前言 本篇将学习 list 的基础知识 &#x1f57a;作者&#xff1a; 迷茫的启明星 专栏…

网络安全从业人员职业发展和规划

1、为什么做这次分享&#xff1f; 2、人生周期三模型 3、职业生涯阶段划分 4、通用职业发展路径 5、当前安全行业前景如何&#xff1f; 6、安全就业行情如何&#xff1f; 7、安全行业就业市场岗位划分 8、什么是相对比较好的履历&#xff1f; 9、选择甲方还是选择乙方&#xf…

Prompt learning 教学[技巧篇]:通过增加示例、引导词、特殊符号指令等方式让chatgpt输出更好的答案

Prompt learning 教学[技巧篇]&#xff1a;通过增加示例、引导词、特殊符号指令等方式让chatgpt输出更好的答案 技巧1&#xff1a;To Do and Not To Do 在问答场景里&#xff0c;为了让 AI 回答更加准确&#xff0c;一般会在问题里加条件。比如让 AI 推荐一部电影给你 Recomme…

【高数+复变函数】傅里叶变换

文章目录 【高数复变函数】傅里叶变换3 傅里叶变换3.1 基本概念3.2 单位脉冲函数及其傅里叶变换3.3 非周期函数的频谱 上一节 【高数复变函数】傅里叶积分 【高数复变函数】傅里叶变换 3 傅里叶变换 3.1 基本概念 回顾&#xff1a;上一节中的Fourier积分公式 f ( t ) 1 2…

前端二进制流的关系

Blob 全称&#xff1a;binary large object&#xff0c;二进制大对象&#xff0c;是一个js对象&#xff0c;可以用来存储大量二进制编码格式的数据&#xff0c;Blob对象是不可修改的&#xff0c;读取内容的唯一方法是FileReader。 创建一个Blob对象&#xff1a; new Blob(ar…

SSM(Vue3+ElementPlus+Axios+SSM前后端分离)--后端实现

目录 SSM(Vue3ElementPlusAxiosSSM前后端分离)--后端实现 技术栈 实现功能04-添加家居信息 需求分析/图解 思路分析 代码实现 创建\service\FurnService.java 和\service\FurnServiceImpl.java, 增加添加方法 修改Furn.java , 当创建Furn 对象imgPath 为null 时, imgPa…

Java14-常用类:字符串,日期类,比较器

一&#xff1a;字符串&#xff1a;String 1.概述&#xff1a; String&#xff1a;字符串&#xff0c;使用一对""引起来表示。 1.String 声明 为final的&#xff0c;不可被继承 2.String 实现了Serializable接口&#xff1a;表示字符串是支持序列化的。 实现了Co…

多线程相关高频面试题

一、线程的基础知识 1、线程和进程的区别&#xff1f; 进程是正在运行程序的实例&#xff0c;进程中包含了线程&#xff0c;每个线程执行不同的任务。不同的进程使用不同的内存空间&#xff0c;在当前进程下的所有线程可以共享内存空间。线程更轻量&#xff0c;线程上下文切换…

GPIO口输出与输入模式的理解

问题&#xff1f;看GPIO的结构图&#xff0c;发现&#xff1a; 上拉输入电流是从引脚流入外部 下来输入电流是从引脚流进芯片内部 推挽输出推模式电流是从引脚流入外部 推挽输出挽模式电流是从外部流入内部 输入输出模式都有电流流入流出&#xff0c;为什么还要分为输入输出模…

K8s排错之浏览器打不开K8s Dashboard

一、问题 10.0.0.10 通常会使用加密技术来保护您的信息。Chrome 此次尝试连接到 10.0.0.10 时&#xff0c;该网站发回了异常的错误凭据。这可能是因为有攻击者在试图冒充 10.0.0.10&#xff0c;或者 Wi-Fi 登录屏幕中断了此次连接。请放心&#xff0c;您的信息仍然是安全的&am…

【饿了么UI】elementUI密码框图标实现睁眼和闭眼效果(阿里巴巴iconfront图标库vue项目本地引用)

elementUI中输入框的密码框属性&#xff0c; 默认是一个始终睁眼的图标&#xff0c;测试今天提bug要有闭眼效果&#xff08;无大语&#xff09;… 因为elementUI中的icon没有闭眼的&#xff0c;所以还要去iconfront下载引入 效果图&#xff1a; 点击后 一、下载图标 http…

【LeetCode】138. 复制带随机指针的链表

题目链接&#xff1a;https://leetcode.cn/problems/copy-list-with-random-pointer/description/ &#x1f4d5;题目要求&#xff1a; 给你一个长度为 n 的链表&#xff0c;每个节点包含一个额外增加的随机指针 random &#xff0c;该指针可以指向链表中的任何节点或空节点。…

基于springboot+mybatis-puls+mysql+html实现大学生创新创业管理系统

基于springbootmybatis-pulsmysqlhtml实现大学生创新创业管理系统 一、系统介绍1、系统主要功能&#xff1a;2.涉及技术框架&#xff1a;3.本项目所用环境&#xff1a; 二、功能展示三、其它系统四、获取源码 一、系统介绍 1、系统主要功能&#xff1a; 学生&#xff1a;申报…

自更新参数web接口预热工具

痛点 日常上线流程中经常需要对接口进行预热&#xff0c;因为服务器每次启动后都有一定次数访问失败&#xff0c;如果不处理将此请求直接抛出&#xff0c;会降低用户体验。当服务器数量较少时&#xff0c;我们可以在发布机器后&#xff0c;待机器启动使用本地hosts更改IP&…

20230510MTCNN3

MTCNN数据制作 - 1 多任务 分类任务 回归任务 模型增加任务&#xff0c;其实就是增加输出 级联即减少了 数据量&#xff0c;又增加了 模型的精度 级联可以让网络变得越快 越好 单独来看这三个网络&#xff0c;它们的效果不会好&#xff0c;因为网络太浅了 但&#xff0c;当…

【嵌入式烧录刷写文件】-1.3-删除/修改Motorola S-record(S19/SREC/mot/SX)文件中指定地址范围内的数据

案例背景&#xff08;共6页精讲&#xff09;&#xff1a; 有如下一段S19文件&#xff0c;如何“自动”地完成地址范围0x9110-0x9113数据的删除或修改。 S0110000486578766965772056312E30352EA6 S123910058595A5B5C5D5E5F606162636465666768696A6B6C6D6E6F70717273747576775B…

t检验前世今生

1、背景 t检验是科研中非常常用的一种方法和手段&#xff0c;但是理解到位的人并不多&#xff0c;虽然这也不影响其使用。本文主要目的在于将与t检验有关的前前后后都讲明白。 2、补充知识 理解t检验&#xff0c;我们需要补充一些统计学有关的先验知识。 2.1 正态分布 概率…

【文本三剑客】SED

SED 一、sed编辑器1.2sed简介1.3sed工作流程1.4sed命令格式1.5常用选项1.6常用操作 二、sed实验2.1打印内容2.2删除行2.3替换2.4插入 一、sed编辑器 1.2sed简介 sed是一种流编辑器&#xff0c;流编辑器会在编辑器处理数据之前基于预先提供的一组规则来编辑数据流。sed编辑器可…

链表详解 - C语言描述

目录 认识链表 链表的分类 链表的实现 单链表的增删查改 增操作 删操作 查操作 改操作 带头双向循环链表 认识链表 链表是一种物理存储上非连续&#xff0c;数据元素的逻辑顺序通过链表中的指针链接次序&#xff0c;实现的一种线性存储结构。链表由一系列节点(结点)组…