You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

通过Zabbix利用SNMP获取网络设备配置文件方法咨询

用SNMP获取网络设备配置(基于Zabbix现有环境)

前提条件

  • 已通过SNMP完成Zabbix与路由器/防火墙等设备的连通,可监控基础资源
  • 设备支持SNMP读写权限(需配置具备write权限的社区字符串或SNMPv3读写组)
  • 若采用TFTP中转方式,需准备可被设备访问的TFTP服务器

具体实现步骤

1. 设备端配置(以Cisco设备为例)

  • 启用配置相关SNMP陷阱:
    snmp-server enable traps config
    
  • 确认设备可访问TFTP服务器(配置对应路由、防火墙规则)
  • 记住关键OID:
    • Running-config OID:1.3.6.1.4.1.9.9.96.1.1.1.1.2.1
    • Startup-config OID:1.3.6.1.4.1.9.9.96.1.1.1.1.2.2
    • ConfigCopyMIB触发OID:1.3.6.1.4.1.9.9.96.1.1.1.1(用于触发配置导出到TFTP)

2. Zabbix端操作方案

方案一:直接通过SNMP读取配置OID

适合小型配置文件,通过Zabbix自定义脚本调用SNMP工具批量获取内容:

  • 编写bash脚本(示例):
    #!/bin/bash
    # 参数:设备IP
    SNMP_COMM="your_read_community"
    RUN_CFG_OID="1.3.6.1.4.1.9.9.96.1.1.1.1.2.1"
    snmpbulkwalk -v2c -c $SNMP_COMM $1 $RUN_CFG_OID | awk -F': ' '{print $2}' > /zabbix/config_backups/${1}_running.cfg
    
  • 在Zabbix中创建自定义监控项,设置为主动式或被动式调用该脚本,定时执行备份

方案二:通过SNMP触发设备导出配置到TFTP,再拉取到Zabbix

适合大配置文件,避免SNMP传输超时:

  • 编写触发脚本(示例):
    #!/bin/bash
    # 参数:设备IP
    SNMP_WRITE_COMM="your_write_community"
    TFTP_SERVER="tftp://x.x.x.x/config_backups"
    # 触发running-config导出到TFTP
    snmpset -v2c -c $SNMP_WRITE_COMM $1 \
    1.3.6.1.4.1.9.9.96.1.1.1.1.3.1 i 1 \
    1.3.6.1.4.1.9.9.96.1.1.1.1.4.1 s "${TFTP_SERVER}/${1}_running.cfg" \
    1.3.6.1.4.1.9.9.96.1.1.1.1.5.1 i 1
    # 从TFTP拉取到Zabbix服务器
    tftp -g -r ${1}_running.cfg x.x.x.x -l /zabbix/config_backups/${1}_running.cfg
    
  • 同样在Zabbix中配置定时执行的自定义监控项或自动发现规则

参考文章核心内容(原英文文章翻译)

  1. 多数Cisco IOS设备支持ConfigCopyMIB,该MIB是通过SNMP操作配置文件的核心依据
  2. 必须确保SNMP字符串具备读写权限,否则无法触发配置导出操作
  3. 直接读取配置OID时,推荐使用SNMP v2c/v3的GET-BULK命令,相比v1的GET-NEXT效率更高,适合大文本内容
  4. 若设备配置较大,优先选择TFTP中转方式,避免SNMP单次传输超时或长度限制问题
  5. 操作前需验证设备与TFTP服务器的连通性,避免配置导出失败

内容的提问来源于stack exchange,提问作者Arafat Absi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 07:33:23