网络设备配置备份-Oxidized

article/2025/9/25 16:34:32

背景:网络设备如何备份?关于这个问题笔者尝试了多种,比如:通告FTP下载配置文件,通过ssh软件登录设备记录当前配置等,在一次偶然的机会中找到了Oxidized(开源软件),可以增量备份网络设备,支持国产厂商,网工的福音。

笔者系统底层使用Redhat 8 分支(RockyLinux)演示安装

Oxidized的相关介绍:https://github.com/ytti/oxidized

Nginx相关介绍:https://nginx.org/en/docs/

系统更新缓慢请自行替换国内源:https://zhuanlan.zhihu.com/p/450990973

Oxidized页面相关信息展示
在这里插入图片描述
在这里插入图片描述

一 、更新系统

sudo dnf update

二、安装依赖软件包

sudo dnf  groupinstall "Development Tools"
sudo dnf install make cmake which sqlite-devel openssl-devel ruby ruby-devel libicu-devel  -y

三、查看ruby版本,建议使用2.3版本以上

ruby -v

在这里插入图片描述

四、进入 root 用户,通过gem 安装 oxidized、oxidized-script、oxidized-web
此处报错请检查第二步依赖软件是否安装完成

su root
gem install oxidized 
gem install oxidized-script oxidized-web

五、 执行 oxidized 启动它,此时会提示编辑配置文件

oxidized

在这里插入图片描述

六、编辑配置文件 vi ~/.config/oxidized/config 将下面内容替换至文件中

---
username: username
password: password
model: junos
resolve_dns: true
interval: 3600
log: ~/.config/oxidized/logs/oxidized.log
use_syslog: false
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: "~/.config/oxidized/pid"
crash:directory: "~/.config/oxidized/crashes"hostnames: false
stats:history_size: 10
input:default: ssh, telnetdebug: falsessh:secure: falseftp:passive: trueutf8_encoded: true
output:default: gitgit:user: Oxidizedemail: o@example.comrepo: "~/.config/oxidized/git-repos/default.git"
source:default: csvcsv:file: "~/.config/oxidized/router.db"delimiter: !ruby/regexp /:/map:name: 0ip: 1model: 2username: 3password: 4group: 5gpg: false
model_map:juniper: junoscisco: ios

在这里插入图片描述

需要将配置文件同步到github 备份的细节请参考:https://github.com/ytti/oxidized/wiki
在这里插入图片描述

output:default: gitgit:user: "your name"email: youremail@yourdomain.comrepo: "/home/oxidized/.config/oxidized/oxidized.git"cd /home/oxidized/.config/oxidized/oxidized.git
git config --global user.name "your name"
git config --global user.email "youremail@yourdomain.com"
git remote add origin git@gitlab.yourdomain.com:yourgitrepousername/oxidized.git
git push -u origin master

七、创建一个设备配置文件 vi ~/.config/oxidized/router.db 添加网络设备,对应map中的格式

H3C:10.100.0.1:comware:admin:password:group1
HUAWEI:10.100.0.2:vrp:admin:password:group2
CISCO:10.100.0.3:ios:admin:password:group3

八、创建设备配置存储目录,放通防火墙端口,启动oxidized

mkdir -p ~/.config/oxidized/configs

8.1 此时运行 oxidized 备份文件可以运行了
在这里插入图片描述

8.2 放通防火墙端口

firewall-cmd --zone=public --add-port=8888/tcp --permanent 
firewall-cmd --reload

8.3 访问 http://192.168.12.136:8888 IP为你本机地址
Last Status: 绿色(备份正常), 蓝色(正在备份), 红色(备份失败)
Last Update: 上一次备份的时间(配置文件里面默认1个小时 自定义修改interval的值即可)
Last Changed: 配置文件发生改变的时间
Actions: 点击第一个图标就能看到设备备份文件内容,第二个图标为配置文件比对, 第三个图标为手动强制备份
在这里插入图片描述
在这里插入图片描述

九、systemctl 管理 Oxidized
9.1 将systemctl 管理文件复制到systemctl 目录
查文件位置 sudo find / -name oxidized.service
在这里插入图片描述

cp /usr/local/share/gems/gems/oxidized-0.28.0/extra/oxidized.service /etc/systemd/system/

9.2 复制完成后编辑配置文件,启动用户修改为root

vi /etc/systemd/system/oxidized.service

在这里插入图片描述

9.3 通过systemctl 管理 Oxidized 服务启动、开机启动、当前状态

systemctl start oxidized.service
systemctl enable oxidized.service
systemctl status oxidized.service

十 安全加固,由于Oxidized 没有提供认证机制,通过Nginx认证
10.1 安装、启动、开机自启Nginx

sudo dnf install nginx httpd-tools -y 
systemctl start nginx
systemctl enable nginx

查看Nginx状态 systemctl status nginx 是否正常运行
在这里插入图片描述

10.2 创建Nginx认证用户密码

htpasswd -c /etc/nginx/.htpasswd username

如果忘记了密码,编辑 /etc/nginx/.htpasswd 下删除指定用户,笔者只创建了一个admin用户
在这里插入图片描述

