首页/云/可观测性速查/textfile 采集器:注入自定义静态指标
Prometheus 与采集64 条

textfile 采集器:注入自定义静态指标

node_exporter 的 textfile 采集器读取指定目录下的 .prom 文件并暴露为指标;适合把脚本产出(备份时间、证书剩余天数)变成可监控指标。

可观测性速查云更新于 2026-10-13

textfile 采集器是什么

textfile 采集器是 node_exporter 的内置采集器,每次抓取时扫描指定目录下的 .prom 文件,把其中的指标与常规指标一并暴露。它解决的是「脚本算出来的事实怎么变成可监控指标」:备份是否成功、证书还剩多少天、批处理跑了多久,脚本写一行文本就能被 Prometheus 抓走,不必自己写 exporter。适合变化不频繁、由脚本判定的外部状态。

基本信息

归属组件node_exporter(--collector.textfile.directory)
文件格式Prometheus 文本格式,后缀必须是 .prom
读取时机每次抓取时重新扫描目录
适用平台Linux,权限需允许 node_exporter 用户读取该目录
典型指标类型gauge(时间戳、剩余天数、数量)

典型使用场景

  • 备份任务监控:成功时写入完成时间戳,配合规则判断「超过 26 小时没有成功备份」
  • 证书到期提醒:用脚本读取剩余有效天数,提前 30 天触发续期提醒
  • 数据同步与批处理:记录最后成功时间、处理条数、耗时,替代人工巡检
  • 无 exporter 的组件:通过脚本探测结果转成指标,避免为单个组件开发采集器
  • 配额与容量:对象存储配额、非标准挂载点用量等外部事实定期落成指标

启动与文件写法

启动与文件写法
node_exporter --collector.textfile.directory=/var/lib/node_exporter/textfile

# 文件:/var/lib/node_exporter/textfile/backup.prom
# HELP backup_last_success_timestamp_seconds 上次备份成功完成时间
# TYPE backup_last_success_timestamp_seconds gauge
backup_last_success_timestamp_seconds 1755000000

# HELP cert_days_remaining 证书剩余有效天数
# TYPE cert_days_remaining gauge
cert_days_remaining{domain="api.example.com"} 47

# 脚本落盘建议:先写临时文件再原子重命名,避免采集端读到半截内容
# printf ... > backup.prom.tmp && mv backup.prom.tmp backup.prom

文件要素与写法

要素写法说明
文件名以 .prom 结尾其他后缀的文件会被直接忽略
HELP 与 TYPE注释行缺失不影响抓取,影响可读性与界面提示
时间戳指标用 Unix 秒便于用 time() 减去它算出「多久没更新」
显式时间戳行尾追加毫秒时间戳可让停止更新的脚本指标自然过期
文件更新发生在抓取周期之外,指标永远滞后一个抓取间隔;告警阈值要留出这段缓冲,别把阈值卡在脚本刚跑完的时间点上。
目录里残留的 .prom 文件会持续暴露旧指标:任务下线或脚本删除后忘记清理文件,监控会一直显示陈旧数据,掩盖真实故障,排查时先确认文件是否还在被更新。

易错点

  • 文件格式错误会让整份内容被跳过(不影响其他文件),脚本应先校验再落盘,否则指标静默消失
  • 写文件与抓取之间有时间差,把告警阈值卡在任务理论耗时上会持续误报
  • 目录权限配置不当会表现为指标整段消失,而不是数值异常,先确认运行用户能否读取
  • 下线的任务忘记删除 .prom 文件,监控长期显示陈旧数据,等于留下一个不会报警的盲区

数据来源与参考

  • node_exporter 文档 · textfile collector
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