尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
Telegraf Lustre2 输入插件实战指南:采集 Lustre 并行文件系统的 OST/MDS 运行指标
Telegraf Lustre2 输入插件实战指南采集 Lustre 并行文件系统的 OST/MDS 运行指标【免费下载链接】telegrafAgent for collecting, processing, aggregating, and writing metrics, logs, and other arbitrary data.项目地址: https://gitcode.com/GitHub_Trending/te/telegrafLustre 是面向 HPC高性能计算环境的开源并行文件系统其运行状态与性能统计信息以文本形式记录在proc/sys文件系统中。Telegraf 的lustre2输入插件插件源码专门在 OST、MDS 等 Lustre 服务节点上读取这些统计文件将其转换为标准 Telegraf 指标。读完本文你将掌握lustre2插件的完整配置方法、全部指标字段的语义与来源文件以及基于源码理解其底层解析逻辑从而在 HPC 集群监控中直接落地使用。插件概览与适用场景lustre2插件通过读取 Lustre 暴露在proc/sys伪文件系统中的统计条目来采集指标报告的字段与官方 Lustre Monitoring and Statistics Guide 对应。它并不报告 Lustre 提供的全部信息而是聚焦于一组精选的、可运维的指标子集。该插件具备以下特征见 README.md版本起点自 Telegraf v0.1.5 起提供分类标签属于system类输入插件平台支持仅支持 Linux linux。从源码结构看lustre2_notlinux.go非 Linux 平台编译时插件依然会被注册但Gather直接返回空并在Init时输出Current platform is not supported警告真正的采集逻辑全部位于带//go:build linux标签的 lustre2.go 中。配置详解lustre2插件在配置上非常灵活Lustre 各版本的proc/sys文件布局会变化插件特意允许用户通过三个数组参数自定义要扫描的路径glob 模式实现“面向未来”的兼容设计。完整配置示例以下为插件的默认配置来源sample.conf同时被 README 通过sample.conf指令内嵌# Read metrics from local Lustre service on OST, MDS # This plugin ONLY supports Linux [[inputs.lustre2]] ## An array of /proc globs to search for Lustre stats ## If not specified, the default will work on Lustre 2.12.x ## # mgs_procfiles [ # /sys/fs/lustre/mgs/*/eviction_count, # ] # ost_procfiles [ # /proc/fs/lustre/obdfilter/*/stats, # /proc/fs/lustre/osd-ldiskfs/*/stats, # /proc/fs/lustre/obdfilter/*/job_stats, # /proc/fs/lustre/obdfilter/*/exports/*/stats, # /proc/fs/lustre/osd-ldiskfs/*/brw_stats, # /proc/fs/lustre/osd-zfs/*/brw_stats, # /sys/fs/lustre/odbfilter/*/eviction_count, # ] # mds_procfiles [ # /proc/fs/lustre/mdt/*/md_stats, # /proc/fs/lustre/mdt/*/job_stats, # /proc/fs/lustre/mdt/*/exports/*/stats, # /proc/fs/lustre/osd-ldiskfs/*/brw_stats, # /proc/fs/lustre/osd-zfs/*/brw_stats, # /sys/fs/lustre/mdt/*/eviction_count, # ]三个核心配置参数参数类型默认值Lustre 2.12.x作用mgs_procfiles[]string/sys/fs/lustre/mgs/*/eviction_count管理服务MGS侧统计文件 glob当前仅支持以eviction_count结尾的路径ost_procfiles[]string见下方说明对象存储目标OST侧统计文件 glob 数组mds_procfiles[]string见下方说明元数据目标MDT侧统计文件 glob 数组OST 默认扫描文件对应源码 lustre2.go#L64-L79/proc/fs/lustre/obdfilter/*/stats—— 读写字节数与调用次数/proc/fs/lustre/osd-ldiskfs/*/stats—— 缓存命中/未命中计数器ldiskfs 后端/proc/fs/lustre/obdfilter/*/job_stats—— 按作业 ID 统计的 I/O/proc/fs/lustre/osd-ldiskfs/*/brw_stats—— 批量读写分布ldiskfs/proc/fs/lustre/osd-zfs/*/brw_stats—— 批量读写分布ZFS/sys/fs/lustre/obdfilter/*/eviction_count—— 驱逐计数。MDT 默认扫描文件lustre2.go#L81-L90/proc/fs/lustre/mdt/*/md_stats—— 元数据操作统计/proc/fs/lustre/mdt/*/job_stats—— 元数据目标作业统计/sys/fs/lustre/mdt/*/eviction_count—— 驱逐计数。从源码看三个参数的默认值仅在各自数组长度为 0 时才会被填充if len(l.MgsProcfiles) 0等判断因此你完全可以只覆盖其中一个数组、保留其他默认值例如只自定义ost_procfiles以适配 Lustre 新版本布局。文件类型与处理分派在 Gather 方法 中插件根据文件路径的后缀自动分派解析器这一点对自定义配置非常关键路径后缀分派解析函数说明brw_statsgetLustreProcBrwStats批量读写分布直方图job_statsgetLustreProcStatsjobstats 字段表按 jobid 聚合的统计eviction_countgetLustreEvictionCount驱逐计数MGS/MDT/OST 通用其他如stats、md_statsgetLustreProcStats普通字段表常规计数器值得注意的是mgs_procfiles数组中的条目如果不以eviction_count结尾插件会直接返回错误no handler found for mgs procfile pattern ...lustre2.go#L92-L100——即 MGS 目录下目前只支持驱逐计数这一种文件。指标说明Metricslustre2插件输出的测量名统一为lustre2通过不同的 tags 与 fields 区分数据来源。以下内容完整继承自 README.md 的 Metrics 章节并结合源码补充了字段提取细节。健康状态health来源文件/sys/fs/lustre/health_check若不存在则回退到旧的/proc/fs/lustre/health_check参见 getLustreHealth。tags无fieldshealth文件内容为healthy时值为1否则为0源码将字符串与healthy精确比较后转为 uint64OST 常规统计来源文件/proc/fs/lustre/obdfilter/*/stats与/proc/fs/lustre/osd-ldiskfs/*/stats。tagsnameOST 目标名取自路径倒数第二段如OST0001fieldswrite_byteswrite_callsread_bytesread_callscache_hitsamples 值为向后兼容保留cache_hit_samplescache_hit_pagescache_misssamples 值为向后兼容保留cache_miss_samplescache_miss_pagescache_accesssamples 值为向后兼容保留cache_access_samplescache_access_pages字段提取原理以read_bytes 203238095 samples [bytes] 4096 1048576 78026117632000这类行为例wantedOstFieldslustre2.go#L469-L526通过mapping结构指定行首关键字与取第几列field字段read_bytes/write_bytes的调用次数取第 1 列、字节数取第 6 列cache_*的 samples 默认取第 1 列、pages 取第 6 列。测试用例 TestCacheStatsReportSamplesAndPages 验证了这些字段会同时以“原始名samples 值_samples_pages”三种形态上报。OST 客户端exports统计来源文件/proc/fs/lustre/obdfilter/*/exports/*/stats按客户端 NID 细分。tagsnameOST 目标名client客户端 NIDfieldswrite_byteswrite_callsread_bytesread_calls路径解析细节getLustreProcStats中对包含/exports/的路径目标名取倒数第 4 段、客户端 NID 取倒数第 2 段lustre2.go#L220-L239。例如测试目录中的/proc/fs/lustre/obdfilter/OST0001/exports/10.2.4.27o2ib1/stats会生成nameOST0001, client10.2.4.27o2ib1的指标。OST 作业统计job_stats来源文件/proc/fs/lustre/obdfilter/*/job_stats。tagsnameOST 目标名jobid作业 IDLustre jobidfieldsjobstats_ost_getattrjobstats_ost_setattrjobstats_ost_syncjobstats_punchjobstats_destroyjobstats_createjobstats_ost_statfsjobstats_get_infojobstats_set_infojobstats_quotactljobstats_read_bytesjobstats_read_callsjobstats_read_max_sizejobstats_read_min_sizejobstats_write_bytesjobstats_write_callsjobstats_write_max_sizejobstats_write_min_size解析要点job_stats文件以- job_id: jobid分段插件按- 拆分段落、读取job_id行生成jobidtaglustre2.go#L250-L259。同时wantedOstJobstatsFields同时支持旧格式read/write行与新格式read_bytes/write_bytes行两种 inProc 关键字字段分别取第 3/7/9/11 列对应 calls、min、max、bytes。MDT 元数据统计来源文件/proc/fs/lustre/mdt/*/md_stats。tagsnameMDT 目标名fieldsopenclosemknodlinkunlinkmkdirrmdirrenamegetattrsetattrgetxattrsetxattrstatfssyncsamedir_renamecrossdir_renameMDT 客户端exports统计来源文件/proc/fs/lustre/mdt/*/exports/*/stats。tagsnameMDT 目标名client客户端 NIDfields与上节 MDT 常规统计完全相同open、close、mknod、link、unlink、mkdir、rmdir、rename、getattr、setattr、getxattr、setxattr、statfs、sync、samedir_rename、crossdir_renameMDT 作业统计job_stats来源文件/proc/fs/lustre/mdt/*/job_stats。tagsnameMDT 目标名jobid作业 IDfieldsjobstats_closejobstats_crossdir_renamejobstats_getattrjobstats_getxattrjobstats_linkjobstats_mkdirjobstats_mknodjobstats_openjobstats_renamejobstats_rmdirjobstats_samedir_renamejobstats_setattrjobstats_setxattrjobstats_statfsjobstats_syncjobstats_unlink驱逐计数eviction_count来源文件/proc/fs/lustre/*/*/eviction_count含/sys/fs/lustre/mgs|obdfilter|mdt/*/eviction_count。tagsnameMGT/MDT/OST 目标名fieldsevictions驱逐次数brw_stats 批量读写分布源码级补充除 README 列出的指标外插件还会解析brw_stats文件按brw_section与bucket两个 tag 组织指标wantedBrwstatsFields。brw_stats文件包含“标题行 桶行”结构参见测试数据 brw_statstagsnameOST 目标名brw_section分类标题如pages per bulk r/w、discontiguous pages、disk I/Os in flight、I/O time (1/1000s)、disk I/O size上报时转换为下划线命名bucket桶值如1、16、1K、1Mfieldsread_ios读 I/O 次数列 1read_percent读占比列 2write_ios写 I/O 次数列 5write_percent写占比列 6解析器会跳过snapshot_time行与空行并容忍无权限读取的文件仅记录 Debug 日志后跳过lustre2.go#L320-L327。运行示例与输出格式在配置了lustre2插件的 Telegraf 实例上采集到的数据形如来源README.md 的 Example Output 章节lustre2,hostoss2,jobid42990218,namewrk-OST0041 jobstats_ost_setattr0i,jobstats_ost_sync0i,jobstats_punch0i,jobstats_read_bytes4096i,jobstats_read_calls1i,jobstats_read_max_size4096i,jobstats_read_min_size4096i,jobstats_write_bytes310206488i,jobstats_write_calls7423i,jobstats_write_max_size53048i,jobstats_write_min_size8820i 1556525847000000000 lustre2,hostmds1,jobid42992017,namewrk-MDT0000 jobstats_close31798i,jobstats_crossdir_rename0i,jobstats_getattr34146i,jobstats_getxattr15i,jobstats_link0i,jobstats_mkdir658i,jobstats_mknod0i,jobstats_open31797i,jobstats_rename0i,jobstats_rmdir0i,jobstats_samedir_rename0i,jobstats_setattr1788i,jobstats_setxattr0i,jobstats_statfs0i,jobstats_sync0i,jobstats_unlink0i 1556525828000000000可以看到host为 Telegraf 自动添加的主机 tagname与jobid则来自 Lustre 统计文件所有字段均以整数类型i后缀上报方便后续在 InfluxDB、Prometheus 等时序存储中直接聚合。全局配置选项与插件通用能力与其他 Telegraf 插件一样lustre2支持在配置中使用 Telegraf 的通用配置机制例如指标与字段的改名、过滤namepass、fieldpass、tagexclude等自定义 tag 注入通过别名alias复用同一插件采集不同路径集合配置插件执行顺序。详细说明参见 docs/CONFIGURATION.md。你可以在[[inputs.lustre2]]区块内按需叠加这些通用选项。源码解析与测试验证核心采集流程lustre2的采集入口是Gather方法lustre2.go#L49-L169整体流程为调用getLustreHealth()读取健康状态按需填充 MGS/OST/MDS 三组默认 glob依次对三组 glob 展开filepath.Glob并按后缀分派解析所有解析结果统一汇总到allFields键为tags结构体name、brwSection、bucket、job、client最后将allFields中的每个条目以lustre2为测量名、按 tag 映射关系name、brw_section、bucket、jobid、client调用acc.AddFields输出。测试用例插件自带完整的表驱动测试lustre2_test.go会遍历testcases目录下的每个子目录v2.12模拟 Lustre 2.12 的完整目录布局含proc与sys两套伪文件验证默认配置下的采集结果v2.12_no_client_stats验证没有 exports 客户端统计文件时的行为custom_locations验证自定义非默认路径/host_proc/...的 glob 配置。每个测试目录内的telegraf.conf定义了插件配置如 v2.12 配置测试通过设置内部字段rootdir将文件读取根目录重定向到测试目录从而在不依赖真实 Lustre 集群的情况下完成端到端验证。此外还有针对缓存统计字段形态的独立单测 TestCacheStatsReportSamplesAndPages。注册与打包插件通过inputs.Add(lustre2, ...)注册到 Telegraf 插件注册表lustre2.go#L795-L798并作为内置输入插件随 Telegraf 二进制分发无需额外安装。sample.conf通过//go:embed嵌入二进制SampleConfig()返回的配置即上文的默认示例。实战建议平台前提lustre2仅支持 Linux且必须运行在能够访问 Lustreproc/sys统计文件的节点上通常是 OST/MDS 服务节点或已挂载 Lustre 的客户端版本适配默认 glob 面向 Lustre 2.12.x。若你的集群是其他版本建议先在各节点执行ls /proc/fs/lustre/obdfilter/*/确认文件布局再通过ost_procfiles/mds_procfiles/mgs_procfiles定制权限注意brw_stats等文件可能因权限不足无法读取插件对此会以 Debug 日志记录并跳过不会导致整个采集失败可通过日志观察确认组合使用结合 Telegraf 通用过滤配置见 docs/CONFIGURATION.md可以按name、client、jobid标签拆分出“按客户端”“按作业”等不同维度的监控视图。相关资源插件文档plugins/inputs/lustre2/README.md实现源码plugins/inputs/lustre2/lustre2.goLinux、plugins/inputs/lustre2/lustre2_notlinux.go非 Linux 占位默认配置plugins/inputs/lustre2/sample.conf测试用例plugins/inputs/lustre2/lustre2_test.go 及 testcases 下的模拟数据目录【免费下载链接】telegrafAgent for collecting, processing, aggregating, and writing metrics, logs, and other arbitrary data.项目地址: https://gitcode.com/GitHub_Trending/te/telegraf创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
RELATED

