Membuat Skrip Monitoring CPU dan RAM dengan Bash Script

Ketika kita mengelola server atau sistem yang menjalankan beberapa aplikasi penting, menjaga kinerja sistem tetap optimal adalah prioritas utama. Salah satu cara untuk memastikan bahwa sistem kita tidak kewalahan oleh penggunaan CPU atau RAM adalah dengan memonitor resource tersebut dan mengambil tindakan otomatis jika penggunaan melebihi batas tertentu. Dalam artikel ini, kita akan membahas cara membuat skrip Bash sederhana yang akan memonitor penggunaan CPU dan RAM, mengirim notifikasi jika penggunaan melebihi threshold, dan bahkan melakukan reboot sistem jika diperlukan.

Skrip Bash untuk Monitoring

Berikut adalah skrip Bash yang dapat kita gunakan:

#!/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}')

# Fungsi untuk mengirim notifikasi
send_notification() {
    local message=$1
    # Mengirim notifikasi menggunakan curl
    curl -v -G --data-urlencode "chat_id=[id-telegram]" --data-urlencode "message=$message" "http://[ip-bot]/send-message.php"

}

# 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>    send_notification "$message"
    sudo reboot
else
    # Buat pesan jika semuanya aman
    message="System check passed. CPU: $CPU_USAGE%, RAM: $RAM_USAGE%. Thresholds - CPU: $CPU_THRESHOLD%, RAM: $RAM_THRESHOLD%."
    send_notification "$message"
fi

Penjelasan Skrip:

  • Threshold CPU dan RAM: Pada skrip ini, batas penggunaan CPU dan RAM ditetapkan pada 85%. Jika penggunaan CPU atau RAM melebihi angka ini, skrip akan bertindak.

  • Mengirim Notifikasi: Skrip menggunakan curl untuk mengirim notifikasi ke endpoint yang telah kita tentukan. Kita bisa mengganti https://your-notification-endpoint dengan URL endpoint yang sesuai dengan kebutuhan kita.

  • Reboot Otomatis: Jika salah satu resource (CPU atau RAM) melebihi threshold, skrip akan mengirim notifikasi dan kemudian melakukan reboot pada sistem.

Menjalankan Skrip dengan Crontab

Untuk menjalankan skrip ini secara berkala, kita bisa menggunakan crontab. Misalnya, untuk menjalankan skrip setiap 5 menit, tambahkan baris berikut ke crontab:

*/5 * * * * /path/to/your-script.sh

Gantilah /path/to/your-script.sh dengan path aktual ke skrip yang kita buat. Dengan cara ini, sistem kita akan selalu dimonitor, dan tindakan yang diperlukan akan dilakukan secara otomatis tanpa intervensi manual. Jika terjadi error
./check-resource.sh: line 23: bc: command not found
./check-resource.sh: line 23: bc: command not found
silahkan jalankanĀ  sudo apt-get install bc dan kembali dicoba

Kesimpulan

Dengan skrip sederhana ini, kita bisa memastikan bahwa sistem kita selalu berada dalam kondisi optimal. Skrip ini akan memonitor penggunaan CPU dan RAM secara berkala, mengirimkan notifikasi jika ada masalah, dan bahkan melakukan reboot jika diperlukan. Ini adalah solusi yang efisien dan otomatis untuk menjaga kinerja sistem tetap stabil.