Oxidized 网络设备自动备份系统搭建


前言

传统的网络设备备份通常都是人工登录进行手动操作,随着管理的网络设备越来越多,进阶的的方法通常会使用脚本自动备份,然后通过网络上传工具同步,如果有一个备份系统不需要你使用脚本,不限制厂商设备且支持国外的网络设备,又同时拥有WEB界面,能够实时进行系统的增量备份,而且 配置简单,开源免费!!!


提示:以下是本篇文章正文内容,下面案例可供参考

一、oxidized是什么?

Oxidized是一款开源的网络设备自动备份工具,它最大的特点就是轻便,扩展性强,目前可以支持超过130种设备类型

二、oxidized搭建

1.环境准备

在这里插入图片描述

2.安装步骤

安装工具包

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

在这里插入图片描述在这里插入图片描述
首次运行会提示 没有配置文件
在这里插入图片描述

3.配置文件

组件说明:

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:注意啦!!!配置文件复制的时候记得更改文件的路径,不可以直接用的**)

4.router.db 文件规范

7A-SW11							name
192.168.1.2						设备地址
vrp								model
admin							账号
12345678						密码
group							分组

在这里插入图片描述
一切均已配置文件里面的map为主
在这里插入图片描述

5.运行

直接输入 oxidized 程序就启动了,也可以设置成后台运行

nohup oxidized >> /var/log/oxidized.log 2>&1 &

在这里插入图片描述
也可以直接网页访问 本机IP:8888
在这里插入图片描述

默认是一个小时同步一次,备份文件在配置文件里都有指定,如果访问不到页面可以先检查一下防火墙设置!!!

6.Nginx验证登录

正常访问,是直接输入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

在这里插入图片描述
修改Nginx配置文件 添加一个文件

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 这些事序号 一定严格执行!!!

猜你喜欢

转载自blog.csdn.net/weixin_44200830/article/details/125780391