Oxidized 网络设备配置备份教程

Oxidized 是一款用 Ruby 编写的网络设备配置备份工具,是传统 RANCID 的现代化替代品。它可以自动通过 SSH 或 Telnet 连接网络设备,提取运行配置并保存到本地文件系统或 Git 仓库中,实现配置的版本控制和变更追踪。Oxidized 支持超过 130 种网络设备,包括 Cisco、Juniper、Huawei、MikroTik、Fortinet 等主流品牌。

一、安装 Oxidized

1.1 安装 Ruby 和依赖

apt update
apt install ruby ruby-dev libsqlite3-dev libssl-dev pkg-config cmake libssh2-1-dev libicu-dev zlib1g-dev g++ -y

1.2 安装 Oxidized

gem install oxidized
gem install oxidized-script oxidized-web

1.3 使用 Docker 安装

docker run -d --name oxidized \
    -v /opt/oxidized:/home/oxidized/.config/oxidized \
    -p 8888:8888/tcp \
    --restart unless-stopped \
    oxidized/oxidized:latest

二、基本配置

# 首次运行生成默认配置
oxidized

# 编辑配置文件
nano ~/.config/oxidized/config

主配置文件示例:

---
username: admin
password: password
model: junos
resolve_dns: true
interval: 3600
use_syslog: false
log: /home/oxidized/.config/oxidized/logs/oxidized.log
debug: false
threads: 30
timeout: 20
retries: 3
prompt: !ruby/regexp /^([\w.@-]+[#>]\s?)$/

rest: 0.0.0.0:8888

input:
  default: ssh, telnet
  debug: false
  ssh:
    secure: false

output:
  default: git
  git:
    user: Oxidized
    email: oxidized@example.com
    repo: /home/oxidized/.config/oxidized/devices.git

source:
  default: csv
  csv:
    file: /home/oxidized/.config/oxidized/router.db
    delimiter: !ruby/regexp /:/
    map:
      name: 0
      model: 1
      username: 2
      password: 3

model_map:
  cisco: ios
  juniper: junos
  huawei: vrp

三、添加设备清单

# 创建设备清单文件
cat > ~/.config/oxidized/router.db << 'EOF'
192.168.1.1:ios:admin:password
192.168.1.2:junos:admin:password
192.168.1.3:vrp:admin:password
10.0.0.1:routeros:admin:password
EOF

四、配置 Git 存储

# 初始化 Git 仓库
mkdir -p ~/.config/oxidized/devices.git
cd ~/.config/oxidized/devices.git
git init --bare

# 也可以推送到远程 Git 仓库
git remote add origin git@github.com:yourname/network-configs.git

五、配置 systemd 服务

cat > /etc/systemd/system/oxidized.service << 'EOF'
[Unit]
Description=Oxidized Network Configuration Backup
After=network.target

[Service]
Type=simple
User=oxidized
ExecStart=/usr/local/bin/oxidized
Restart=on-failure
RestartSec=30

[Install]
WantedBy=multi-user.target
EOF

systemctl daemon-reload
systemctl enable oxidized
systemctl start oxidized

六、Web 界面

Oxidized 内置了一个 REST API 和简单的 Web 界面,默认监听在 8888 端口。访问 http://你的服务器IP:8888 可以查看设备列表、配置内容和备份状态。

# API 使用示例
# 查看所有设备
curl http://localhost:8888/nodes.json

# 查看特定设备的配置
curl http://localhost:8888/node/fetch/192.168.1.1

# 触发单个设备的立即备份
curl -X PUT http://localhost:8888/node/next/192.168.1.1

七、与 LibreNMS 集成

Oxidized 可以从 LibreNMS 自动获取设备列表,无需手动维护 router.db 文件:

# 在 Oxidized 配置中使用 http source
source:
  default: http
  http:
    url: http://librenms.example.com/api/v0/oxidized
    map:
      name: hostname
      model: os
      group: group
    headers:
      X-Auth-Token: your_librenms_api_token

八、常见问题

8.1 SSH 连接超时

# 增加超时时间
timeout: 30
retries: 5

# 检查 SSH 连通性
ssh -o ConnectTimeout=10 admin@192.168.1.1

8.2 设备型号不支持

Oxidized 使用模型(model)来定义与不同设备的交互方式。可以查看支持的模型列表或自定义模型。

# 查看支持的设备模型
ls /var/lib/gems/*/gems/oxidized-*/lib/oxidized/model/

总结

Oxidized 是网络运维中不可或缺的配置备份工具,结合 Git 版本控制可以精确追踪每一次配置变更。建议将其与 LibreNMSNetBox 集成,构建完整的网络管理平台。选购搬瓦工 VPS 请参考 全部方案,购买时使用优惠码 NODESEEK2026 可享受 6.77% 的优惠,通过 bwh81.net 进入官网购买。

关于本站

搬瓦工VPS中文网(bwgvps.com)是非官方中文信息站,整理搬瓦工的方案、优惠和教程。我们不销售主机,不提供技术服务。

新手必读
搬瓦工优惠码

NODESEEK2026(优惠 6.77%)

购买时填入即可抵扣。