10.3 配置Nginx代理
首先修改oxidized配置文件只监听本机的请求 vi ~/.config/oxidized/config
修改完成后重启oxidized服务 systemctl restart oxidized.service


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

在这里插入图片描述

其次配置Nginx代理 vi /etc/nginx/nginx.conf

include /usr/share/nginx/modules/*.conf;events {worker_connections 1024;
}http {log_format  main  '$remote_addr - $remote_user [$time_local] "$request" ''$status $body_bytes_sent "$http_referer" ''"$http_user_agent" "$http_x_forwarded_for"';access_log  /var/log/nginx/access.log  main;sendfile            on;tcp_nopush          on;tcp_nodelay         on;keepalive_timeout   65;types_hash_max_size 2048;include             /etc/nginx/mime.types;default_type        application/octet-stream;# Load modular configuration files from the /etc/nginx/conf.d directory.# See http://nginx.org/en/docs/ngx_core_module.html#include# for more information.include /etc/nginx/conf.d/*.conf;server {listen       80 default_server;listen       [::]:80 default_server;server_name  _;root         /usr/share/nginx/html;auth_basic "oxidized auth access";auth_basic_user_file /etc/nginx/.htpasswd;# Load configuration files for the default server block.include /etc/nginx/default.d/*.conf;location / {proxy_pass http://127.0.0.1:8888/;}error_page 404 /404.html;location = /40x.html {}error_page 500 502 503 504 /50x.html;location = /50x.html {}}

在这里插入图片描述

10.4 防火墙放通Nginx的80端

firewall-cmd --zone=public --add-port=80/tcp --permanent 
firewall-cmd --reload

10.5 如果无法打开页面请关闭selinux vi /etc/selinux/config 修改完成后,重启系统生效,不想关闭的大佬可以自行编写selinux 规则。

# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
SELINUX=disabled

访问 http://192.168.12.136/ 加固完成
在这里插入图片描述

参考文献1:https://github.com/ytti/oxidized#centos-oracle-linux-red-hat-linux
参考文献2:nginx documentation


http://chatgpt.dhexx.cn/article/ilLvK9EE.shtml

相关文章

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

文章目录 前言一、oxidized是什么?二、oxidized搭建1.环境准备2.安装步骤3.配置文件4.router.db 文件规范5.运行6.Nginx验证登录 三,踩坑总结 前言 传统的网络设备备份通常都是人工登录进行手动操作,随着管理的网络设备越来越多,…

网络设备自动备份工具 Oxidized 使用体验

Oxidized 是一个使用 Ruby 编写的开源网络设备配置备份工具,是 RANCID(思科的一个工具) 的替代品,轻量级且可扩展的 Oxidized 支持 130 多种操作系统。 体验一下它的功能以及各种实现,看如何能与现有的系统进行整合&a…

小波变换的matlab程序:wavename='cmor5-2'; 这里5是带宽,2是中心频率,这我知道~但是他们的单位是多少呀? Hz?kHz?MHz? 我的分析频率是e6级的,大概怎么设置参数呢

答: 嗯,照道理是没有固定单位滴,小波分析用的是相对概念,即要根据原始信号频率换算,如何设置参数从原理上都是合理的,就看你需要分析哪些特征,多试几次,选择结果好的就行。 追问&am…

超宽带(UWB)信号谱的中心频率及-10dB带宽的计算(MATLAB)

对于超宽带(UWB)信号,相对带宽或带宽及中心频率是其中两个重要的参数。如果已经得到UWB信号谱,那么通过信号谱如何来计算带宽及中心频率呢? 一般来说,UWB信号谱可以通过直接测量或者由OptiSystem得到&#…

带宽和频率

信道的带宽:对信道来说,带宽是衡量其通信能力的大小的指标。 1、对模拟信道,使用信道的频带宽度来衡量。如果一个信道,其最低可传输频率为f1的信号,最高可传输频率为f2的信号,则该模拟信道的带宽是:模拟信…

聊聊最简单的名词:频率

聊聊最简单的名词:频率 01 “频率”02 谐振频率03 中心频率04 工作频率总结: 理科的孩子们从初中起对“频率”这个词就不陌生了吧。为什么还是要说呢?在射频领域的各种频率比较容易混淆,这里还是再聊聊吧。 01 “频率” — 在数…

多普勒频率

多普勒频率:接收频率与发射频率的差值,观察者接收到的频率等于观察者在单位时间内接收到的完全波的个数,因而单位时间内通过接收者的完全波的个数,即接收的频率。 上面是原理:已知多普勒频率是指单位时间内接受者接收的到完全波的…

带通滤波器中心频率带宽matlab,带通滤波器频率设置

qsj8362234 发表于 2012-9-27 12:08 你索性把你的代码发我把 clc ;close all; clear all; fs=20000; %采样频率 dt=1/fs; f1=1000; f2=2000; %两个信号的频率 a=[1 0 1 0 1 0 1 1 0 0]; %信号,取整 nn=length(a); g1=a; g2=~a; %信号反转和g1反向,01取…

射频信号发生器的使用以及相关中心频率,载波,调制波术语解释

今日尝试使用射频信号发生器验证电平转换芯片。然只能输出交流耦合波形,遂无法实现验证。心灰之下,尝试了信号发生器的各项功能,现将相关心得记录如下。 射频信号发生器只能输出交流耦合信号,举例,设定输出1V的信号,频率为1M,输出波形为RMS均值为0V,峰峰值2V,正弦波,…

MATLAB查看连续小波的形态和中心频率

1:查看小波的中心频率和形态(如果想要查看其他的小波,将db3修改一下名字既可以) clear all; cla; close; cfreqcentfrq(db3)% 查看小波频率 [~,psi,xval]wavefun(db3); plot(xval,psi);%% 查看小波 的形态 db3 ,cfreq 0.8000 方法 2 : 画尺…

中心频率和一些概念解释

中心频率是滤波器通频带中间的频率,以中心频率为准,高于中心频率一直到频率电压衰减到0.707倍时为上边频,相反为下边频,上边频和下边频之间为通频带。 从原理上讲,再复杂的声音也可以用傅里叶分析的方法把它最后分解成若干正弦波的叠加。但是如果反过来用正弦波叠加…

带通滤波器中心频率计算公式中R是哪个值_手把手教系列之IIR数字滤波器设计实现...

喜欢就本文就点个赞吧~~ 版权声明:所有文章版权归嵌入式客栈所有,如商业使用,须嵌入式客栈授权。欢迎关注微信公众号,内容更丰富。 【导读】:在嵌入式系统中经常需要采集模拟信号,采集模拟信号的信号链中难免引入干扰,那么如何滤除干扰呢?今天就来个一步一步描述如何…

VMD分解,matlab代码,包络线,包络谱,中心频率,峭度值,能量熵,样本熵,模糊熵,排列熵,多尺度排列熵,近似熵,包络熵,频谱图,希尔伯特变换,包含所有程序MATLAB代码,-西储大学数据集为例

目录 目录 1.选取数据 2.VMD函数-matlab代码 3.采用matlab脚本导入数据并做VMD分解 4.计算中心频率 5.结果展示 6.智能算法优化VMD参数 1.选取数据 选取1797转速下的内圈故障数据,也就是105.mat,数据集可以在官网下载。下载数据文件|凯斯工程…

信号滤波器以及中心频率概念

1 信号滤波器: 最早期的合成器,用简单的振荡器发生“傻乎乎”的波形,象正弦波、三角波,还有更明亮些的锯齿波、脉冲波等。然后用变形、调制等手法来修饰它们,滤波器是非常重要的工具。 当前的合成器技术已经与早期大不…

无线RF knowledge

2.4G频段 当AP工作在2.4GHz频段的时候,AP工作的频率范围是2.402GHz~2.483GHz。在此频率范围内又划分出14个信道。每个信道的中心频率相隔5MHz,每个信道可供占用的带宽为22MHz,例如:如图所示,channel 1的中心频率为2412…

中心频率详解

该文章讲述了有关中心频率知识详细讲解(图). 中心频率详细讲解 什么是中心频率呢,中心频率就是滤波器通频带中间的频率,以中心频率为准,高于中心频率一直到频率电压衰减到0.707倍时为上边频,相反为下边频,上边频和下边频之间为通频带。 从原理…

Hector slam算法原理解析与代码详解

写了markdown 上传,公式都乱码,无果,截图上传吧 目录 1. hector 原理解析 1.4 多重分辨率地图 2.代码框架 2.1 回调函数 2.2 更新 3. 扫描匹配 3.1 多分辨率匹配 3.2 matchData_2 3.3 scan_match_3 3.4 迭代计算函数 3.5 hession 矩…

Ubuntu常用命令 如何远程连接服务器? 如何创建anaconda虚拟环境? 如何从github上下载代码到服务器? 如何移动、复制、删除文件夹? 如何在服务器间传输文件? 如何在服务器后台运行代码

目前 Ubuntu常用命令 如何远程连接服务器? 如何创建anaconda虚拟环境? 如何从github上下载代码到服务器? 如何移动、复制、删除文件夹? 如何在服务器间传输文件? 如何在服务器后台运行代码? 2.5 创建anacon…

JS逆向day05-某网站登录生成元素加密破解

逆向某网站的登录接口生成元素加密 由于是非法网站所以本文对网址进行了遮挡,但是其中的登录接口加密还是挺有意思的,故写下日志进行逆向,本文仅供参考! 登录接口解析 还是用我们的老套路,发送登录请求,获取登录的url,来看看参数加密情况 password很明显这个参数加密了,作者这…

破解 jar 包之直接修改 .class 文件方式

一、常规 JAVA 软件破解流程 先讲一下常规jar包的破解流程。 1. 快速定位。 1) 通过procmon监控相关软件,查看程序都访问了些啥。 2) 用jd-gui反编译 jar 包,得到源码。 3) 搜索关键字以定位。 这种定位方法只是千万种中的一种&#xff…