Cara Install & Konfigurasi Oxidized

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