Pemantauan CPU& RAM Real-Time via CLI dan Telegram

Akmal Asyam Hariri

Sosial Media


0 orang menyukai ini
Suka

Summary

Sebagai mahasiswa Data science, saya percaya bahwa teknologi sederhana sekalipun bisa sangat berguna jika dimanfaatkan dengan tepat. Dari pemikiran itu, saya merancang sebuah program monitoring sistem berbasis Shell Script yang dapat berjalan otomatis melalui terminal (CLI) dan terhubung langsung ke layanan Telegram Bot.

Awalnya, saya penasaran bagaimana cara mendapatkan informasi kondisi sistem (CPU dan RAM) secara berkala tanpa perlu memeriksa manual. Maka saya mulai membuat script yang membaca data dari sistem menggunakan top dan free, lalu mencatat hasilnya ke dalam log lokal.

Namun, saya tidak ingin hasil pemantauan hanya tersimpan secara lokal. Oleh karena itu, saya mengintegrasikan Telegram Bot API agar laporan penggunaan CPU dan RAM bisa dikirim langsung ke ponsel saya setiap satu menit.

Saya ingin program ini praktis, otomatis, dan bisa digunakan di berbagai perangkat. Ke depannya, saya berharap sistem ini bisa dikembangkan lebih lanjut, misalnya dengan menambahkan notifikasi suhu, penggunaan disk, atau dikombinasikan dengan dashboard visual seperti Grafana.

Description

Sebagai mahasiswa yang mempelajari sistem operasi Linux, saya menyadari pentingnya memantau penggunaan CPU dan RAM secara real-time. Oleh karena itu, saya mengembangkan sebuah sistem monitoring sederhana berbasis Shell Script yang berjalan melalui Command Line Interface (CLI). Program ini secara otomatis mengambil data penggunaan CPU dan RAM menggunakan perintah top dan free, lalu mengirimkannya ke Telegram melalui integrasi Bot API. Selain itu, program dijadwalkan berjalan setiap satu menit menggunakan cron, dan seluruh hasil pemantauan dicatat ke dalam file log lokal agar bisa ditinjau sewaktu-waktu.

Bagi saya, proyek ini adalah contoh bagaimana teknologi sederhana seperti Shell Script bisa digunakan untuk membuat solusi monitoring yang praktis, efisien, dan tetap ringan dijalankan di berbagai perangkat. Di masa depan, saya berencana mengembangkan fitur tambahan seperti pemantauan suhu, kapasitas disk, atau integrasi dengan platform visualisasi data seperti Grafana, sehingga program ini tidak hanya berguna secara pribadi, tetapi juga layak diterapkan pada skala sistem yang lebih besar

 

Tujuan Proyek

Proyek ini bertujuan untuk merancang dan mengimplementasikan sistem pemantauan kinerja CPU dan RAM secara real-time dengan pendekatan berbasis command line interface (CLI). Sistem ini memberikan solusi praktis dan efisien bagi pengguna untuk mengetahui kondisi performa perangkat tanpa perlu melakukan pemantauan manual secara terus-menerus. Secara khusus, tujuan dari proyek ini meliputi:

  • Membangun sistem monitoring sumber daya sistem (CPU dan RAM) secara otomatis
  • Mengirimkan notifikasi penggunaan CPU dan RAM melalui layanan Telegram Bot
  • Menyimpan log pemantauan secara lokal untuk kebutuhan dokumentasi dan analisis historis
  • Mengintegrasikan shell script dan cron sebagai alat utama dalam automasi sistem
  • Menyediakan sistem pemantauan ringan yang dapat dijalankan di berbagai distribusi Linux

 

Fungsi Sistem

Fungsi utama dari sistem ini adalah untuk memberikan pemantauan kinerja sistem secara otomatis dan memberitahukan pengguna terhadap kondisi penggunaan CPU dan RAM. Fungsi spesifik dari sistem ini antara lain:

  • Mengambil dan menghitung data pemakaian CPU dan RAM dari sistem secara berkala
  • Menampilkan informasi waktu, CPU, dan RAM melalui terminal dan bot Telegram
  • Menyimpan informasi penggunaan ke dalam file log lokal
  • Memberikan notifikasi rutin setiap 1 menit sebagai sistem pemantauan real-time
  • Mempermudah pengguna dalam mengetahui beban kerja sistem tanpa perlu membuka task manager atau alat GUI

 

Tools dan Teknologi yang Digunakan

Berikut adalah tools dan teknologi utama yang digunakan dalam implementasi proyek ini

Alat/KomponenFungsi
Shell Script (Bash)Bahasa utama untuk logika pemantauan dan pengiriman data
Command Line Interface (CLI)Antarmuka eksekusi untuk menjalankan script secara otomatis
CronScheduler Linux untuk menjalankan script tiap 1 menit
top, free, awk, bcUtilitas Linux untuk membaca data CPU dan RAM
Telegram Bot APSarana untuk mengirimkan pesan otomatis ke pengguna melalui Telegram
curlDigunakan untuk melakukan request HTTP ke API Telegram
notify-send (opsional)Memberikan notifikasi desktop lokal saat penggunaan tinggi

