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?

  1. 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.
  2. Meminimalkan Downtime
    Dengan mengetahui kondisi disk lebih awal, Anda bisa segera mengganti disk bermasalah sehingga
  3. layanan tetap berjalan lancar.
    Menjaga Performa Sistem
    RAID yang tidak sehat menurunkan performa baca/tulis. Monitoring memastikan sistem tetap optimal.
  4. 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)

  1. Perintah utama untuk melihat status RAID adalah:
    sudo mdadm --detail /dev/md0
    

    Contoh 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

  1. 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
      
  2. 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 : gmail
      
      Pastikan 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.com

      Jika berhasil, email akan terkirim ke alamat yang dituju.

  3. 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
      done
                                                                                                                                                                                                                                                                                                                                                                                         

      Penjelasan :
      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.sh
      

      Jika berhasil, email akan terkirim ke alamat yang dituju

  4. 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.

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.  


Artikel Lain

WhatsApp Kami

Support : +6282138153600

Admin Finance : +6285191239466