Panduan Lengkap: Membuat Panel Monitoring custom untuk VPS UDP Anda
Halo, sobat sysadmin! Pada artikel sebelumnya saya sudah pernah membahas tutorial Membuat UDP Log Di VPS Linux.Dalam tutorial kali ini yang merupakan kelanjutan dari tutorial sebelumnya, kita akan membangun sebuah panel monitoring custom dari nol yang dapat di jalankan dalam satu tempat terpusat untuk memantau semua aktivitas user di VPS Anda dan ini akan membuat pekerjaan Anda jauh lebih mudah.
Kita akan membuat tiga perintah baru:
udplog: Untuk melihat daftar user yang sedang aktif.checkmultilogin: Untuk mendeteksi user yang login dari lebih dari satu IP.monitorpanel: Sebuah panel menu interaktif yang menggabungkan semua fungsi di atas.
Yang terbaik dari semuanya, kita akan melakukannya dengan cara yang sangat aman, tanpa mengubah skrip asli Anda sama sekali. Yuk, kita mulai!
Langkah 1: Membuat Perintah udplog (Cek User Aktif)
Pertama, kita buat folder untuk menyimpan semua skrip kita.
sudo mkdir -p /opt/udp-proxy/bin
Sekarang, buat file untuk skrip udplog.
sudo nano /opt/udp-proxy/bin/show_users.sh
Salin dan tempel kode berikut ke dalamnya:
#!/bin/bash
echo "════════════════════════════════════════════════"
echo " [ USER LOGIN UDP ] "
echo "════════════════════════════════════════════════"
echo "┌──────────────────────────────────────────────┐"
if LOG_OUTPUT=$(sudo journalctl -u udp-custom.service --since "5 minutes ago" --no-pager | grep "Client connected" | awk '
/\[src:/ && /\[user:/ {
match($0, /\[src:([^]]+)\]/, m)
ip = m[1]
match($0, /\[user:([^]]+)\]/, u)
user = u[1]
if (ip && user) {
printf "%-15s %-20s\n", user, ip
}
}' | sort -u); then
if [ -n "$LOG_OUTPUT" ]; then
printf " %-15s %-15s %-20s\n" "Status" "Username" "IP Address"
echo "$LOG_OUTPUT" | while read -r user ip; do
printf " %-15s %-15s %-20s\n" "Aktif" "$user" "$ip"
done
else
echo " Tidak ada user yang terhubung dalam 5 menit terakhir."
fi
else
echo " Gagal mengambil log. Pastikan Anda menjalankan dengan sudo."
fi
echo "└──────────────────────────────────────────────┘"
Simpan file (Ctrl+X, lalu Y dan Enter), lalu berikan izin eksekusi:
sudo chmod +x /opt/udp-proxy/bin/show_users.sh
Terakhir, buat perintah pintasannya:
sudo ln -s /opt/udp-proxy/bin/show_users.sh /usr/local/bin/udplog
Langkah 2: Membuat Perintah checkmultilogin (Deteksi Multi-Login)
Buat file untuk skrip deteksi multi-login.
sudo nano /opt/udp-proxy/bin/check_multilogin.sh
Salin dan tempel kode berikut:
#!/bin/bash
echo "════════════════════════════════════════════════"
echo " [ CEK USER MULTI-LOGIN ] "
echo "════════════════════════════════════════════════"
echo "Menganalisis log dalam 1 jam terakhir..."
echo ""
if MULTI_LOGIN=$(sudo journalctl -u udp-custom.service --since "1 hour ago" --no-pager | grep "Client connected" | awk -F'[][]' '
{
for (i=1; i<=NF; i++) {
if ($i ~ /user:/) {
split($i, u, ":")
username = u[2]
}
if ($i ~ /src:/) {
split($i, s, ":")
ip = s[2]
}
}
if (username && ip) {
ips[username] = ips[username] " " ip
}
}
END {
for (user in ips) {
split(ips[user], ip_list, " ")
delete unique_ips
for (i in ip_list) {
if (ip_list[i] != "") {
unique_ips[ip_list[i]] = 1
}
}
if (length(unique_ips) > 1) {
printf "User: %-15s | Jumlah IP: %d | IP: %s\n", user, length(unique_ips), ips[user]
}
}
}'); then
if [ -n "$MULTI_LOGIN" ]; then
echo ">>> DITEMUKAN USER YANG MELAKUKAN MULTI-LOGIN! <<<"
echo "-----------------------------------------------"
echo "$MULTI_LOGIN"
else
echo "Tidak ada user yang terdeteksi melakukan multi-login dalam 1 jam terakhir."
fi
else
echo "Gagal mengambil log. Pastikan Anda menjalankan dengan sudo."
fi
echo "════════════════════════════════════════════════"
Simpan file (Ctrl+X, Y, Enter), berikan izin eksekusi, dan buat perintah pintasannya:
sudo chmod +x /opt/udp-proxy/bin/check_multilogin.sh
sudo ln -s /opt/udp-proxy/bin/check_multilogin.sh /usr/local/bin/checkmultilogin
Langkah 3: Membuat Panel Utama monitorpanel
Sekarang, kita akan menggabungkan semuanya ke dalam satu panel yang mudah digunakan. Buat file untuk panel utama.
sudo nano /opt/udp-proxy/bin/monitorpanel.sh
Salin dan tempel kode menu interaktif berikut:
#!/bin/bash
function show_header() {
clear
echo "═══════════════════════════════════════════════════════════════"
echo " [ UDP MONITOR PANEL ] "
echo "═══════════════════════════════════════════════════════════════"
echo " POWERED by HAXOR "
echo "═══════════════════════════════════════════════════════════════"
echo ""
}
function show_menu() {
echo "Pilih menu monitoring yang Anda inginkan:"
echo "1. Cek User Login (Real-time Dashboard)"
echo "2. Cek User Multi-Login"
echo "3. Tampilkan User Aktif Saat Ini"
echo "4. Tampilkan Alur Log Koneksi (Live Stream)"
echo "5. Keluar"
echo ""
}
while true; do
show_header
show_menu
read -p "Masukkan pilihan Anda [1-5]: " choice
case $choice in
1)
echo "Menjalankan dashboard user login (update setiap 5 detik)..."
echo "Tekan Ctrl+C untuk kembali ke menu."
sleep 2
watch -n 5 udplog
;;
2)
echo "Mengecek user yang melakukan multi-login..."
sleep 1
checkmultilogin
echo ""
read -p "Tekan Enter untuk kembali ke menu."
;;
3)
echo "Menampilkan user yang sedang aktif..."
sleep 1
udplog
echo ""
read -p "Tekan Enter untuk kembali ke menu."
;;
4)
echo "Menampilkan alur log koneksi secara langsung..."
echo "Hanya menampilkan koneksi yang berhasil. Tekan Ctrl+C untuk kembali."
sleep 2
sudo journalctl -u udp-custom.service -f | grep "Client connected"
;;
5)
echo "Keluar dari Monitor Panel. Sampai jumpa!"
sleep 1
exit 0
;;
*)
echo "Pilihan tidak valid, silakan coba lagi."
sleep 2
;;
esac
done
Simpan file (Ctrl+X, Y, Enter), berikan izin eksekusi, dan buat perintah pintasannya:
sudo chmod +x /opt/udp-proxy/bin/monitorpanel.sh
sudo ln -s /opt/udp-proxy/bin/monitorpanel.sh /usr/local/bin/monitorpanel
Langkah 4: Gunakan Panel Baru Anda!
Sekarang, Anda memiliki tiga perintah baru. Yang paling powerful adalah monitorpanel. Coba jalankan:
monitorpanel
Taraa... Sekarang Anda akan disajikan dengan menu interaktif yang memudahkan monitoring VPS Anda. Selamat mencoba!




