• Membuat Panel Monitoring UDP Pada VPS V2

    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!

    Baca juga Update Script Monitoring UDP V3
  • My Profile In Youtube

    ADDRESS

    Jalan Raya Badau Km.11 Rt.06/02 Tanjung Pandan Belitung 33451

    EMAIL

    purwana.cecep@gmail.com
    uraxarixteamxxx@gmail.com

    Telephone

    +628197887769