oxidized 最好用的网络设备备份系统

故事背景

还是从回顾历史来谈谈, 网络设备备份的心血历程:

1 人肉

手动登陆到设备操作

2 脚本+人肉

典型的是 使用 SecureCRT 的Scripts ,用VB写脚本模拟SSH 或者telnet登陆设备然后操作。

对于中小型企业 网络管理员来说 securecrt脚本几乎没有学习成本, 喜欢脚本运维的同学 推荐 去看一下 https://github.com/191801737/securecrt_network

3 脚本全自动化

通过Python的parimiko 或者netmiko 连接到设备操作 把文件通过ftp 上传到FTP服务器, 在通过定时任务,定期自动备份。这个应该是现阶段主流非人民币网络玩家的最优解决方案。

4 系统全自动备份

如果一天领导对你说想要一个备份系统能备份思科,H3C,华为,飞塔, 就是能够支持国内常用的网络设备, 要有web界面,要能够查看配置差异对比, 还要能发邮件来显示配置差异, 嗯嗯,暂时先要这么多吧,对了公司为了成本考虑只给这个系统提供一台用来安装的虚拟机。。

你会不会心里默默的唱:你还要我怎样

而我们今天要聊的就是这样的一个系统, 而且安装配置简单,最重要开源免费 真正的大杀器 不负”最好用”之名。

简介

oxidized 简介

oxidized 是一个网络设备备份系统, 轻量级,可扩展,支持超过90多个操作系统

个人觉得它无与伦比的优势, 同时支持h3c,华为,思科.

环境搭建

服务器操作系统推荐使用ubuntu ,CentOS, Oracle Linux, Red Hat Linux,FreeBSD 也都是支持的

oxidized安装

apt update
apt upgrade y

apt-get install ruby ruby-dev libsqlite3-dev libssl-dev pkg-config cmake libssh2-1-dev
gem install oxidized
gem install oxidized-script oxidized-web 

验证安装

root@node-2:~# oxidized -v

0.21.0

这样oxidized 就安装好了.版本是 0.21.0

配置oxidized

oxidized 有几个组件 很重要 先简单说下

config文件 就用来存放配置文件

Sources 字段: 指出要备份设备的存放方式

Outputs 字段 : 指出备份文件存放的方式

model 字段:指出该设备的厂商所用的os名称, 核心功能就是靠这个实现的。

router.db文件 可以理解成 存放被管理主机的地方

初始化

新建用户 oxidized

useradd -m -d /home/oxidized oxidized

配置oxidized 通过systemctl 管理

cp /var/lib/gems/2.3.0/gems/oxidized-0.21.0/extra/oxidized.service /lib/systemd/system

systemctl enable oxidized.service

创建oxidized用到的一些文件夹

mkdir -p /home/oxidized/.config/oxidized

日志文件夹

mkdir /home/oxidized/.config/oxidized/logs/

备份文件存在文件夹

mkdir /home/oxidized/.config/oxidized/configs

设置文件夹用户和用户组

chown oxidized:oxidized /home/oxidized/.config/oxidized

config文件

系统的核心 就靠着一个文件完成各种厂商的设备备份。

但是配置非常简单,复制过去 完全不用修改。是的 你没有听错.是的 不要修改就能用。

vim config

---
username: username
password: password
model: junos
interval: 3600
log: /home/oxidized/.config/oxidized/logs/oxidized.log
debug: false
threads: 30
timeout: 20
retries: 3
prompt: !ruby/regexp /^([\w.@-]+[#>]\s?)$/
rest: 127.0.0.1:8888
next_adds_job: false
vars: {}
groups: {}
models: {}
pid: "/home/oxidized/.config/oxidized/pid"
input:
  default: ssh, telnet
  debug: false
  ssh:
    secure: false
output:
  default: file
  file:
    directory: "/home/oxidized/.config/oxidized/configs"
source:
  default: csv
  csv:
    file: "/home/oxidized/.config/oxidized/router.db"
    delimiter: !ruby/regexp /:/
    map:
      name: 0
      model: 1
      username: 2
      password: 3
    gpg: false
model_map:
  cisco: ios
  juniper: junos

这个时候就开始引入我们需要备份的设备啦,我分别找了思科,H3C,华为的设备

格式很固定 请小伙伴复制过去修改,

我分别找了思科,H3C,华为的设备
vim router.db
10.10.24.241:ios:admin:password
10.10.28.235:comware:admin:password
10.10.0.107:vrp:admin:password

是的, 这个时候配置部分就完了,总结下来,除了软件的安装,只需要编辑一下router.db就能用起来了,简单到不可相信,真的么?这样就能自动备份了么?让我们来启动下软件看看结果

启动oxidized

在启动之前 设置下 文件夹的 用户和组

chown -R oxidized:oxidized /home/oxidized/.config/oxidized

熟悉的systemctl命令 是不是很亲切

systemctl restart oxidized.service

systemctl status oxidized.service

确认oxidized 正常启动后 这个时候 我们就可以在

/home/oxidized/.config/oxidized/configs

文件夹下面 看到备份的文件,天啊 这样就自动化备份了 难以相信的简单 有没有。

配置想在web上看怎么办,我接着往下走。

root@node-2:/home/oxidized/.config/oxidized# ll configs
total 32
drwxr-xr-x  2 oxidized oxidized 4096 4  20 10:55 ./
drwxr-xr-x 11 oxidized oxidized 4096 4  20 10:55 ../
-rw-r--r--  1 oxidized oxidized 6102 4  20 10:55 10.10.24.241
-rw-r--r--  1 oxidized oxidized 7668 4  20 10:55 10.10.28.235
-rw-r--r--  1 oxidized oxidized 7840 4  20 10:55 10.10.0.107

配置oxidized-web

apt install nginx

root@node-2:~# vim /etc/nginx/conf.d/oxidized.conf
server {
        listen 80;
        listen [::]:80;
        server_name 10.10.18.141;
        location / {
                proxy_pass http://127.0.0.1:8888/;
        }

        access_log /var/log/nginx/access_oxidized.log;
        error_log /var/log/nginx/error_oxidized.log;
}

重启nginx

systemctl restart nginx.service

查看效果

在浏览器中输入 ubuntu的ip地址

让我们来点开一个看看。多么熟悉的画面啊。什么情况,我是谁 我在哪里 发生了什么 怎么这么简单就实现了我多年想要的效果。 幸福来的太突然了 有没有。

 

这样就搞定收工啦 系统默认每个小时候 备份一次。

简单说一下

name: 就是 routr.db里面的对应的ip地址

model: 就是对应厂商的model

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

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

action: 点击云一样的图标就能看到 备份的内容, 后面的那个半圆 手动强制备份. 中间的那个下一篇文章会详解。

结束语

到这里 就算把这个系统比较完善搭建起来了,使用是完全没有问题。

如果你是不超过200人公司的网络管理员,有了这样的神器,还要啥自行车。

后面的进阶内容,近期发布,下一篇文章中 慢慢说清楚附件中的内容,想尝鲜的 同学欢迎加下QQ 群: 752774493

附件

配置对比

发送邮件

web 打开需要登录验证