相关推荐

openpi 最小推理客户端实战指南:使用 examples/simple_client 连接远端策略服务器并测速

openpi 最小推理客户端实战指南:使用 examples/simple_client 连接远端策略服务器并测速

openpi 最小推理客户端实战指南:使用 examples/simple_client 连接远端策略服务器并测速 【免费下载链接】openpi 项目地址: https://gitcode.com/GitHub_Trending/op/openpi 导读 examples/simple_client 是 openpi 仓库中一个依赖极简、开箱即用的最小客…

📅 2026/9/14 7:10:44
vue-neo4j实战:从Cypher查询到D3力导向图的可视化

vue-neo4j实战:从Cypher查询到D3力导向图的可视化

简介:vue-neo4j是一套基于Vue与D3.js对Neo4j图数据库进行可视化展示的前端源码工程,面向需要在前端实现图数据交互式可视化的开发者,帮助解决复杂关系数据在页面中直观呈现的问题。压缩包共91个文件,以JavaScript、Vue组件、Coffe…

📅 2026/9/14 7:10:44
OpenMetadata 实时摄取日志流(SSE):从轮询到推送的读路径设计与实现

OpenMetadata 实时摄取日志流(SSE):从轮询到推送的读路径设计与实现

OpenMetadata 实时摄取日志流(SSE):从轮询到推送的读路径设计与实现 【免费下载链接】OpenMetadata The Open Context Layer for Data and AI , OpenMetadata is the open platform for building trusted data context and business semantic…

