Sebagai seorang Administrator Sistem, kita sering kali dihadapkan pada tugas melakukan backup berkala terhadap perangkat jaringan, seperti server, switch, dan router. Interval backup ini bervariasi, mulai dari tiga hari sekali, mingguan, hingga bulanan. Melakukan tugas ini secara manual pada banyak perangkat jaringan tentu memakan banyak waktu dan tenaga.
Untuk meningkatkan efisiensi dan memudahkan pengelolaan backup, kita dapat mengimplementasikan sentralisasi backup pada satu server. Dengan demikian, proses pencarian dan pemulihan data menjadi lebih cepat dan terorganisir.
Pada LAB kali ini, saya ingin berbagi dengan teman-teman cara melakukan backup otomatis perangkat MikroTik ke satu server backup Linux terpusat menggunakan rsync. Hah, rsync? Apakah MikroTik mendukung rsync? Ya, mungkin banyak dari kita sudah familiar dengan fitur ini, tetapi mungkin ada juga yang belum tahu bahwa MikroTik kini mendukung rsync dengan tambahan package bernama ROSE Storage (RouterOS Enterprise).
Bagi Anda yang belum tahu apa itu ROSE Storage, saya telah membuat artikel penjelasan yang dapat diakses melalui tautan berikut:
https://www.tekcareya.com/fitur-baru-rose-mikrotik/
Namun, perlu diketahui bahwa package ini saat ini hanya tersedia untuk ROS V7 dan beberapa arsitektur tertentu, seperti ARM, ARM64, x86, dan TILE.
Install ROSE Storage Package pada MikroTik
Download Extra Package pada laman https://www.mikrotik.com
Pada case kali ini saya menggunakan Router OS V7.16.1 Stable dengan architecture arm64. Setelah didownload kemudian extract file tersebut, disini kita dapat melihat ada package baru bernama rose-storage yang akan kita gunakan.
Install ROSE Storage Package pada MikroTik
1. Upload file ROSE Storage yang sudah di download tadi pada menu file, kemudian reboot.
2. Kemudian cek pada menu packages apakah ROSE Storage sudah terinstall
Dapat dilihat juga pada menu file ada sebuah Tab baru bernama Sync.
Note : Untuk menggunakan layanan ini pastikan untuk port 22 SSH tidak Anda block.
3. Tambahkan user rsync yang akan digunakan untuk melakukan proses backup
Generate SSH Key
1. Pastikan rsync sudah terinstall pada backup server
Untuk Debian / Ubuntu :
root@lab-reza:~# apt update
root@lab-reza:~# apt install rsync
2. Generate Public Key
root@lab-reza:~# ssh-keygen -t rsa -b 4096
Tujuan pembuatan SSH key adalah agar proses sinkronisasi file backup dapat dilakukan secara otomatis tanpa perlu memasukkan password, serta untuk meningkatkan keamanan.
3. Salin Public Key ke Server Tujuan dan Assign ke user yang ingin digunakan untuk melakukan proses backup
root@lab-reza:~# rsync .ssh/id_rsa.pub rsync@103.x.x.2:
Note : Ganti rsync dengan nama user yang digunakan untuk melakukan backup. Pastikan user tersebut sudah ditambahkan pada MikroTik, dan 103.x.x.2 adalah IP MikroTik yang reachable dari server backup. Bagian : tidak perlu diubah jika Anda ingin menyimpan file public key di direktori utama MikroTik.
Assign SSH Key tersebut ke User rsync
Jika sudah, coba lakukan SSH ke MikroTik menggunakan user yang digunakan untuk melakukan backup. Jika tidak lagi diminta memasukkan password saat login, maka public key telah berhasil diatur.
Buat Backup Script
1. Buat direktori tempat script backup disimpan, dan buat file backup
root@lab-reza:~# mkdir /script
root@lab-reza:~# touch /script/backup-mikrotik.sh
2. Edit file backup dan input script dibawah kemudian save
#!/bin/bash
# Konfigurasi Mikrotik
mikrotik_ip="103.x.x.2” # IP Mikrotik
mikrotik_user="rsync" # User Mikrotik
local_backup_dir="/backup/mikrotik" # Direktori lokal untuk menyimpan file backup
# Buat direktori lokal jika belum ada
mkdir -p $local_backup_dir
# Get Router ID dan buat nama file backup sesuai pada tanggal command dijalankan
backup_name=$(ssh "$mikrotik_user@$mikrotik_ip" "system identity print" | awk -F': ' '/name/ {print $2}' | tr -d '[:space:]')-$(date +"%Y-%m-%d")
# Save nama file backup ke file.txt
echo "Backup Filename: $backup_name" > file.txt
# Buat backup pada router
ssh $mikrotik_user@$mikrotik_ip "system backup save name=$backup_name"
sleep 5s
# Jalankan rsync untuk menarik file backup
rsync -avz --progress ${mikrotik_user}@${mikrotik_ip}:${backup_name}.backup ${local_backup_dir}/
# Hapus file backup dari router
ssh $mikrotik_user@$mikrotik_ip "file remove ${backup_name}.backup"
# Periksa hasil transfer
if [ $? -eq 0 ]; then
echo "$(date): File backup berhasil disinkronkan ke ${local_backup_dir}/${backup_name}" >> /var/log/mikrotik_backup.log
else
echo "$(date): Terjadi kesalahan saat menyinkronkan file backup. Pastikan file $backup_name ada di Mikrotik." >> /var/log/mikrotik_backup.log
fi
echo "Script Sinkronisasi Berhasil Dijalankan"
Script ini digunakan untuk mengotomatisasi proses backup MikroTik ke server backup terpusat berbasis Linux. Proses dimulai dengan menentukan beberapa parameter, seperti IP, username pada MikroTik yang akan di-backup, dan direktori tempat penyimpanan file backup.
Selanjutnya, script akan melakukan koneksi SSH ke MikroTik untuk mengambil identitas router, yang akan digunakan sebagai format nama file backup dengan pola RouterIdentity-YYYY-MM-DD. File backup yang telah dibuat kemudian dipindahkan ke server backup menggunakan rsync. Setelah file berhasil ditransfer, file backup pada router akan dihapus untuk menghemat storage. Berhasil atau tidaknya proses backup dapat dilihat pada file log di /var/log/mikrotik_backup.log.
Note:
- Pada variabel mikrotik_ip, ubah nilai di dalam tanda “ ” sesuai dengan alamat IP Mikrotik Anda yang dapat diakses dari server backup.
- Pada variabel mikrotik_user, ubah nilai di dalam tanda “ ” sesuai dengan username yang Anda gunakan untuk menjalankan script backup secara otomatis.
- Pada variabel local_backup_dir, ubah nilai di dalam tanda “ ” menjadi path menuju direktori tempat Anda ingin menyimpan file backup.
3. Ubah file backup-mikrotik.sh menjadi file executable
root@lab-reza:~# chmod +x /script/backup-mikrotik.sh
4. Coba jalankan script tersebut, jika berhasil maka akan tampil seperti gambar dibawah ini
root@lab-reza:~# /script/backup-mikrotik.sh
5. Jadwalkan Backup dengan Cron
root@lab-reza:~# crontab -e
Tambahkan baris berikut ke dalam crontab untuk menjadwalkan skrip backup setiap minggu pada pukul 02:00 pagi:
0 2 * * 0 /script/backup-mikrotik.sh
Untuk memeriksa cron job yang aktif jalankan command berikut dan akan terlihat seperti gambar dibawah:
root@lab-reza:~# crontab -l
Ada pepatah yang mengatakan, “sedia payung sebelum hujan.” Maka, sebelum router kita mengalami crash, sebaiknya kita melakukan backup terlebih dahulu sebagai langkah mitigasi.
Dengan menerapkan konfigurasi di atas, kita dapat mengurangi beban kerja dalam proses backup pada MikroTik. Selain itu, storage MikroTik tidak akan terbebani karena setiap file backup akan disimpan secara terpusat di server backup berbasis Linux bersama backup lainnya.
Reza Haikal Barus
Cloud Specialist
Experienced network, cloud, and systems engineer with over 4 years of experience in the technology industry. Possesses a broad range of technical skills and the ability to work independently and as part of a team. Committed to providing high-quality service and innovative solutions to meet customer needs.