迁移 / 监控
使用 Claude Code 将 PRTG 网络设备监控定义迁移到 Zabbix
【续篇】 #
继上次 UPS 篇之后,本次我们迁移了交换机、路由器和无线 AP 的混合环境。 我们充分利用了单一厂商设备的一致性,同时采用了”先注册、后启用”的安全流程。
与上一篇(UPS)的差异 #
上一篇的对象全部是 APC UPS,配置统一,因此只需应用一个模板即可立即完成。 本次的目标是 2023 年备份中混合的交换机、路由器和无线 AP。
本次迁移对象 #
在分析 PRTG 2023 年备份(PRTG Configuration.dat)后,
我们确定了 11 台网络设备作为迁移对象:
前期准备:向 Zabbix 服务器添加静态路由 #
目标设备存在于监控专用网段(以下称为 x.x.x.0/24)中。
由于 Zabbix 服务器到该网段没有路由,
我们在迁移工作之前添加了静态路由。
nmcli connection up。要添加静态路由,请结合使用
nmcli connection modify 和 ip route add。
执行 nmcli connection up 会导致接口临时断开,在生产环境中应避免这种情况。
# 持久化(重启后保留)
nmcli connection modify 'System eth1' +ipv4.routes 'x.x.x.0/24 x.x.x.1'
# 立即应用(仅当前会话)
ip route add x.x.x.0/24 via x.x.x.1 dev eth1给 Claude Code 的指令 #
这次,结合从 UPS 版本中汲取的经验教训,我们在指令中包含了需要暂停的模板映射确认步骤。 在 UPS 版本中,由于电压阈值差异导致警报错误触发。这次我们的目标是通过提前审查来防止此类问题。
I need to migrate network devices from a PRTG backup to Zabbix.
This time the environment has mixed switches, routers, and APs.
STEP 1: Parse XML. Classify devices into switch / router / ap / other and output to CSV.
STEP 2: Retrieve template list with template.get, create mapping table, and await confirmation.
Do not proceed to STEP 3 until I respond with "OK".
STEP 3: Create host groups and register devices by category.
※ Register all devices as Disabled (monitoring off). Enable individually after confirming SNMP connectivity.
STEP 4: Output difference confirmation report.
STEP 2 中的模板映射确认 #
Claude Code 从 Zabbix API 检索了模板列表并提出了以下映射。 由于所有设备都来自同一供应商,交换机、路由器和 AP 都可以使用相同的模板,没有问题。
switch → Network Generic Device by SNMP (templateid=10226)
router → Network Generic Device by SNMP (templateid=10226)
ap → Network Generic Device by SNMP (templateid=10226)
Interface: SNMP v2c / community=public / port=161
Registration Status: Disabled (all devices, enable individually after connectivity check)
注册结果 #
按类别的注册详情 #
交换机(5 台)
- 1 台核心交换机
- 4 台二层交换机(支持 PoE)
路由器(2 台)和 AP(4 台)
- 2 台边缘路由器(主/备)
- 4 台企业级无线 AP(跨站点分布)
与 UPS 版本对比:有何不同 #
✅ 保持不变的部分
- 直接解析备份 XML(无需服务器)
- Claude Code 自动生成并执行脚本
- 自动应用主机组和模板
- 注册后输出差异报告
📋 本次新增的部分
- 注册时按类别对设备分类
- 模板映射确认步骤(带暂停)
- 全部设备以 Disabled 状态注册(连接性检查后启用)
- 预先添加静态路由
重要注意事项:Syslog 传感器与 SNMP 连接性 #
如果希望 Zabbix 也接收 syslog,需要在 Zabbix 中单独配置 syslog 接收设置。 本次仅注册设备,syslog 配置延后至后续工作。
PRTG 传感器大多仅为 ping 的事实表明,设备端的 SNMP 配置未经验证或尚未配置。 在启用监控前,建议使用
snmp-server enable 验证设备端的 SNMP 设置并确认 community 字符串。
启用前检查清单 #
- 设备上是否启用了 SNMP 代理?(
snmp-server enable) - community string 是否已配置且与 Zabbix 端一致?
- Zabbix 服务器能否通过 UDP/161 与目标设备通信?
- 验证从 Zabbix 执行
snmpwalk是否返回实际响应
当前状态与剩余工作 #
相比 UPS 版的改进 #
-
应用模板前务必预先确认
在 UPS 版中,由于电压阈值差异导致了错误告警。本次我们设计流程时,始终在 STEP 2 要求暂停,由人工确认映射表后再继续。 -
将连接性未确认的设备以禁用状态注册
查看 PRTG 传感器配置时,许多设备缺少 SNMP 设置。 先注册而不立即激活,后续确认更为安全。 -
在提示词中包含环境预确认内容
当您在提示词开头包含必要的环境准备工作(如添加静态路由)时, Claude Code 会在执行迁移脚本前提示确认步骤。 -
明确指定类别分类规则
从设备名称推断类别时,具体列举命名规则(前缀/后缀)。 这样可以提高分类准确性。
后续步骤 #
完成全部 11 台已注册设备的 SNMP 连接性确认后, 我们将逐台启用监控。 同时也在考虑为部分路由器添加 syslog 接收配置。
在 PRTG 中仅有 ping 传感器的设备,现在通过利用 Zabbix 模板, 可以无需额外成本地监控 CPU 使用率、接口流量、内存使用率等更多指标。 迁移不是目标——而是提升监控质量的起点。