SwitchOps 交换机巡检

报告与历史数据

了解原始回显、Excel 巡检报告、失败清单、端口台账和 SQLite 历史库。

输出目录结构

每次运行按日期创建目录:

outputs/
├── history.db
└── YYYY-MM-DD/
    ├── raw/       # 每台设备的原始命令回显
    ├── reports/   # 巡检汇总和失败设备 Excel
    ├── queries/   # ARP、MAC、端口查询结果
    └── logs/      # app.log 运行日志

同一天多次运行会复用日期目录,通过文件名中的时间戳区分报告和查询文件。每台设备的原始巡检回显文件名不包含时间戳,因此同一天再次巡检同名、同 IP 设备时会覆盖当天上一份原始回显。

原始回显

raw/ 中每台设备对应一个 TXT 文件,内容按命令分段:

============================================================
设备:核心交换机-S12704-3F-01
IP:192.168.1.1
命令:display version
时间:2026-09-04 10:30:00
============================================================

<设备原始回显>

程序会先保存原始数据,再进行汇总解析。即使部分命令执行失败或解析规则未识别新型号回显,也可以通过原始文件人工复核。

Excel 巡检汇总

主报告文件名格式:

巡检汇总_YYYY-MM-DD_HHMMSS.xlsx

巡检汇总工作表

主要字段包括:

  • 巡检时间、设备名称、IP、厂商、型号、角色和位置;
  • 连接状态、设备主机名、软件版本和运行时间;
  • 板卡、电源、风扇和温度状态;
  • CPU、内存和磁盘使用率;
  • up/down 接口数量和接口错误数量;
  • ARP、MAC 数量;
  • 重点接口状态、异常摘要和巡检结论;
  • 对应的原始回显文件路径。

第一行自动加粗,工作表冻结首行并启用筛选。列宽会根据内容自动调整,最长限制为 60。

失败设备工作表与文件

存在连接失败设备时:

  • 主报告中增加“失败设备”工作表;
  • reports/ 中额外生成 失败设备_YYYY-MM-DD_HHMMSS.xlsx。

失败记录会保留设备信息、友好错误原因和“异常”结论,便于二次处理。

端口台账

当 display interface brief 或对应命令成功解析出接口行时,报告会增加“端口台账”工作表,包含:

字段说明
设备名称devices.yaml 中的名称。
IP 地址设备管理地址。
端口从 interface brief 回显中解析的接口名。
链路状态up 或 down。

普通 down 接口会进入数量和台账,但不会仅因为 down 就自动判定设备异常;只有配置为重点接口后,DOWN 才会直接影响结论。

巡检结论

Excel 中的结论使用颜色区分:

结论颜色常见条件
正常浅绿色未发现达到阈值的资源异常,设备状态正常,重点接口均为 UP。
关注浅黄色CPU/内存超过关注阈值、接口存在错误计数、部分硬件状态未知或重点接口状态未知。
异常浅红色连接失败、CPU/内存达到严重阈值、板卡/电源/风扇/温度异常或重点接口 DOWN。

默认资源判断规则:

  • CPU 或内存大于 80%:关注。
  • CPU 或内存大于等于 90%:异常。

阈值可以在 config/settings.yaml 中调整。解析结论适合帮助筛选,不应替代对原始回显、设备告警和监控平台的综合判断。

SQLite 历史库

启用 db_enabled 后,每次巡检结束都会把所有结果写入:

outputs/history.db

数据库使用 SQLite,无需安装独立数据库服务。写入失败只记录警告,不会阻止 Excel 报告生成。

使用 CLI 查看历史:

python cli.py trend
python cli.py trend --host 192.168.1.1 --limit 50

数据保留与备份

outputs/ 默认不提交 Git。生产使用时建议:

  • 根据巡检频率制定保留周期,避免原始回显和 Excel 长期占用磁盘。
  • 定期备份 history.db,备份前确保没有正在写入的巡检任务。
  • 原始回显可能包含 IP、MAC、VLAN、接口描述和网络拓扑线索,应按内部运维资料保护。
  • 分享 Excel 或 TXT 前先检查是否包含敏感信息。
  • 归档同一天多次巡检的原始回显时,应在再次运行前复制整个日期目录,避免同名文件覆盖。