Install paket yang dibutuhkan
sudo apt install git ruby ruby-dev libsqlite3-dev libssl-dev pkg-config cmake libssh2-1-dev libicu-dev zlib1g-dev g++ libyaml-dev libzstd-dev
Install Oxidized script based input/output extension
sudo gem install oxidized-script
Install Oxidized web interface & rest API
sudo gem install oxidized-web
Install rugged dengan SSH (untuk push ke repository git)
sudo gem install rugged -- --with-ssh
Buat user khusus untuk mengelola Oxidized
sudo useradd -s /bin/bash -m oxidized
Ubah password user
sudo passwd oxidized
Berikan akses sudo untuk user
sudo usermod -aG sudo oxidized
Buat directory dan berikan permission
sudo mkdir -p /etc/oxidized
sudo chown oxidized:oxidized /etc/oxidized/
Beralih menjadi user
su - oxidized
Ubah environment variable OXIDIZED_HOME ke /etc/oxidized
export OXIDIZED_HOME=/etc/oxidized
Jalankan perintah oxidized untuk initial configuration
oxidized
Cek apakah sudah ada file config di /etc/oxidized
ls /etc/oxidized/
Clone repository oxidized
git clone https://github.com/ytti/oxidized.git
Salin template service systemd
sudo cp oxidized/extra/oxidized.service /etc/systemd/system/
Edit file /etc/systemd/system/oxidized.service
sudo nano /etc/systemd/system/oxidized.service
Hapus komentar/# bagian Environment="OXIDIZED_HOME=/etc/oxidized" sehingga menjadi seperti berikut:
# Put this file in /etc/systemd/system.
#
# To set OXIDIZED_HOME instead of the default,
# ~oxidized/.config/oxidized, uncomment (and modify as required) the
# "Environment" variable below so systemd sets the correct
# environment.
[Unit]
Description=Oxidized - Network Device Configuration Backup Tool
After=network-online.target multi-user.target
Wants=network-online.target
[Service]
ExecStart=/usr/local/bin/oxidized
User=oxidized
KillSignal=SIGKILL
Environment="OXIDIZED_HOME=/etc/oxidized"
Restart=on-failure
RestartSec=300s
[Install]
WantedBy=multi-user.target
Reload daemon dan enable service oxidized
sudo systemctl daemon-reload
sudo systemctl enable oxidized
Backup file config default
cp /etc/oxidized/config /etc/oxidized/config.bak
Edit file config
nano /etc/oxidized/config
Ubah menjadi seperti berikut:
---
resolve_dns: true
interval: 86400 # Interval melakukan pengecekan/backup (detik)
debug: false
run_once: false
threads: 30
use_max_threads: false
timeout: 20
timelimit: 300
retries: 3
prompt: !ruby/regexp /^([\w.@-]+[#>]\s?)$/
next_adds_job: false
pid: "/etc/oxidized/pid"
extensions:
oxidized-web:
load: true
listen: 0.0.0.0
port: 8888
vhost:
- localhost
- 127.0.0.1
- 192.168.100.20
crash:
directory: "/etc/oxidized/crashes"
hostnames: false
stats:
history_size: 10
input:
default: ssh, telnet
debug: false
ssh:
secure: false
ftp:
passive: true
utf8_encoded: true
output:
default: git
file:
directory: "/etc/oxidized/backups/file"
git:
user: fariz
email: [email protected]
repo: "/etc/oxidized/backups/git"
source:
default: csv
csv:
file: "/etc/oxidized/router.db"
delimiter: !ruby/regexp /:/
map:
name: 0
model: 1
ip: 2
username: 4
password: 5
vars_map:
ssh_port: 3
model_map:
juniper: junos
cisco: ios
mikrotik: routeros
huawei: vrp
# Hilangkan komentar dan sesuaikan konfigurasi dibawah ini jika ingin melakukan push ke github
#hooks:
# push_to_remote:
# type: githubrepo
# events: [post_store]
# remote_repo: [email protected]:username/oxidized.git
# publickey: /home/oxidized/.ssh/id_ed25519.pub
# privatekey: /home/oxidized/.ssh/id_ed25519
Silakan sesuaikan dengan kebutuhan
Buat file /etc/oxidized/router.db yang berisi daftar perangkat dan akses loginnya
nano /etc/oxidized/router.db
Isikan seperti berikut:
# nama_perangkat:operating_system:ip_address:ssh_port:username:password
router-rumah:routeros:192.168.90.1:22122:username:PassWordVerySecret
switch-huawei-rumah:vrp:192.168.99.2:22122:backup:PasswordVerySecret
Jalankan service Oxidized
sudo systemctl start oxidized
sudo systemctl status oxidized
Debug
sudo journalctl -u oxidized