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 🙂

Mengecek ukuran dan memilah-milah repositori

Bagi para penyedia mirror, salah satu hal yang mungkin dilakukan sebelum memirror sebuah repositori adalah mencari tahu ukuran repositori. Daripada kehabisan ruang harddisk di tengah2 proses mirroring, lebih baik dicari tahu sebelumnya bukan?

Cara yang biasa saya lakukan adalah dengan menggunakan rsync. Gunakan opsi -avH maka Anda akan mendapatkan daftar berkas beserta ukurannya. Sebagai contoh, mari kita cek ukuran repositori Fedora. Saya akan menggunakan mirror fr2.rpmfind.net karena cukup cepat diakses dari tempat saya.

$ rsync -av fr2.rpmfind.net::linux/fedora/ > lengkap.txt
$ tail -n1 lengkap.txt
total size is 1051301220677  speedup is 35944.42

Dapat dilihat bahwa ukuran repositori Fedora adalah 1051301220677 Byte alias sekitar 1 TeraByte.

Ingin memirror semuanya? ya silakan jika mau. Namun tidak seluruh penyelenggara mirror memiliki harddisk besar dan koneksi cepat untuk mengunduh data sebanyak ikut. Selain itu, jika hanya sebagian kecil dari repositori yang digunakan oleh orang, sebagian besar lainnya hanya akan menyita tempat dan tidak berguna karena jarang atau bahkan tidak pernah digunakan oleh orang.

Untuk itu, isi repositori yang ingin dimirror perlu dipilah-pilah. Buat sebuah berkas yang berisi daftar pola berkas yang tidak akan dimirror (excluded). Silakan baca manual rsync untuk mencari tau cara penulisannya. Sebagai contoh, saya akan menggunakan daftar yang tertulis pada http://pastie.org/350853, yang saya simpan dalam berkas exclude.txt.

$ rsync -av --exclude-from exclude.txt fr2.rpmfind.net::linux/fedora/ > saring.txt
$ tail -n1 saring.txt
total size is 93447289613  speedup is 26148.68

Ukuran repositori Fedora hasil saringan ini telah menyusut cukup banyak. Dari total lengkap sebesar 1TB sekarang hanya berukurang sekitar 100GB. Hemat 90% ruang harddisk untuk data-data yang saya rasa tidak banyak diperlukan orang lagi.

Sekian saja tips dari saya 🙂

Oya, sekalian nanya. Ada berapa banyak orang yang perlu repositori Fedora untuk arsitektur x86_64 (alias amd64)? Kalau filter x86_64 dibuang, inilah yang saya dapatkan.

total size is 199176293997  speedup is 25021.69

Berbeda sekitar 100GB dari saringan sebelumnya yang bertujuan agar paket untuk i386 saja yang lolos saringan. Berapa lama ya donlod 100GB?