You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用node_exporter获取指定文件的大小?

获取单个文件的Prometheus指标

要获取/var/lib/mysql/abcd这类单个文件的大小,node_exporter默认没有提供对应指标,需要通过textfile collector自定义生成指标,步骤如下:

  • 配置node_exporter启用textfile采集器
    启动node_exporter时添加参数,指定textfile文件存放目录(比如/var/lib/node_exporter):

    node_exporter --collector.textfile.directory=/var/lib/node_exporter
    

    如果是systemd管理的服务,修改服务配置文件(通常是/etc/systemd/system/node_exporter.service)的ExecStart行,加入上述参数后重启服务:

    systemctl daemon-reload
    systemctl restart node_exporter
    
  • 编写脚本生成文件大小指标
    创建一个脚本(比如/usr/local/bin/get_mysql_abcd_size.sh),内容如下:

    #!/bin/bash
    FILE_PATH="/var/lib/mysql/abcd"
    OUTPUT_FILE="/var/lib/node_exporter/mysql_abcd_size.prom"
    
    # 检查文件是否存在
    if [ -f "$FILE_PATH" ]; then
        FILE_SIZE=$(stat -c "%s" "$FILE_PATH")
        echo "# HELP node_file_size_bytes Size of specified file" > "$OUTPUT_FILE"
        echo "# TYPE node_file_size_bytes gauge" >> "$OUTPUT_FILE"
        echo "node_file_size_bytes{path=\"$FILE_PATH\"} $FILE_SIZE" >> "$OUTPUT_FILE"
    else
        # 文件不存在时输出0或标记状态,根据需求调整
        echo "# HELP node_file_size_bytes Size of specified file" > "$OUTPUT_FILE"
        echo "# TYPE node_file_size_bytes gauge" >> "$OUTPUT_FILE"
        echo "node_file_size_bytes{path=\"$FILE_PATH\",status=\"missing\"} 0" >> "$OUTPUT_FILE"
    fi
    

    给脚本添加执行权限:

    chmod +x /usr/local/bin/get_mysql_abcd_size.sh
    
  • 定时执行脚本
    通过cron定期运行脚本,确保指标实时更新。执行crontab -e添加一行:

    * * * * * /usr/local/bin/get_mysql_abcd_size.sh
    

    这会每分钟更新一次文件大小指标。

  • 查询指标
    完成配置后,在Prometheus中即可通过以下查询获取目标文件大小:

    node_file_size_bytes{path="/var/lib/mysql/abcd"}
    

内容的提问来源于stack exchange,提问作者Asuwini P

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 04:50:27