简介

net_inspect 是一个Python的库,用于将获取到的网络设备信息进行解析,统一数据调度的框架。

使用 net_inspect 可以很方便的做到处理批量设备信息,多厂商型号设备数据统一调度和输出。

特性:

  • 离线处理设备命令回显

  • 命令回显准确分割

  • 智能识别设备名称,厂商,型号,版本,序列号等信息。

  • 智能分析设备的运行状态

  • 多厂商都采用统一的数据结构模型

  • 采用框架设计,方便自定义扩展

安装

net_inspect 可以在Linux和Windows平台下使用, 需要 Python 3.7 及其以上版本。

你可以使用 PyPi 去安装 net_inspect:

pip install net_inspect

使用 -U 执行更新操作。

net_inspect 依赖 ntc-templates-elinpf, 所以如果你已经安装了 ntc-templates, 那么需要先将 ntc-templates 删除掉。

pip uninstall ntc-templates

请放心 ntc-templates-elinpf 完全兼容 ntc-templates,并且支持更多国产设备的命令。

安装完成后,通过命令行 net_inspect --help 查看是否安装成功。

../_images/help_menu.png

快速上手

net_inspect 的使用非常简单,对于常规查看操作,可以使用命令行模式。

net_inspect -i logs

net_inspect 会自动识别 logs 目录下的所有设备信息,然后进行解析,最后将结果输出到屏幕上。

隐藏了一个默认的选项 -I console, 也就是默认的输入格式是 console 的格式。 这里的 logs 目录下的文件是通过CLI获取到的设备信息,比如 show version 的输出结果。 文件后缀可以是 .txt 也可以是 .log

console input 样式 查看log文件样式。

代码示例

作为一个框架, net_inspect 可以很方便的集成到你的代码中,比如下面的代码示例。

logs 目录下包含了三台设备的console信息,分别是一台华为交换机和两台华三交换机。

from net_inspect import NetInspect

net = NetInspect()
net.set_plugins(input_plugin='console')
net.run(input_path='logs')

print('total devices:', len(net.cluster.devices))

for device in net.cluster.devices:
    info = device.info
    print(' | '.join([info.hostname, info.ip, info.vendor,
        info.version, info.model, info.cpu_usage]))

上面的代码展示了如何使用 net_inspectNetInspect 进行批量设备信息的解析,然后不同厂商的信息内容通过统一的接口调用, 将指定内容输出到屏幕上。

输出内容如下:

total devices: 3
Switch_A | 24.44.1.248 | Huawei | 5.170 | S12704 Terabit Routing Switch | 6%
Switch_B | 24.45.1.240 | H3C | 5.20 Release: 3342 | SR8800 | 5%
Switch_C | 24.45.254.254 | H3C | 5.20 Release: 1238P08 | S9508E-V | 1%