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 | 否 | 22 | SSH 端口。 |
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 登录后命令提示符识别失败时,应优先核对这个字段。
命令模板的选择顺序为:
- 尝试匹配
vendor。 - 尝试匹配
device_type。 - 将
hp_comware映射到h3c_comware。 - 包含
huawei的设备类型映射到huawei。
启用与停用设备
临时不需要巡检某台设备时,不必删除配置,改为:
enabled: false
禁用设备仍会显示在 GUI 设备表中,但不会出现在查询下拉列表中,也不会参加全量或选中巡检。
配置重点接口
watch_interfaces 适合监控:
- 核心交换机上联口;
- 防火墙、路由器互联口;
- 服务器、存储或虚拟化平台接口;
- 关键科室或重点业务链路接口。
watch_interfaces:
- "GigabitEthernet2/0/7"
- "XGigabitEthernet1/0/48"
巡检时程序会为每个重点接口额外执行一次接口查询命令:
- 状态为
UP:保留状态,不改变原巡检结论。 - 状态为
DOWN:巡检结论调整为“异常”。 - 无法识别状态:巡检结论至少为“关注”。
接口名称必须使用设备 CLI 能识别的完整名称。如果名称错误,查询回显仍会写入原始文件,报告中会标记为未知或关注。
账号配置建议
- 单独创建只读巡检账号,不与网络管理员个人账号共用。
- 仅授予查看版本、设备状态、接口、VLAN、ARP 和 MAC 表的权限。
- 对源 IP、登录时间和并发会话数设置合理限制。
- 定期更换密码,并同步更新受控环境中的
devices.yaml。 - 限制配置文件的本地读取权限,避免通过共享目录扩散。
- 不要在设备名称、位置或其他展示字段中填写密码和敏感信息。