SwitchOps 交换机巡检

设备清单配置

配置 devices.yaml 中的交换机连接信息、设备类型、启停状态和重点接口。

配置文件位置

设备清单默认位于:

config/devices.yaml

仓库提供 config/devices.example.yaml 作为模板。真实文件包含登录凭据,默认不会被 Git 跟踪。

完整示例

config/devices.yaml
devices:
  - name: "核心交换机-S12704-3F-01"
    host: "192.168.1.1"
    port: 22
    vendor: "huawei"
    model: "S12704"
    device_type: "huawei"
    username: "inspect_user"
    password: "请替换为真实密码"
    secret: ""
    need_super: false
    role: "core"
    location: "三楼机房"
    enabled: true
    watch_interfaces:
      - "GigabitEthernet2/0/7"
      - "GigabitEthernet2/0/8"

  - name: "接入交换机-S5720-01"
    host: "192.168.1.2"
    port: 22
    vendor: "huawei"
    model: "S5720-52P-SI"
    device_type: "huawei"
    username: "inspect_user"
    password: "请替换为真实密码"
    secret: "请按实际情况填写"
    need_super: true
    role: "access"
    location: "一楼弱电间"
    enabled: true

  - name: "汇聚交换机-H3C-S5130S-01"
    host: "192.168.1.3"
    port: 22
    vendor: "h3c"
    model: "S5130S-52S-HI"
    device_type: "hp_comware"
    username: "inspect_user"
    password: "请替换为真实密码"
    secret: ""
    need_super: false
    role: "aggregation"
    location: "二楼弱电间"
    enabled: true

YAML 只能使用空格缩进,不要使用 Tab。

字段说明

字段必填默认值说明
name是无设备显示名称,也可以作为 CLI 的 --target。
host是无交换机管理 IP 或可解析的主机名。
device_type是无Netmiko 平台类型;华为使用 huawei,华三使用 hp_comware。
username是无SSH 登录用户名。
password是无SSH 登录密码。
port否22SSH 端口。
vendor否空厂商标识,也是选择命令模板的首选键。建议填写。
model否空设备型号,用于界面和报告展示。
secret否空进入特权模式时使用的密码。
need_super否false是否在连接后尝试进入特权模式。
role否空设备角色,例如 core、aggregation、access。
location否空机房、楼层或弱电间位置。
enabled否true是否参与全量巡检和查询。
watch_interfaces否空列表需要额外检查的重点接口名称。

程序加载配置时会检查 name、host、device_type、username 和 password。其中任意字段缺失,整个设备清单都会加载失败并显示对应序号。

厂商与设备类型

华为 VRP

vendor: "huawei"
device_type: "huawei"

华三 Comware

vendor: "h3c"
device_type: "hp_comware"

device_type 直接传给 Netmiko。设备能 ping 通但 SSH 登录后命令提示符识别失败时,应优先核对这个字段。

命令模板的选择顺序为:

  1. 尝试匹配 vendor。
  2. 尝试匹配 device_type。
  3. 将 hp_comware 映射到 h3c_comware。
  4. 包含 huawei 的设备类型映射到 huawei。

启用与停用设备

临时不需要巡检某台设备时,不必删除配置,改为:

enabled: false

禁用设备仍会显示在 GUI 设备表中,但不会出现在查询下拉列表中,也不会参加全量或选中巡检。

配置重点接口

watch_interfaces 适合监控:

  • 核心交换机上联口;
  • 防火墙、路由器互联口;
  • 服务器、存储或虚拟化平台接口;
  • 关键科室或重点业务链路接口。
watch_interfaces:
  - "GigabitEthernet2/0/7"
  - "XGigabitEthernet1/0/48"

巡检时程序会为每个重点接口额外执行一次接口查询命令:

  • 状态为 UP:保留状态,不改变原巡检结论。
  • 状态为 DOWN:巡检结论调整为“异常”。
  • 无法识别状态:巡检结论至少为“关注”。

接口名称必须使用设备 CLI 能识别的完整名称。如果名称错误,查询回显仍会写入原始文件,报告中会标记为未知或关注。

账号配置建议

  • 单独创建只读巡检账号,不与网络管理员个人账号共用。
  • 仅授予查看版本、设备状态、接口、VLAN、ARP 和 MAC 表的权限。
  • 对源 IP、登录时间和并发会话数设置合理限制。
  • 定期更换密码,并同步更新受控环境中的 devices.yaml。
  • 限制配置文件的本地读取权限,避免通过共享目录扩散。
  • 不要在设备名称、位置或其他展示字段中填写密码和敏感信息。