Statistik rsync dengan webalizer

Bagi yg suka ngurusin web server, kemungkinan kenal dg aplikasi bernama Webalizer. Aplikasi ini dipakai untuk membuat statistik akses ke web server dg cara memproses log yang ada. Selain untuk web server, Webalizer ini juga bisa dipakai untuk menganalisis log ftp server. Tentu saja, log yang diproses haruslah tertulis dalam format yang dikenal oleh Webalizer.

Handles standard Common logfile format (CLF) server logs, several variations of the NCSA Combined logfile format, wu-ftpd/proftpd xferlog (FTP) format logs, Squid proxy server native format, and W3C Extended log formats

Lalu, bagaimana jika ada layanan penyedia berkas lain yang ingin dibuat statistiknya? Salah satu caranya adalah dengan melakukan konversi berkas log agar memiliki format yang dikenal oleh Webalizer.

Sebagai contoh, agar kita bisa membuat statistik data yang ditransfer melalui rsync, kita perlu mengubah log rsync agar tertulis dalam format yang dikenal oleh Webalizer berhubung format log asli rsync tidak dikenali. Salah satu format akhir yang dapat dipakai adalah format xferlog yang digunakan oleh ftp.

Setelah ngeliat2 bentuk log rsync dan xferlog, saya membuat sebuah skrip sederhana yang dapat melakukan konversi tersebut. Skrip konversinya dapat dilihat di http://gist.github.com/78270.

Biasanya, webalizer dijalankan dengan perintah seperti berikut.

$ webalizer -c webalizer.conf

Nama berkas log disebut di dalam berkas konfigurasi tersebut dengan mengatur nilai LogFile.

Untuk kasus berkas log yang harus dikonversi terlebih dahulu, dan berhubung skrip konversi membaca melalui starndard input dan mengeluarkan hasilnya ke standard output, maka kita perlu mengatur agar webalizer membaca log dari standard input. Untuk itu, cukup beri nilai - pada LogFile

LogFile -

Setelah itu, jalankan webalizer dengan cara berikut

$ ./rsync2xferlog.py < /var/log/rsyncd/rsyncd.conf | webalizer -c webalizer-rsync.conf

Dengan demikian, berkas log asli akan dikirimkan ke skrip konversi, yaitu rsync2xferlog.py, skrip akan melakukan konversi data yang masuk, dan data keluaran akan dikirim ke webalizer.

Contoh hasil jadinya dapat dilihat di http://kambing.ui.edu/status/webalizer-rsync/

Selamat mencoba 🙂