Dengan tujuan, fungsi, dan tools yang terstruktur dengan baik, sistem ini dapat memberikan pemantauan yang stabil dan real-time tanpa memerlukan resource besar. Proyek ini sekaligus membuktikan bahwa CLI dan scripting sederhana dapat digunakan untuk membangun sistem monitoring yang fungsional dan efektif

 

Langkah-Langkah Pembuatan Program

(Program Ini Mengunakan Virtual Machine Ubuntu lewat VirtualBox)
1. Langkah Pertama yaitu menyalakan Virtual Machine Ubuntu lewat VirtualBox


Ini Tampilan Jika User sudah masuk kedalam Virtual Machine Ubuntu yang sudah User nyalakan sebelumnya lalu User menekan Enter untuk melanjutkan.


2.Ini tampilan jika anda sudah Menekan Enter

User diminta untuk memasukan Password yang sudah di buat sebelumnya
 

3. Ini adalah tampilan jika user sudah memasukan Password

Lalu Pengguna menekan tombol "Super" (biasanya logo Windows di keyboard) atau mengklik ikon Ubuntu di kiri bawah, tujuannya adalah menampilkan semua aplikasi yang terinstal di sistem Ubuntu kamu


4. Inilah Tampilan jika sudah menekan tombol Ubuntu dikiri bawah tadi

Cari ikon "Terminal" di daftar aplikasi. Ikonnya bergambar layar hitam Klik kiri satu kali pada ikon Terminal tersebut Terminal akan terbuka, dan kamu bisa mulai mengetik perintah seperti ini (ada di bawah)

Ctrl + Alt + J untuk langsung membuka Terminal tanpa klik ikon -Lalu buat Folder bary dengan mengetik

mkdir ~/(nama folder yang mau di buat) lalu ketik cd ~(nama folder yang sudah di buat) untuk mengaktifkan folder tersebut

ini adalah contoh dengan nama folder monitor_sistem.sh

Lalu Ketik: nano ./monitor_sistem.sh

maka program akan muncul seperti ini

 

 

Penulisan Shell Script

1. Penulisan Code

#!/bin/bash: Menandakan bahwa script ini ditulis dalam bahasa Bash

TOKEN dan CHAT_ID: Digunakan untuk mengirim pesan ke Telegram Bot

LOG_FILE: Lokasi file log yang akan menyimpan histori penggunaan CPU dan RAM

BATAS_CPU dan BATAS_RAM: Batas maksimal penggunaan CPU dan RAM sebelum dianggap "melewati batas"

TIMESTAMP: Menyimpan waktu saat script dijalankan (zona waktu Jakarta)

JALANKAN_FILE: Digunakan untuk mengontrol apakah notifikasi Telegram diaktifkan (dengan membuat file ini)

=================Pengecekan Dependency============

Penjelasan:

  • Memastikan program bc dan curl sudah terinstal
  • Jika tidak ada, tampilkan pesan error dan keluar dari script

====ambil data sistem====

Penjelasan:

  • CPU_PAKAI: Menghitung persentase CPU yang sedang digunakan (100 - idle)
  • RAM_PAKAI: Menghitung persentase RAM yang digunakan dengan membagi penggunaan saat ini dengan total RAM

 

2. Tampilan Ke terminal 

echo "==== MONITOR SISTEM ===="

echo "Waktu: $TIMESTAMP"

echo "Penggunaan CPU: $CPU_PAKAI%"

echo "Penggunaan RAM: $RAM_PAKAI%"

echo "Log disimpan di: $LOG_FILE"

Penjelasan:

  • Menampilkan informasi penggunaan sistem ke terminal

====Simpan LOG====

Penjelasan:

  • Menyimpan hasil pemantauan ke file log agar bisa dianalisis nanti

========kirim ke telegram========

if [ -f "$JALANKAN_FILE" ]; then

   PESAN="Pemantauan Sistem

Waktu: $TIMESTAMP

CPU: $CPU_PAKAI%

RAM: $RAM_PAKAI%"

  1. if [ -f "$JALANKAN_FILE" ]; then
  • Mengecek apakah file kontrol yang disimpan dalam variabel JALANKAN_FILE ada di sistem.
  • Misalnya, JALANKAN_FILE="$HOME/.jalanin" berarti yang dicek adalah file ~/.jalanin (di home folder user)
  • Tujuan dari ini adalah mengontrol apakah notifikasi Telegram diizinkan atau tidak
  • Jika file tersebut ada, maka blok perintah di dalam then akan dijalankan

    2. PESAN="Pemantauan Sistem ..."

  • Membuat isi pesan yang akan dikirimkan ke Telegram.
  • Di dalamnya berisi:
    • Judul: Pemantauan Sistem
    • Waktu pemantauan (dari variabel $TIMESTAMP)
    • Persentase penggunaan CPU ($CPU_PAKAI%)
    • Persentase penggunaan RAM ($RAM_PAKAI%)

