November 24, 2009

Memantau Access Log Squid Dengan Lightsquid

Beberapa hari ini bnyk bgt euy keluhan dari user2 di Kantor Tercinta yang bilang kok buka google aja lemot bgt siyh??? kebetulan dikantor pakai squid buat jadi proxy servernya. karena klo di squid itu semua access ke site yang direquest sama client dibbelakangnya itu kan ke log di server, jadi kita bisa analisa apakah penggunaan internet dikantor ini dalam batas wajar atau terdapat user yang over quota dalam penggunaannya. sehingga dapat diambil tindakan. oke klo mau liat access log dari squid kira2 kyk gini.



nah dari log itu kita bisa tau alamat yang diakses oleh ip user brapa.. namun log ini akan secara realtime terupdate jadi sangat sulit dalam mengawasinya.. solusi dari masalah ini adalah dengan menambahkan sebuat aplikasi yang bertugas membaca log dari squid dan menampilkannya dalam bentuk web reporting. yang akan saya coba bahas adalah lightsquid . lightsquid ini di buat dengan bahasa pemrogramana PERL. yang akan menampilkan file access.log dari squid(proxy application) dalam bentuk yang lebih MANUSIAWI hehehe..
okeh dalam posting ini saya akan menjelaskan cara instalasi lightsquid pada mesin yang ber OS centos 5.3.
pertama-tama siapkan sajen-sajen yang dibutuhkan, seperti : kopi susu, http server apache, development tools untuk centos, dan tentunya source lightsquid.
1. setelah kopi susu siap, jangan lupa pastiin dah ada http servernya di servernya. cek keberadaan httpd :
[root@proxy ~]# chkconfig --list | grep httpd
httpd 0:off 1:off 2:on 3:on 4:off 5:on 6:off
dan pastikan localhostnya bisa di browse dari web browser client.. 2. install development tools:
[root@proxy ~]# yum groupinstall "Development Tools"
3. download source light squid:
[root@proxy ~]# wget http://optusnet.dl.sourceforge.net/sourceforge/lightsquid/lightsquid-1.7.1.tgz -P /opt
--11:38:07-- http://optusnet.dl.sourceforge.net/sourceforge/lightsquid/lightsquid-1.7.1.tgz
Saving to: `/opt/lightsquid-1.7.1.tgz'
100%[=================================>]
53,979 23.6K/s in 2.2s 11:38:11 (23.6 KB/s) - `/opt/lightsquid-1.7.1.tgz' saved [53979/53979]
perintah diatas akan mendowload file lightsquid-1.7.1.tgz dan akan menyimpannya pada direktori /opt
4. kemudian extract file tersebut ke dalam directory cgi-bin dari apache. (biasanya /var/www/cgi-bin/)
[root@proxy ~]# tar xvzf lightsquid-1.7.1.tgz -C /var/www/cgi-bin/

5. set permision dari folder lightsquid untuk user dan group yang menjalankan apache:
# chmod -R apache.apache /var/www/cgi-bin/lightsquid

6. kemudian buka file lightsquid.cfg lalu rubah path2 komponen lightsquidnya sesuai dengan letak masing2 komponen.
# -------------------- GLOBAL VARIABLES ---------------------------
#path to additional `cfg` files
$cfgpath ="/var/www/cgi-bin/lightsquid";
#path to `tpl` folder
$tplpath ="/var/www/cgi-bin/lightsquid/tpl";
#path to `lang` folder
$langpath ="/var/www/cgi-bin/lightsquid/lang";
#path to `report` folder
$reportpath ="/var/www/cgi-bin/lightsquid/report";
#path to access.log
$logpath ="/var/log/squid";
#path to `ip2name` folder
$ip2namepath ="/var/www/cgi-bin/lightsquid/ip2name";

6. Untuk ngegampanginpas ngakses lightsquid lewat web, bikin alias dari direktori lightsquid tadi di httpd.confnya apache (di server gw, ada di /etc/httpd/conf/httpd.conf) tambahkan script ini.

Alias /lightsquid "/var/www/cgi-bin/lightsquid"

Options Indexes MultiViews +ExecCGI
AllowOverride None
Order allow,deny
Allow from all
DirectoryIndex index.cgi

dengan begitu anda dapat mengkases lightsquid dengan mengetikkan http://ip_proxy/lightsquid. 7. atur schedule di cron agar lightsquid di update secara berkala dengan membuka crontab:
crontab -e

lalu masukkan baris ini
*/20 * * * * /var/www/cgi-bin/lightsquid/lightparser.pl today

yang maksudnya lightsquid akan dijalankan setiap 20 menit sekali. sebaiknya jika load proses di server sudah tinggi updatenya dapat dilakukan lebih jarang. karena pada prosesnya akan lumayan menyita resource. kira2 hasilnya akan seperti ini:

selamat mencoba..