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

Python TextFSM解析ISIS数据库时IP Metric漏抓问题排查求助

问题根因
  • 跳转逻辑错误:你在Metrics状态匹配到IP类型的Metric后直接执行-> Record Start,会在匹配到第一条IP Metric时立刻触发当前记录存储、并跳回Start状态解析下一个LSP,导致当前LSP剩余的IP Metric直接被跳过。
  • 无IP Metric的LSP存在记录风险:类似ROUTER_K这类没有IP段Metric的LSP,因为永远不会走到你预设的-> Record触发点,只能靠下一个LSP的匹配隐式触发记录,容易出现字段丢失问题。
  • 正则冗余:OVERLOAD_BIT的正则规则[0,1]多写了多余的逗号,会把逗号也纳入可匹配字符范围,虽然当前样本没触发问题,但存在隐患。
修复后的TextFSM模板
Value Required LSPID (.*\.\d+\-00)
Value OVERLOAD_BIT ([01])
Value HOSTNAME (.*)
Value IPADD (\d+\.\d+\.\d+\.\d+)
Value List CONNECTED_METRIC (\d+)
Value List LSPID_PEER (.*)
Value List SUBNET_METRIC (\d+)
Value List SUBNET (\d+\.\d+\.\d+\.\d+\/\d+)

Start
        # 匹配到新LSP起始行时,先记录上一个LSP的解析结果,再处理当前行
        ^${LSPID}.*[01]/[01]/${OVERLOAD_BIT} -> Record Start
        ^\s+Hostname:\s+${HOSTNAME}
        ^\s+IP\s+Address:\s+${IPADD} -> Metrics

Metrics
        # 匹配IS扩展类型Metric,匹配后留在Metrics状态继续解析后续内容
        ^\s+Metric:\s+${CONNECTED_METRIC}\s+IS-Extended\s+${LSPID_PEER}
        # 匹配IP类型Metric,匹配后留在Metrics状态继续解析后续内容
        ^\s+Metric:\s+${SUBNET_METRIC}\s+IP\s+${SUBNET}
        # 匹配到新LSP起始行,说明当前LSP解析完成,跳回Start触发记录
        ^${LSPID}.*[01]/[01]/${OVERLOAD_BIT} -> Start
        # 忽略当前LSP中不需要解析的其他字段
        ^\s+.* -> Continue
验证说明

修改后解析时会遍历当前LSP的所有Metric字段后再触发记录,所有IP类型的Metric都会被正常捕获,没有IP Metric的LSP也能正常生成完整记录。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 06:06:03