📅 2026/9/14 7:10:44
MORE NEWS

更多资讯

📰

身份证翻译件去哪里弄?手把手教你3步搞定盖章翻译件

很多人办理签证、留学、移民的时候都需要身份证翻译件,这里提醒大家,单纯依靠翻译软件自己整理出来的译文大多没法直接使用,不少涉外机构办理业务时,一般会要求翻译文件带有翻译专用章、译员签名以及对应的翻译声明。大家可以试试…

📰

OpenClaw部署腾讯云:广告营销Agent基础设施实战指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📰

Spring Boot缓存机制:原理、优化与实战

1. Spring Boot缓存机制深度解析在当今高并发的互联网应用中,缓存技术已经成为提升系统性能的标配方案。Spring Boot作为Java领域最流行的应用框架,其内置的缓存抽象层为开发者提供了便捷的缓存集成方案。根据我的项目经验,合理使用缓存通常能…

📰

申请季急用!留学生成绩单翻译认证怎么办?加急多久能出件?一文说清

留学申请季时间紧张,很多同学因为课业繁忙、异地请假不便、线下跑腿耗等等问题,导致成绩单翻译认证不合规,或是出件慢错失院校截止日期!其实,用线上渠道就可以解决这些难题,比如微信、支付宝里的慧办好翻译…

📰

Java Swing+MySQL学生选课及成绩管理系统实战:从建表到答辩

简介:基于Java Swing MySQL的学生选课及成绩管理系统,是一套适合课程设计、毕设项目或Java入门实践的综合案例,面向需要完成选课、成绩管理等模块开发的学习者。资源包共包含50个文件,其中16个java源码文件覆盖登录、学生信息管…

📰

Telegraf Lustre2 输入插件实战指南:采集 Lustre 并行文件系统的 OST/MDS 运行指标

Telegraf Lustre2 输入插件实战指南:采集 Lustre 并行文件系统的 OST/MDS 运行指标 【免费下载链接】telegraf Agent for collecting, processing, aggregating, and writing metrics, logs, and other arbitrary data. 项目地址: https://gitcode.com/GitHub_Tre…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