Mencari Jumlah Pengguna Hotspot per hari [Freeradius - FreeBSD - Chillispot]

Sebagai gambaran awal: wifi di kampus kami menggunakan server dengan sistem operasi FreeBSD sebagai gateway.  Di server tsb kami mengintegrasikan berbagai service: Apache, MySQL, Freeradius, pf dan Chillispot utk membuat hotspot gateway, dimana mahasiswa dan karyawan harus login sebelum dapat mengakses Internet melalui wifi kampus.

Trend [jumlah] pengguna wifi mengalami peningkatan khususnya dengan makin banyaknya pengguna smartphone.  Dalam kondisi seperti ini kadang muncul pertanyaan: berapa sebenarnya user yang login ke hotspot kampus per hari?  Di server ini kami memang tidak menginstal aplikasi utk membantu proses reporting pengguna, sehingga perlu sedikit trik untuk menjawab pertanyaan simpel seperti diatas. Untuk tugas tersebut kita cukup menggunakan beberapa tools yg tersedia di FreeBSD spt: cut, sort dan uniq serta radlast [yang merupakan bagian dari Freeradius].

Langsung saja, untuk memperoleh jumlah pengguna hotspot dalam 1 hari:
gunakan perintah:
# radlast | grep sesuai_tanggal_yg_diinginkan > infile
contoh [untuk mencari pengguna di hari selasa tanggal 20 desember]:
# radlast | "Tue Dec 20" > pengguna_tgl_20_des.txt

Kemudian olah file txt tersebut dgn perintah berikut:
# cut -c 1-13 pengguna_tgl_20_des.txt | sort | uniq > pengguna_tgl_20_des_uniq.txt
dan:
# wc -l pengguna_tgl_20_des_uniq.txt
maka akan diperoleh jumlah pengguna hotspot pada tanggal 20 desember

Penjelasan untuk perintah-perintah diatas:
Perintah "radlast" sebenarnya adalah bagian dari paket Freeradius yang berfungsi untuk menampilkan user yang telah login ke hotspot [service radius].  Hanya saja output dari perintah radlast tersebut terlalu detil untuk kebutuhan kita, dimana output tersebut menampilkan beberapa field seperti: username, IP address, waktu mulai login dan durasi login.

Karena itu dibutuhkan perintah lanjutan utk mengolah output tersebut [yang kita tampung dalam sebuah file text].  Disini kita menggunakan perintah "cut" untuk mengambil beberapa karakter di awal setiap baris dgn parameter "cut -c 1-13" [diasumsikan username sepanjang 1 sampai 13 karakter].
Kemudian hasilnya langsung diurutkan  dengan "sort", dan setelah username dalam kondisi urut abjad maka dapat diolah lagi dengan perintah "uniq" [perintah uniq akan membuang user yang muncul ganda atau lebih, karena satu username kadang bisa login lebih dari 1 kali atau login dari beberapa gadget sekaligus]
Langkah terakhir adalah menghitung jumlah baris dalam file text yang isinya adalah daftar username [yang sudah urut dan unik] dengan perintah "wc -l nama_file.txt" yang hasilnya adalah jumlah user yg login di tanggal tersebut diatas.


Comments

Popular posts from this blog

ipfw - FreeBSD firewall [contoh rules]

the specified server cannot perform the requested operation