oxidized网络设备备份系统部署

1、 准备安装部署环境

​ 建议使用ubuntu系统,docker化部署

#拉取ubuntu镜像
docker pull ubuntu:18.04

#启动镜像以及相关设置
docker run -dit -p 9000:9000 -v /etc/localtime:/etc/localtime --privileged --name=oxidized-with-ubuntu --restart=always  ubuntu:18.04 /sbin/init


#进入ubuntu
docker exec -it 1211ac5d17d5 bash

2、安装相关依赖包

apt update

apt-get -y install ruby ruby-dev libsqlite3-dev libicu-dev libssl-dev pkg-config cmake libssh2-1-dev vim

3、安装oxidized

gem install oxidized
gem install oxidized-script oxidized-web 

4、配置oxidized

#验证安装
oxidized -v

#oxidized 有几个组件 很重要 先简单说下
#config文件 就用来存放配置文件
#Sources 字段: 指出要备份设备的存放方式
#Outputs 字段 : 指出备份文件存放的方式
#model 字段:指出该设备的厂商所用的os名称, 核心功能就是靠这个实现的。
#router.db文件 可以理解成 存放被管理主机的地方

#初始化
#新建用户 oxidized
useradd -m -d /home/oxidized oxidized

#配置oxidized 通过systemctl 管理
cp /var/lib/gems/2.5.0/gems/oxidized-0.28.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


5、config配置文件

#vim /home/oxidized/.config/oxidized/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: 0.0.0.0:9000
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:
      group: 0
      name: 1
      ip: 2
      username: 3
      password: 4
      model: 5
    gpg: false
model_map:
  cisco: ios
  juniper: junos

6、router.db格式

#思科,H3C,华为的设备
#10.10.24.241:ios:admin:password
#10.10.28.235:comware:admin:password
#10.10.0.107:vrp:admin:password

#vim /home/oxidized/.config/oxidized/router.db
LW-WORK:LWCO-N3-U13-SW-7003E:10.193.2.100:admin:admin:h3c
LW-WORK:LW-S6800_3b:10.194.87.254:monitor:monitor:h3c

##模版路径
/var/lib/gems/2.5.0/gems/oxidized-0.28.0/lib/oxidized/model

#主机名匹配可能报错,修改prompt的正则表达式
  prompt /^\0*(<[\w#.@()-]+>).?$/

7、启动oxidized

chown -R oxidized:oxidized /home/oxidized/.config/oxidized
#配置文件软连接
ln -s /home/oxidized/.config/oxidized/config  /root/.config/oxidized/config
systemctl restart oxidized.service
systemctl status oxidized.service

8、配置文件对比设置

#安装git diff
apt-get intall git -y

#vim /home/oxidized/.config/oxidized/config
output:
  default: git
  git:
    user: Oxidized
    email: o@example.com
    repo: "/home/oxidized/.config/oxidized/oxidized.git"   ###文件夹权限建议777

9、设置邮件告警

#拷贝脚本
cp -r /var/lib/gems/2.5.0/gems/oxidized-0.28.0/extra/ /home/oxidized/.config/oxidized/
chmod 777 /home/oxidized/.config/oxidized/extra/oxidized-report-git-commits
#安装邮件服务
apt install heirloom-mailx

#配置邮箱信息
vim /etc/s-nail.rc

set from="zabbix_yst@163.com"
set smtp="smtps://smtp.163.com:465"
set smtp-auth-user="zabbix_yst@163.com"
set smtp-auth-password="********"
set smtp-auth=login

#测试邮件发送
echo “heirloom-mailx send success” | heirloom-mailx -vs “heirloom-mailx send test” 123@qq.com

#在配置文件中添加
hooks:
 email_output:
   type: exec
   events: [post_store, node_fail]
   cmd: '/home/oxidized/.config/oxidized/extra/oxidized-report-git-commits | heirloom-mailx -s "Oxidized updates for ${OX_NODE_NAME}" xcsong01@mail.yst.com.cn  cfkong01@mail.yst.com.cn hteng02@mail.yst.com.cn'
   async: true
   timeout: 120

10、GIT文件内容查看

#进入.git内容的文件夹,查看文件内包含的文件内容,以及对应的ID值

git ls-files -s

100644 af965563aae293cfd51fa9bccab10ffe7bbca5a0 0       LW-N1-U31-MSR3640
100644 8635b69f30cce4bc5d863b7b8e1e0f0241bb2af5 0       LWCO-N12-U2-SW-10508
100644 504a88127b4b7810353446b8de39f9a5f60797bc 0       LWCO-N1N2-U26-FW1050
100644 c699d156e333d6bcea12569ef3d27a1b3b04f8c5 0       LWCO-N1N2-U38-SW5130-24-INT
100644 fd50279c3d82b45705fbd6cb1ede8be4e43fa8a7 0       LWCO-N6/7-U41-SW-6800-POC
100644 7927df712daf63ce0f5a3c8560b06f9569bfff2f 0       LWCO-N67-U41-SW-6800-POC
100644 b669602ec75f1fb8dbc48742b0ec4e95fa314716 0       LW_N-1-17_ASR1001_1
100644 cfb09cee94c98975a3e88e71340ae2d687e1d55d 0       LW_N-2-17_ASR1001_2


#查询ID文件中的内容

git cat-file -p b669602ec75f1fb8dbc48742b0ec4e95fa314716

*
*
*

文章作者: Stars
版权声明: 本站所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Stars
默认分类 network
喜欢就支持一下吧