Otomatisasi Monitoring Sistem: Reboot Saat Penggunaan CPU/RAM Melebihi Threshold

Pendahuluan

Dalam pengelolaan server atau sistem komputasi, performa sistem yang optimal sangat penting untuk memastikan keberlangsungan operasional. Salah satu indikator penting yang harus dipantau secara rutin adalah penggunaan CPU dan RAM. Jika sumber daya ini mencapai atau melebihi ambang batas tertentu, dapat menyebabkan penurunan performa, kegagalan layanan, atau bahkan crash pada sistem. Untuk mencegah hal ini, automasi monitoring dengan aksi yang terstruktur, seperti reboot otomatis, dapat diterapkan menggunakan script sederhana berbasis Bash.

Artikel ini akan mengkaji secara komprehensif bagaimana membuat dan menggunakan script Bash untuk memantau penggunaan CPU dan RAM, menulis log, dan melakukan reboot otomatis ketika penggunaan sumber daya melebihi ambang batas yang telah ditentukan.

Apa itu Monitoring Sistem?

Monitoring sistem adalah proses pengamatan terus-menerus terhadap performa dan kesehatan sistem. Dalam konteks ini, penggunaan CPU (Central Processing Unit) dan RAM (Random Access Memory) adalah dua metrik yang paling kritis. CPU bertanggung jawab untuk menjalankan instruksi program, sedangkan RAM berfungsi untuk menyimpan data sementara yang diperlukan oleh program yang sedang berjalan.

Ketika salah satu atau kedua sumber daya ini melebihi kapasitas yang dapat ditangani oleh sistem, performa akan menurun drastis, sehingga penting untuk melakukan monitoring secara terus-menerus. Dengan automasi menggunakan script, administrator sistem dapat memastikan bahwa tindakan korektif diambil segera saat terdeteksi lonjakan penggunaan sumber daya yang tidak wajar.

Penjelasan Script Bash Monitoring CPU dan RAM


#!/bin/bash

# Batas threshold untuk CPU dan RAM
CPU_THRESHOLD=85
RAM_THRESHOLD=85

# Periksa penggunaan CPU
CPU_USAGE=$(top -bn1 | grep "Cpu(s)" | awk '{print $2 + $4}')

# Periksa penggunaan RAM
RAM_USAGE=$(free | grep Mem | awk '{print $3/$2 * 100.0}')

# Tentukan lokasi log di direktori tempat script berada
SCRIPT_DIR=$(dirname "$0")
LOG_FILE="$SCRIPT_DIR/system_usage.log"

# Fungsi untuk menulis ke log dengan timezone Jakarta
log_message() {
    local message=$1
    echo "$(TZ="Asia/Jakarta" date '+%Y-%m-%d %H:%M:%S') - $message" >> $LOG_FILE
}

# Log dan reboot jika salah satu penggunaan melebihi threshold
if (( $(echo "$CPU_USAGE > $CPU_THRESHOLD" | bc -l) )) || (( $(echo "$RAM_USAGE > $RAM_THRESHOLD" | bc -l) )); then
    # Buat pesan dengan CPU dan RAM usage yang dikirimkan
    message="Warning: CPU or RAM usage exceeded threshold. CPU: $CPU_USAGE%, RAM: $RAM_USAGE%. Thresholds - CPU: $CPU_THRESHOLD%, RAM: $RAM_THRESHOLD%."
    log_message "$message"
    sudo reboot
else
    # Jika semuanya aman, tampilkan pesan di terminal
    echo "System check passed. CPU: $CPU_USAGE%, RAM: $RAM_USAGE%. Thresholds - CPU: $CPU_THRESHOLD%, RAM: $RAM_THRESHOLD%."
fi
        

Cara Menggunakan Script

Berikut adalah langkah-langkah untuk menggunakan script Bash tersebut:

1. Buat File Script

Buka terminal di sistem Linux atau macOS. Buat file baru untuk script, misalnya monitor_system.sh, dengan menjalankan perintah berikut:

nano monitor_system.sh

Salin seluruh isi script yang sudah dijelaskan ke dalam file tersebut.

2. Beri Izin Eksekusi pada Script

Setelah file dibuat, berikan izin eksekusi pada file dengan menjalankan perintah:

chmod +x monitor_system.sh

3. Jalankan Script

Untuk menjalankan script, jalankan perintah berikut:

./monitor_system.sh

Menjadwalkan Eksekusi Script Secara Otomatis (Opsional)

Jika ingin agar script berjalan secara otomatis pada interval tertentu, jadwalkan dengan cron. Edit tugas cron dengan perintah:

crontab -e

Tambahkan baris berikut untuk menjalankan script setiap 5 menit:

*/5 * * * * /path/to/monitor_system.sh

Gantilah /path/to/monitor_system.sh dengan path lengkap dari lokasi script.

Memeriksa Log

Log disimpan di file system_usage.log di direktori yang sama dengan script. Untuk memeriksa log, jalankan perintah:

cat /path/to/system_usage.log

Kelebihan Automasi Monitoring

Automasi monitoring dengan script Bash memberikan beberapa manfaat:

  • Efisiensi Waktu: Tidak perlu memantau performa secara manual.
  • Tindakan Proaktif: Reboot otomatis mengurangi risiko kerusakan lebih lanjut.
  • Penghematan Sumber Daya: Script yang ringan dan sederhana.

Kesimpulan

Memantau penggunaan CPU dan RAM secara otomatis dengan script Bash adalah solusi yang efektif untuk menjaga stabilitas sistem. Dengan script ini, administrator dapat merespons lonjakan penggunaan sumber daya dengan cepat, mengurangi potensi downtime atau masalah sistem.

Referensi

  • top: Manajemen proses dan monitoring sumber daya sistem.
  • free: Informasi penggunaan memori.
  • awk: Pemrosesan teks dalam Unix.
  • cron: Penjadwalan tugas otomatis di Unix dan Linux.