參考連結:https://github.com/ytti/oxidized
測試環境:CentOS Linux release 7.3.1611 (Core)
主要元件:oxidized oxidized-script oxidized-web
注意:oxidized-web需要ruby2.3以上支援,如不安裝oxidized-web,配置檔案裡rest 修改為false
安裝依賴元件
-
yum 源修改:本測試環境為辦公網測試機,需要修改yum源,通常建議修改為公司線上或測試環境yum源(可找業務運維幫忙倒出上傳到/etc/yum.repos.d)
yum install make cmake which sqlite-devel openssl-devel libssh2-devel ruby gcc ruby-devel libicu-devel gcc-c++
安裝ruby
centos7預設ruby為2.0版本,需要單獨安裝。
yum install centos-release-scl
yum-config-manager --enable rhel-server-rhscl-7-rpms
yum install -y rh-ruby25-ruby-devel
yum install rh-ruby25
scl enable rh-ruby25 bash
ruby -v
ruby 2.5.0p0 (2017-12-25 revision 61468) [x86_64-linux]
cp /opt/rh/rh-ruby25/root/usr/lib64/libruby.so.2.5 /usr/lib/
設定登入時自動啟動ruby2.5:
vim /etc/profile.d/rh-ruby25.sh
#!/bin/bash
source /opt/rh/rh-ruby25/enable
export X_SCLS="
scl enable rh-ruby25 'echo $X_SCLS'
"
export PATH=$PATH:/opt/rh/rh-ruby25/root/usr/local/bin
安裝oxidized
gem install oxidized
gem install oxidized-script oxidized-web
useradd -m -d /home/oxidized oxidized
cp /opt/rh/rh-ruby25/root/usr/local/share/gems/gems/oxidized-0.24.0/extra/oxidized.service /lib/systemd/system
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 檔案
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
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
router.db 檔案
vim home/oxidized/.config/oxidized/router.db
172.18.31.11:comware:user:passwd
啟動服務
systemctl restart oxidized.service
systemctl status oxidized.service
至此,自動備份基礎功能已完成,可在目錄裡檢視備份的配置檔案,接下來配置可用web頁面檢視比較直覺。
安裝nginx
yum install nginx
vim /etc/nginx/conf.d/oxidized.conf
cat /etc/nginx/conf.d/oxidized.conf
server {
listen 80;
server_name 172.18.34.45;
location / {
proxy_pass http://127.0.0.1:8888/;
}
- 浏覽器打開:http://172.18.34.45/nodes
- Actions 下有3個圖示,第一個點開可看到配置檔案。
- 第二個versions可檢視每個版本的配置差異。(需要git支援,安裝步驟見下文)
-
第三個為強制備份。
預設顯示時間不對,需要修改以下配置檔案。
vim /opt/rh/rh-ruby25/root/usr/local/share/gems/gems/oxidized-web-0.11.1/lib/oxidized/web/public/scripts/oxidized.js
git 安裝
修改配置檔案為git輸出