查看博客目录

保姆级教程:10分钟搭建 Oxidized,实现网络设备配置自动备份

今天分享一个开源神器——Oxidized

还在为复杂的依赖安装头疼吗?今天教你用Docker 10分钟搞定Oxidized,轻松实现网络设备配置自动备份!

一、Oxidized 是什么

**Oxidized 是一个开源、轻量级的网络设备配置自动备份工具。**支持超过 130 种操作系统类型

简单说,它做到了三件事:

  1. 自动备份:定时自动备份网络设备配置

  2. 版本管理:记录每次配置变化,形成历史版本

  3. 集中管理:统一管理所有网络设备的配置文件

二、Oxidized 组成

config 文件:oxidized 配置文件

Sources 字段:定位 router.db 文件的位置

Outputs 字段 :设备备份文件的存储位置

router.db文件:被管网络设备详细信息

model 字段:设备厂商所用的系统, 核心功能就是靠这个实现的(包含各个厂商设备的查看配置脚本)

oxidized 项目地址:https://github.com/ytti/oxidized

支持os类型:https://github.com/ytti/oxidized/blob/master/docs/Supported-OS-Types.md

三、使用 Docker 安装部署

1、环境准备

在开始安装前,确保你的系统满足以下要求:

  • 🖥️ Linux/Unix系统(本文以centos为例)
  • ☕ 已安装好Docker 和 Docker Compose

2、安装示例

# 1. 在 root 用户的家目录下创建名为 "oxidized" 的目录
[root@localhost ~]# mkdir oxidized

# 2. 切换到新创建的目录,并编辑 docker-compose.yml
[root@localhost oxidized]# cd oxidized && vim docker-compose.yml

services:
  oxidized:
    restart: always
    image: docker.io/oxidized/oxidized:latest
    container_name: oxidized
    ports:
      - 8888:8888
    environment:
      TZ: Asia/Shanghai
    volumes:
      - /root/oxidized/oxidized-config:/home/oxidized/.config/oxidized

# 3. 启动 Docker Compose 服务
[root@localhost oxidized]# docker compose up -d

查看容器运行是否成功:docker compose ps -a

保姆级教程:10分钟搭建 Oxidized,实现网络设备配置自动备份 配图 1

查看日志:docker compose logs oxidized -n 20

保姆级教程:10分钟搭建 Oxidized,实现网络设备配置自动备份 配图 2

发现报错,原因如下:

1、需提前配置config文件,使用docker启动之后目录下会多了一个oxidized-config目录,config文件就在这个目录下面

保姆级教程:10分钟搭建 Oxidized,实现网络设备配置自动备份 配图 3

修改config文件,参考如下:

vim /root/oxidized/oxidized-config/config

---
username: username
password: password
model: junos
resolve_dns: true
interval: 3600      # 备份间隔时间,单位秒
debug: false
run_once: false
threads: 30         # 并发线程数
use_max_threads: false
timeout: 20         # 单次连接/命令交互超时(秒)
timelimit: 300      # 单个作业整体时间上限(秒)
retries: 3          # 连接失败重试次数
prompt: !ruby/regexp /^([\w.@-]+[#>]\s?)$/
next_adds_job: false
vars: {}
groups: {}
group_map: {}
models: {}
pid: "/home/oxidized/.config/oxidized/pid"

extensions:
  oxidized-web:
    load: true
    listen: 0.0.0.0
    port: 8888

crash:
  directory: "/home/oxidized/.config/oxidized/crashes"
  hostnames: false

stats:
  history_size: 10

input:
  default: ssh, telnet
  debug: false
  ssh:
    secure: false
  ftp:
    passive: true
  utf8_encoded: true

output:
  default: git
  git:
    user: Oxidized
    email: [email protected]
    repo: "/home/oxidized/.config/oxidized/git-repos/default.git"

source:
  default: csv
  csv:
    file: "/home/oxidized/.config/oxidized/router.db"
    delimiter: !ruby/regexp /:/
    map:
      name: 0
      ip: 1
      model: 2
      username: 3
      password: 4
      group: 5
    gpg: false

model_map:
  juniper: junos
  cisco: ios

2、编辑完配置文件后,在相同路径下创建一个router.db文件,用来存储主机基本信息并被config文件调用

我这里分别拿一台华为和H3C设备测试,以下填写的信息就是对应上面config配置中map的顺序

vim /root/oxidized/oxidized-config/router.db
huawei-ce12800:192.168.225.2:vrp:admin:test@123456:group1
H3C-vFW1000:192.168.225.5:comware:admin:test@123456:group2

上面配置完成后使用 docker compose restart oxidized 重启容器

可以看到已无报错并监听了8888端口

保姆级教程:10分钟搭建 Oxidized,实现网络设备配置自动备份 配图 4

四、效果展示

通过 http://ip地址:8888 可访问web界面

保姆级教程:10分钟搭建 Oxidized,实现网络设备配置自动备份 配图 5

Oxidized Web 参数介绍

last status: 绿色(备份正常), 蓝色(正在备份), 红色(备份失败)

last update: 上一次备份的时间(配置文件里面默认1个小时 自定义修改interval的值即可)

action: 点击第一个图标就能看到设备备份文件内容,第二个图标为配置文件比对, 第三个图标为手动强制备份.

1、以下是查看配置内容

保姆级教程:10分钟搭建 Oxidized,实现网络设备配置自动备份 配图 6

2、修改配置后重新备份查看配置比对情况

保姆级教程:10分钟搭建 Oxidized,实现网络设备配置自动备份 配图 7

保姆级教程:10分钟搭建 Oxidized,实现网络设备配置自动备份 配图 8

保姆级教程:10分钟搭建 Oxidized,实现网络设备配置自动备份 配图 9

从上面结果可以看到不仅能备份配置还能和之前的配置进行比对做了哪些修改

保姆级教程:10分钟搭建 Oxidized,实现网络设备配置自动备份 配图 10

告别流量黑盒:开源神器sFlow-RT实现全网流量可视化

抓住BGP路由每一次改变:开源神器OpenBMP实时监控实战

网络流量分析开源利器Akvorado:轻松掌握NetFlow与SFlow数据