
Dalam dunia administrasi sistem Linux, pemantauan performa server adalah hal yang sangat krusial. Tanpa pemantauan yang rutin, seorang sysadmin bisa saja kecolongan ketika server lambat atau bahkan down tanpa peringatan. Untuk mengatasi hal ini, banyak tools canggih seperti Nagios
, Zabbix
, dan Prometheus
tersedia. Namun, bagaimana kalau kita hanya butuh sesuatu yang cepat, ringan, dan bisa dijalankan langsung di terminal?
Jawabannya adalah membuat script sederhana yang bisa menampilkan informasi penting performa server. Artikel ini akan membahas script sederhana yang dinamakan server-stats.sh
yang dapat dijalankan di hampir semua distribusi Linux. Script ini akan memberikan data penting seperti penggunaan CPU, RAM, disk, proses teratas, hingga informasi tambahan seperti uptime dan jumlah pengguna yang sedang login.
Fitur Script
Berikut adalah statistik yang bisa ditampilkan oleh script ini:
-
Total penggunaan CPU (dalam persentase)
-
Total penggunaan Memori (free vs used)
-
Total penggunaan Disk (free vs used)
-
5 proses teratas berdasarkan penggunaan CPU
-
5 proses teratas berdasarkan penggunaan memori
-
Informasi tambahan (opsional):
-
OS version
-
Uptime
-
Load average
-
Pengguna yang sedang login
-
Upaya login yang gagal
-
Isi Script
Berikut adalah isi dari script tersebut. Salin dan simpan sebagai file bernama server-stats.sh
, lalu jalankan dengan bash server-stats.sh
.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 |
#!/bin/bash echo "==============================" echo " SERVER STATS " echo "==============================" echo "" # OS Info echo "📦 OS Version:" cat /etc/os-release | grep PRETTY_NAME | cut -d= -f2 | tr -d '"' echo "" # Uptime echo "⏱️ Uptime:" uptime -p echo "" # Load Average echo "📊 Load Average:" uptime | awk -F'load average:' '{ print $2 }' echo "" # Logged In Users echo "👥 Logged-in Users:" who | wc -l echo "" # CPU Usage echo "🧠 Total CPU Usage:" top -bn1 | grep "Cpu(s)" | awk '{print 100 - $8 "% used"}' echo "" # Memory Usage echo "📈 Memory Usage:" free -m | awk 'NR==2{printf "Used: %sMB / Total: %sMB (%.2f%%)\n", $3, $2, $3*100/$2 }' echo "" # Disk Usage echo "💾 Disk Usage:" df -h / | awk 'NR==2{printf "Used: %s / Total: %s (Available: %s)\n", $3, $2, $4}' echo "" # Top 5 Processes by CPU echo "🔥 Top 5 Processes by CPU Usage:" ps -eo pid,comm,%cpu --sort=-%cpu | head -n 6 echo "" # Top 5 Processes by Memory echo "💡 Top 5 Processes by Memory Usage:" ps -eo pid,comm,%mem --sort=-%mem | head -n 6 echo "" # Failed Login Attempts (last 24 hours) echo "🚨 Failed Login Attempts (last 24h):" journalctl _COMM=sshd --since "24 hours ago" | grep "Failed password" | wc -l echo "" |
Penjelasan Script
1. Informasi OS dan Uptime
Bagian ini menampilkan nama sistem operasi yang digunakan. Misalnya: Ubuntu 20.04.6 LTS
.
Menunjukkan berapa lama sistem sudah menyala sejak terakhir kali reboot.
2. Load Average dan Pengguna Aktif
Baris load average
menunjukkan beban sistem dalam 1, 5, dan 15 menit terakhir. Nilai ini berguna untuk melihat apakah server terlalu sibuk.
Menampilkan jumlah user yang saat ini sedang login.
3. Penggunaan CPU
Menampilkan pemakaian CPU. Kita mengurangkan nilai “idle” (yang tidak digunakan) dari 100% untuk mendapatkan nilai penggunaan aktif.
4. Penggunaan Memori
Menampilkan memori yang digunakan dan total dalam satuan MB, termasuk persentase penggunaannya.
5. Penggunaan Disk
Menampilkan total kapasitas, kapasitas yang digunakan, dan kapasitas yang tersisa dari partisi root (/
).
6. Proses Teratas
Menampilkan daftar proses berdasarkan penggunaan CPU tertinggi.
Mirip dengan di atas, tapi berdasarkan penggunaan memori.
7. Gagal Login
Mendeteksi percobaan login yang gagal dalam 24 jam terakhir. Cocok untuk mendeteksi serangan brute-force.
Cara Menggunakan Script
-
Simpan file dengan nama
server-stats.sh
-
Ubah permission agar bisa dieksekusi:
-
Jalankan script:
Contoh Output
Berikut adalah contoh output ketika script dijalankan:
Kelebihan Script
-
Portabel: Bisa dijalankan hampir di semua distro Linux tanpa dependency tambahan.
-
Mudah Dibaca: Format output yang jelas dan rapi.
-
Cepat dan Ringan: Tidak perlu instalasi aplikasi monitoring yang berat.
-
Mudah Dimodifikasi: Bisa dengan mudah ditambahkan fungsi tambahan seperti monitoring suhu, traffic jaringan, dan lainnya.
Pengembangan Selanjutnya
Script ini bisa dikembangkan lebih lanjut dengan:
-
Menambahkan email alert jika CPU atau RAM melebihi ambang batas
-
Menyimpan output ke file log
-
Menjadwalkan script menggunakan
cron
untuk laporan berkala -
Menambahkan integrasi dengan Telegram bot untuk notifikasi real-time
Kesimpulan
Script server-stats.sh
adalah solusi sederhana namun efektif untuk memantau kondisi server secara real-time langsung dari terminal. Dengan hanya beberapa baris kode Bash, kita sudah bisa mendapatkan insight penting mengenai performa server dan proses-proses yang berjalan di dalamnya.
Jika kamu ingin menjaga server Linux tetap sehat dan stabil? Cobalah script ini sekarang dan pastikan server kamu selalu dalam kondisi prima!, Jika ada yang ingin ditanyakan, jangan sungkan untuk drop pertanyaanmu di kolom komentar.
Leave a Reply