
如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
TFS UFM插件旨在从配置的UFM Telemetry HTTP端点提取计数器数据,并将其实时流式传输到配置的Fluentd收集器。NVIDIA UFM Telemetry平台提供网络性能和状态监控工具,捕获并流式传输丰富的实时网络遥测信息及应用工作负载使用情况至本地或云数据库以进行进一步分析。作为网络管理器,UFM Telemetry持有网络拓扑的实时遥测信息,TFS插件通过流式传输这些数据至Fluentd,确保信息随时间变化能及时反映到遥测控制台。
!https://raw.githubusercontent.com/Mellanox/ufm_sdk_3.0/main/plugins/fluentd_telemetry_plugin/TFS_Architecture.png
telemetry_request_timeout选项,默认值为60秒。enable_cached_stream_on_telemetry_fail选项(默认:true):当遥测端点不可用时,允许流式传输上次成功迭代的缓存数据,以提升遥测端点故障期间的用户体验。bashenable
bashconfig terminal
bashshow ufm status
bashufm start
bashno docker shutdown
bashdocker pull docker.xuanyuan.run/mellanox/ufm-plugin-tfs
bashdocker save mellanox/ufm-plugin-tfs:latest | gzip > ufm-plugin-tfs.tar.gz
bashimage fetch scp://user@hostname/path-to-file/ufm-plugin-tfs.tar.gz
bashdocker load ufm-plugin-tfs.tar.gz
bashufm plugin tfs add
bashshow ufm plugin
bashdocker pull docker.xuanyuan.run/mellanox/ufm-plugin-tfs
bashdocker save mellanox/ufm-plugin-tfs:latest | gzip > ufm-plugin-tfs.tar.gz
bashdocker load -i </[some-shared-location]/ufm-plugin-tfs.tar.gz
bash/opt/ufm/scripts/manage_ufm_plugins.sh add -p tfs
bashdocker exec ufm /opt/ufm/scripts/manage_ufm_plugins.sh add -p tfs
bash/opt/ufm/scripts/manage_ufm_plugins.sh show
bashdocker exec ufm /opt/ufm/scripts/manage_ufm_plugins.sh show
bashdocker pull docker.xuanyuan.run/fluent/fluentd
bashdocker run -ti --rm --network host -v /tmp/fluentd:/fluentd/etc docker.xuanyuan.run/fluentd -c /fluentd/etc/fluentd.conf -v
TFS支持通过IPv6向Fluent目标流式传输数据,需确保Fluent监听IPv6接口,将https://github.com/Mellanox/ufm_sdk_3.0/blob/main/plugins/fluentd_telemetry_plugin/conf/fluentd.conf#L4%EF%BC%88***d 0.0.0.0)替换为(***d ::)。
日志文件位置:主机上日志文件位于/opt/ufm/files/log/plugins/tfs/tfs.log;对于低于6.17.0版本的UFM,日志文件位于/opt/ufm/files/log/tfs.log。
| 参数 | 是否必填 | 描述 |
|---|---|---|
| fluentd-endpoint.host | 是 | Fluentd端点的主机名、IPv4或IPv6 |
| fluentd-endpoint.port | 是 | Fluentd端点端口(应与https://github.com/Mellanox/ufm_sdk_3.0/blob/main/plugins/fluentd_telemetry_plugin/conf/fluentd.conf#L4%E4%B8%AD%E9%85%8D%E7%BD%AE%E7%9A%84%E7%AB%AF%E5%8F%A3%E4%B8%80%E8%87%B4%EF%BC%89 |
| fluentd-endpoint.timeout | 是 | Fluentd端点流传输超时时间(默认120秒) |
| ufm-telemetry-endpoint.host | 是 | UFM Telemetry端点的主机名、IPv4或IPv6(默认127.0.0.1) |
| ufm-telemetry-endpoint.port | 是 | UFM Telemetry端点端口(默认9001) |
| ufm-telemetry-endpoint.url | 是 | UFM Telemetry端点URL(默认'csv/metrics',Prometheus格式可使用'metrics') |
| ufm-telemetry-endpoint.interval | 是 | 流传输间隔(默认10秒) |
| ufm-telemetry-endpoin***ssage_tag_name | 否 | Fluentd端点消息的标签名(默认ufm-telemetry-endpoint.host:ufm-telemetry-endpoint.port) |
| streaming.bulk_streaming | 是 | 若为True,所有遥测记录将在一条消息中流式传输;否则每条记录单独传输(默认True) |
| streaming.compressed_streaming | 是 | 若为True,流数据将以gzip压缩的JSON发送(需确保Fluentd接收器配置正确,见Fluentd部署配置部分);否则以纯文本JSON发送(默认True) |
| streaming.stream_only_new_samples | 是 | 若为True,插件仅流式传输变化的值(默认True) |
| streaming.enabled | 是 | 若为True,在所需配置设置后启动流传输(默认False) |
| logs-config.logs_file_name | 是 | 日志文件名(默认'/log/tfs.log') |
| logs-config.logs_level | 是 | 日志级别(默认'INFO') |
| logs-config.max_log_file_size | 是 | 日志文件最大大小(字节,默认10 MB) |
| logs-config.log_file_backup_count | 是 | 备份日志文件最大数量(默认5) |
提供以下REST API用于设置插件配置:
方法:POST
URL:https://[HOST-IP]/ufmRest/plugin/tfs/conf
cURL示例:
curlcurl --location 'https://<UFM_IP>/ufmRest/plugin/tfs/conf' \ --header 'Content-Type: application/json' \ --data '{ "fluentd-endpoint": { "host": "<FLUENT_RECIEVER_IP>", "port": 24224, "timeout": 120 }, "streaming": { "enabled": true, "stream_only_new_samples": false }, "ufm-telemetry-endpoint": [ { "host": "127.0.0.1", "interval": <COLLECTING_INTERVAL_SECONDS, e.g. 30>, "port": <TELEMETRY_HTTP_PORT, e.g. 9001>, "url": <TELEMETRY_CSET_URL, e.g. csv/metrics OR csv/cset/converted_enterprise> } ] }' -k -u <UFM_USERNAME>:<UFM_PASSWORD>
完整Payload示例:
json{ "ufm-telemetry-endpoint": [{ "host": "127.0.0.1", "url": "csv/metrics", "port": 9001, "interval": 30, "message_tag_name": "high_freq_endpoint" }], "fluentd-endpoint": { "host": "10.209.36.68", "port": 24226 }, "streaming": { "compressed_streaming": false, "bulk_streaming": true, "enabled": true, "stream_only_new_samples": true }, "logs-config": { "log_file_backup_count": 5, "log_file_max_size": 10485760, "logs_file_name": "/log/tfs.log", "logs_level": "INFO" }, "meta-fields":{ "alias_node_description": "node_name", "alias_node_guid": "AID", "add_type":"csv" } }
提供以下REST API用于获取当前插件配置:
方法:GET
URL:https://[HOST-IP]/ufmRest/plugin/tfs/conf
cURL示例:
curlcurl --location 'https://<UFM_IP>/ufmRest/plugin/tfs/conf' -k -u <UFM_USERNAME>:<UFM_PASSWORD>
响应示例:
json{ "ufm-telemetry-endpoint": [{ "host": "127.0.0.1", "url": "csv/metrics", "port": 9001, "interval": 30, "message_tag_name": "high_freq_endpoint" }], "fluentd-endpoint": { "host": "10.209.36.68", "port": 24226 }, "streaming": { "compressed_streaming": false, "bulk_streaming": true, "enabled": true, "stream_only_new_samples": true }, "logs-config": { "log_file_backup_count": 5, "log_file_max_size": 10485760, "logs_file_name": "/log/tfs.log", "logs_level": "INFO" }, "meta-fields":{ "alias_node_description": "node_name", "alias_node_guid": "AID", "add_type":"csv" } }
可配置TFS插件从多个端点轮询指标,每个端点有独立的轮询/流传输间隔。通过conf API添加遥测端点配置即可。
多UFM Telemetry端点Payload示例:
json{ "ufm-telemetry-endpoint": [{ "host": "127.0.0.1", "url": "csv/metrics", "port": 9001, "interval": 10, "message_tag_name": "high_freq_endpoint" },{ "host": "127.0.0.1", "url": "csv/metrics", "port": 9002, "interval": 60, "message_tag_name": "low_freq_endpoint" }], "fluentd-endpoint": { "host": "10.209.36.68", "port": 24226 } }
UFM Telemetry内置的分片功能支持从多个遥测指标端点高效轮询数据,适用于数据量大或带宽有限的网络环境。
如何在TFS中使用分片
需在配置的遥测端点URL中添加特定参数:num_shards(分片总数)、shard(当前分片索引)、sharding_field(分片字段)。
分片配置Payload示例:
json{ "ufm-telemetry-endpoint": [{ "host": "127.0.0.1", "url": "csv/xcset/ib_basic_debug?num_shards=3&shard=0&sharding_field=port_guid", "port": 9002, "interval": 120 },{ "host": "127.0.0.1", "url": "csv/xcset/ib_basic_debug?num_shards=3&shard=1&sharding_field=port_guid", "port": 9002, "interval": 120 },{ "host": "127.0.0.1", "url": "csv/xcset/ib_basic_debug?num_shards=3&shard=2&sharding_field=port_guid", "port": 9002, "interval": 120 }], "fluentd-endpoint": { "host": "10.209.36.68", "port": 24226 } }
分片调优
为获得最佳性能,建议调整分片使单个分片传输时间约为10-15秒,以避免遥测服务器超时。可根据网络状况调整分片数量(如网络较慢时增加分片数)。
元字段是可添加到TFS流传输记录中的自定义字段,分为别名(Aliases)和常量(Constants)。
别名(Aliases)
重命名记录中已有的字段,仅匹配精确字段名。
语法:alias_originalFieldName=aliasName
示例:将"node_guid"重命名为"AID":alias_node_guid=AID
常量(Constants)
添加具有固定值的新字段。
语法:add_newFieldName=constantValue
示例:添加"type"字段,值为"csv":add_type=csv
配置示例
json{ "meta-fields": { "alias_node_description": "node_name", "alias_node_guid": "AID", "add_type": "csv" } }
预期输出
json{ "timestamp": "1644411135311315", "source_id": "0xe41d2d030003e450", "node_guid": "e41d2d030003e450", "port_guid": "e41d2d030003e450", "port_num": "10", "node_description": "SwitchIB Mellanox Technologies", "node_name": "SwitchIB Mellanox Technologies", "AID": "e41d2d030003e450", "type": "csv" }
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务