传统的网络设备备份通常都是人工登录进行手动操作,随着管理的网络设备越来越多,进阶的的方法通常会使用脚本自动备份,然后通过网络上传工具同步,如果有一个备份系统不需要你使用脚本,不限制厂商设备且支持国外的网络设备,又同时拥有WEB界面,能够实时进行系统的增量备份,而且 配置简单,开源免费!!!
提示:以下是本篇文章正文内容,下面案例可供参考
Oxidized是一款开源的网络设备自动备份工具,它最大的特点就是轻便,扩展性强,目前可以支持超过130种设备类型
安装工具包
sudo yum groupinstall "Development Tools"
下载解压安装Ruby
wget https://cache.ruby-lang.org/pub/ruby/2.5/ruby-2.5.5.tar.gz
tar -zxvf ruby-2.5.5.tar.gz
cd ruby-2.5.5
./configure
make
make install
安装所有依赖
yum install make cmake which sqlite-devel openssl-devel libssh2-devel ruby gcc ruby-devel libicu-devel gcc-c++
安装Oxidized
gem install oxidized
gem install oxidized-script oxidized-web
组件说明:
config 文件: 就用来存放配置文件
Sources 字段: 指出被管理主机的信息(map:这里是主机信息格式,要按照顺序编辑)
Output 字段: 指出备份文件存放的方式以及备份路径
model 字段:指出该设备的厂商所用的os名称, 核心功能就是靠这个实现的。
router.db文件 可以理解成 存放被管理主机的地方(需要自己创建)
具体的配置文件信息如下
---
username: username
password: password
model: junos
interval: 3600
log: /root/.config/oxidized/logs/oxidized.log
debug: false
threads: 30
timeout: 20
retries: 3
prompt: !ruby/regexp /^([\w.@-]+[#>]\s?)$/
rest: 0.0.0.0:8888
next_adds_job: false
vars: {}
groups: {}
models: {}
pid: "/root/.config/oxidized/pid"
input:
default: ssh, telnet
debug: false
ssh:
secure: false
output:
default: file
file:
directory: "/root/.config/oxidized/configs"
source:
default: csv
csv:
file: "/root/.config/oxidized/router.db"
delimiter: !ruby/regexp /:/
map:
name: 0
ip: 1
model: 2
username: 3
password: 4
group: 5
gpg: false
model_map:
cisco: ios
juniper: junos
(**Ps:注意啦!!!配置文件复制的时候记得更改文件的路径,不可以直接用的**)
7A-SW11 name
192.168.1.2 设备地址
vrp model
admin 账号
12345678 密码
group 分组
直接输入 oxidized 程序就启动了,也可以设置成后台运行
nohup oxidized >> /var/log/oxidized.log 2>&1 &
默认是一个小时同步一次,备份文件在配置文件里都有指定,如果访问不到页面可以先检查一下防火墙设置!!!
正常访问,是直接输入IP:8888就直接进入的,现在需要利用nginx 设置一个登录验证,使用yum安装Nginx和httpd-tools
yum install -y nginx
yum install -y httpd-tools
ps:如果提示以下错误 就需要更新yum 了
更新yum 源
yum install epel-release
yum update
然后在 创建一个存储用户信息的文件夹并给与相应的权限
mkdir /usr/local/nginx/
chown -R 777 /usr/local/nginx/
使用httpd-tools工具创建 WEB登录的认证用户和密码
htpasswd -c /usr/local/nginx/.htpasswd oxidized
vi /etc/nginx/conf.d/default.conf
server {
listen 80;
server_name Oxidized;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
auth_basic "Welcome to Oxidized WEB Login";
auth_basic_user_file /usr/local/nginx/.htpasswd;
proxy_pass http://127.0.0.1:8888;
}
}
地址一定要改成127.0.0.1:8888 另外 oxidized的config 配置文件里也要改成127.0.0.1 这样才不会出现单独访问本机地址:8888 就可以直接登录,必须要通过NGINX的登录认证登录
然后启动 Nginx并且开机自启动
systemctl enable nginx
systemctl start nginx
期间在安装 oxidized和web的时候 部分系统会出现经典的两个问题.
1,ERROR: Loading command: install (LoadError)
cannot load such file – zlib
遇到此问题需要进入文件目录 ruby-2.5.1/ext/zilb 执行 ruby ./extconf.rb
然后进行重新编译 make && make install
发现执行 make 报错,说明配置文件没有找到 需要手动进行指定
修改Makefile配置文件把zlib.o: $(top_srcdir)/include/ruby.h 改成 zlib.o: …/…/include/ruby.h;
然后再次执行 make && make install 就成功了
2,
继续执行 gem install oxidized 又报错了
同样进入 安装文件目录ruby-2.5.1/ext/openssl 修改Makefile配置文件 在文件顶部加入
top_srcdir = …/… 保存退出
重新执行 make && make install
3,启动oxidized的时候会出现 source returns no usable nodes的报错
这个错误反映的就是你没有按照config配置文件里面的 map格式去规定账号和密码 0 1 2 3 4 5 这些事序号 一定严格执行!!!