Contoh nilai setelah diisi bisa jadi seperti:

Pemantauan Sistem
Waktu: 2025-06-27 10:32:12
CPU: 34.20%
RAM: 68.90%

>code ke 2 : 

curl -s -X POST "https://api.telegram.org/bot$TOKEN/sendMessage" \

    -d chat_id="$CHAT_ID" \

    -d parse_mode="Markdown" \

    -d text="$PESAN" > /dev/null

else

    echo "Notifikasi Telegram dimatikan (file .jalanin tidak ada)"

fi

Penjelasan Baris per Baris:

curl -s -X POST "https://api.telegram.org/bot$TOKEN/sendMessage" \

  • Menggunakan curl untuk mengirim permintaan POST ke API Telegram Bot
  • $TOKEN adalah token bot Telegram milikmu (contohnya: 770976...)
  • Endpoint sendMessage digunakan untuk mengirim pesan ke pengguna

-d chat_id="$CHAT_ID"

  • Mengirim parameter chat_id yaitu ID Telegram penerima
  • $CHAT_ID adalah ID akun atau grup Telegram yang menerima pesan

 -d parse_mode="Markdown"

  • Mengatur format teks menggunakan Markdown, agar teks bisa dibuat bold, italic, dll.

-d text="$PESAN"

  • Isi pesan yang dikirim, disimpan di variabel $PESAN (yang sebelumnya sudah kamu buat)

> /dev/null

  • Mengabaikan hasil keluaran dari curl, agar terminal tidak menampilkan hasil request (silent)

else & fi

Jika file .jalanin tidak ditemukan, maka masuk ke blok else ini

echo "Notifikasi Telegram dimatikan (file .jalanin tidak ada)"

Menampilkan pesan ke terminal bahwa notifikasi Telegram tidak dikirim karena file kontrol tidak ada.

 fi

Menutup pernyataan if yang dimulai sebelumnya (pengecekan file .jalanin)

 

==========Peringatan Lokal jika Melebihi Batas=========

Penjelasan:

  • Script akan memberi peringatan langsung di terminal jika CPU atau RAM melebihi ambang batas 80%.

 

Cara Menjalankannya:

  1. Pastikan file script sudah kamu simpan, misal sebagai monitor_sistem.sh.
  2. Cari token telegram anda di Father Bot di telegram (ini contohnya)
  3. ketik /start →
  4.  
  5. Lalu akan muncul tampilan seperti ini , lalu pencet/pilih yang (/newbot)→
  6. Lalu akan muncul jawaban dari bot seperti diatas , lalu ketiklah nama program yang kamu sudah buat di ubunntu sebelumnya (contoh: monitor_sistem.sh) 
  7. Lalu User mendapatkan token untuk menyambungkan ke dalam program , 
  8. selanjutnya untuk mencari Chat id dari telegram pertama-tama anda harus mencari di https://api.telegram.org/bot<TOKEN_KAMU>/getUpdates
    dengan masukan token kamu di dalamnya dan juga mengchat ke bot kamu dengan kata"halo"agar bot merespon saat di minta
  9. maka kamu akan medapatkan seperti code kamu di sana dengan contoh seperti ini: 
  10. maka masukan lah API dan CHAT ID ke dalam code program , seperti ini→
  11. jika semua sudah kamu masukan maka pencet "ctrl+o" untuk menyimpan program dan ENTER lalu tekan “ctrl+x” untuk keluar dari code dan menjalankan program 
  12. Lalu ketik → ./monitor_sistem.sh " untuk menjalankan dan melihat CPU dan RAM di terminal 
  13. Dan jika User ingin mendapatkan Notifikasi di BOT TELEGRAM maka User harus mengaktifkan dengan cara mengetik → touch ~/.jalanin 
  14. Dan jika untuk mengaktifkan notikasi otomatis setiap 1 menit maka User harus mengaktifkan dengan cara mengetik 
  15. → crontab -e dan ketik di bawah nya → * * * * * /path/ke/monitor_sistem.sh
  16. Maka Program akan memberikan Notifikasi CPU dan RAM di BOT TELEGRAM kamu selama 1 Menit sekali
  17. seperti ini :
  18. maka kamu akan mendapatkan Notifikasi seperti ini
  19. Dan jika User ingin mematikan Notifikasi , maka ketiklah → "rm ~/.jalanin" 
  20. maka User Sudah TIDAK MENDAPATKAN NOTIFIKASI LAGI , lalu untuk mematikan program di Terminal maka ketikla → ctrl+c 
  21. maka program SELESAI. 

 

Informasi Course Terkait
  Kategori: Cloud Computing
  Course: Cloud Computing