Cara Mudah Monitoring RAID di Linux: Deteksi Disk Degraded Secara Otomatis
Pengantar
Monitoring RAID adalah salah satu tugas paling penting dalam manajemen server Linux. Banyak administrator sering lupa bahwa RAID bisa mengalami kondisi degraded, faulty, atau rebuilding tanpa memberi notifikasi apa pun. Akibatnya, data bisa berada dalam risiko meskipun server terlihat berjalan normal
Mengapa Monitoring RAID Penting?
- Mendeteksi Disk Degraded Lebih Cepat
RAID yang degraded berarti salah satu disk sudah gagal atau hampir gagal. Tanpa monitoring, risiko kehilangan data meningkat jika disk cadangan ikut rusak. - Meminimalkan Downtime
Dengan mengetahui kondisi disk lebih awal, Anda bisa segera mengganti disk bermasalah sehingga - layanan tetap berjalan lancar.
Menjaga Performa Sistem
RAID yang tidak sehat menurunkan performa baca/tulis. Monitoring memastikan sistem tetap optimal. - Mencegah Kehilangan Data
RAID bukan pengganti backup, tapi monitoring dapat mencegah kerusakan yang lebih besar yang berujung pada kehilangan data.
Cara Cek Status RAID Secara Manual (mdadm)
- Perintah utama untuk melihat status RAID adalah:
sudo mdadm --detail /dev/md0Contoh output yang menunjukkan RAID degraded dan disk faulty:
/dev/md0: Raid Level : raid1 State : clean, degraded Active Devices : 1 Working Devices : 1 Failed Devices : 1 Number Major Minor RaidDevice State 0 8 1 0 active sync /dev/sda1 1 8 17 1 faulty /dev/sdb1
Dari output ini, kita bisa mengetahui apakah array sedang degraded atau ada disk faulty.
Langkah - Langkah instalasi dan konfigurasi Monitoring RAID secara otomatis
- Instalasi mailx dan msmtp
Gunakan Perintah berikut:
- CentOS / RHEL / Fedora
sudo dnf install -y msmtp mailx - Ubuntu / Debian
sudo apt update sudo apt install -y msmtp bsd-mailx
- CentOS / RHEL / Fedora
- Konfigurasi msmtp (SMTP):
Disini kita bisa menggunakan beberapa smtp internal (Postfix, Exim) atau external (SMTP hosting sendiri) untuk tutorial kali ini menggunakan smptp hosting Cpanel.
- Edit File Konfigurasi msmtp :
nano /etc/msmtprc - Contoh konfigurasi
Sesuaikan dengan Smpt anda :
# /etc/msmtprc defaults auth on tls on tls_trust_file /etc/ssl/certs/ca-certificates.crt logfile /var/log/msmtp.log account gmail host smtp.gmail.com port 587 from emailku@gmail.com user emailku@gmail.com password Password_Email account default : gmailPastikan host, from, user, dan password disesuaikan dengan akun SMTP yang sudah dibuat di cPanel.
- Set hak akses msmtp
Agar konfigurasi aman, ubah permission file:
chmod 600 /etc/msmtprc - Integrasi dengan mailx
Cek apakah file s-nail.rc atau mail.rc ada:
ls /etc | grep -E "mail\.rc|s-nail\.rc"Jika muncul s-nail.rc, edit file tersebut:
sudo nano /etc/s-nail.rc - Tambahkan baris berikut untuk menggunakan msmtp sebagai MTA::
set mta=/usr/bin/msmtp - Kemudian coba testing terlebih dahulu apakah email berhasil terkirim dengan perintah berikut :
echo "Testing email dari server" | mail -s "Test Email" emailku@gmail.comJika berhasil, email akan terkirim ke alamat yang dituju.
- Edit File Konfigurasi msmtp :
- Buat Script otomatis
- Kemudian edit file berikut :
nano /usr/local/bin/raid-monitor.sh -
Masukkan script bash berikut :
#!/bin/bash LOGFILE="/var/log/raid-monitor.log" EMAIL="ts.plasawebhost@gmail.com" DATE=$(date "+%Y-%m-%d %H:%M:%S") echo "$DATE - Cron test berjalan" >> $LOGFILE ARRAYS=$(mdadm --detail --scan | awk '{print $2}') TEST_MODE=0 [ ! -f "$LOGFILE" ] && touch "$LOGFILE" if [ "$TEST_MODE" -eq 1 ]; then echo "$DATE - TEST MODE: Mengirim email test RAID alert" | tee -a $LOGFILE echo -e "TEST MODE\n\nJika email ini diterima, maka SMTP & mailx sudah bekerja." \ | mail -s "RAID TEST ALERT" "$EMAIL" exit 0 fi for md in $ARRAYS; do STATUS=$(mdadm --detail "$md") if echo "$STATUS" | grep -qi "degraded"; then echo "$DATE - WARNING: RAID $md DEGRADED" | tee -a "$LOGFILE" echo -e "PERINGATAN!\n\nRAID $md saat ini *DEGRADED*.\n\nDetail status:\n$STATUS" \ | mail -s "⚠ RAID WARNING: $md Degraded" "$EMAIL" fi if echo "$STATUS" | grep -qi "faulty"; then echo "$DATE - ERROR: RAID $md FAULTY" | tee -a "$LOGFILE" echo -e "PERINGATAN KERAS!\n\nDisk FAULTY terdeteksi pada array $md.\n\nDetail lengkap:\n$STATUS" \ | mail -s "RAID ERROR: $md Faulty Drive" "$EMAIL" fi if grep -qiE "recovery|resync" /proc/mdstat; then echo "$DATE - INFO: RAID $md sedang rebuilding/resync" | tee -a "$LOGFILE" echo -e "INFO:\nRAID $md sedang melakukan *rebuilding/resync*.\n\nDetail status: \n$STATUS" \ | mail -s "RAID INFO: $md Rebuilding" "$EMAIL" fi donePenjelasan :
Jika TEST_MODE=1, script akan mengirim email percobaan.
Jika TEST_MODE=0, script akan cek RAID sesungguhnya dan kirim email alert jika ada masalah - Kemudian berikan hak akses eksekusi :
chmod +x /usr/local/bin/raid-monitor.sh - Uji Script Manual
sudo /usr/local/bin/raid-monitor.shJika berhasil, email akan terkirim ke alamat yang dituju
- Kemudian edit file berikut :
- Jadwalkan Script dengan Cron
Agar script bisa berjalan secara otomatis bisa menggunakan crontab
- Edit crontab root
sudo crontab -e - Tambahkan baris berikut
# Cek RAID tiap 10 menit */10 * * * * /usr/local/bin/raid-monitor.sh - Cek Cron dan Script
# Lihat daftar cron root sudo crontab -l # Lihat log script cat /var/log/raid-monitor.log
Jika log berjalan dan email terkirim sesuai kondisi RAID, setup monitoring sudah selesai.
- Edit crontab root
Kesimpulan
Monitoring RAID di Linux sangat penting untuk menjaga kesehatan server dan mencegah kehilangan data, karena dengan memantau status array, mendeteksi disk degraded, faulty, atau proses rebuilding secara otomatis melalui script dan email alert, administrator bisa segera mengambil tindakan sebelum terjadi kerusakan yang lebih parah, menjaga performa sistem tetap optimal, meminimalkan downtime, serta memastikan integritas data tetap terjaga, sehingga kombinasi tools seperti mdadm,msmtp, dan mailx menjadi solusi efektif untuk pemantauan RAID yang handal dan otomatis.


