Senin, 26 Desember 2011

Monitoring SQUID

Monitoring Squid Proxy Menggunakan sqstat, SARG, dan Lightsquid

Email Cetak PDF

I. Pendahuluan

Pada tutorial sebelumnya sudah dijelaskan tentang apa itu squid dan bagaimana cara mengkonfigurasinya di Linux (Centos 5.2). Dan juga sudah dijelaskan tentang bagaimana cara kita agar sebuah jaringan harus melewati sebuah proxy yang sudah kita buat. Pada bagian terakhir pada tulisan itu dijelaskan pula bagaimana cara memonitor user-user tersebut yang melewati proxy yaitu dengan menuliskan perintah:
# tail -f /var/log/squid/access.log
Namun perintah tersebut sangat tidak manusiawi karena hasil yang ditampilkan terlalu cepat untuk diikuti. Oleh karena itu di dalam tutorial kali ini akan dijelaskan tentang 3 buah tool untuk memonitor proxy server squid yang sangat manusiawi. Ketiga buah tool tersebut adalah sqstat, SARG dan lightsquid dan ketiga aplikasi tersebut akan diinstal di centos 5.2

A. sqstat

sqstat adalah sebuah aplikasi yang dibuat oleh Alex Samorukov. Aplikasi ini berfungsi untuk memonitor squid secara real time sehingga kita bisa melihat secara langsung IP berapa yang sedang mendownload dan lain sebagainya. Untuk menginstal sqstat ke dalam sistem kita, maka ikuti langkah-langkah berikut ini:
1. Download paket
Download paket sqstat di sini.
2. Ekstrak Paket
# gunzip sqstat-1.20.tar.gz
# tar -xvf sqstat-1.20.tar
3. Pindah Folder ke webserver
# mv sqstat-1.20 /var/www/html/; cd /var/www/html
4. Merubah Nama
# mv sqstat-1.20 sqstat 
5. Konfigurasi sqstat
# cd sqstat
# cp config.inc.php.defaults config.inc.php
# vi config.inc.php
 
Di dalam file config.inc.php, rubah ip address dan port squid kita. Di sini, penulis memasukkan ip dan port squid penulis:
/* Squid proxy server ip address or host name */
 $squidhost[0]="192.168.0.250";  /* Squid proxy server port */
 $squidport[0]=3128;
Setelah itu kita akan merubah file squid.conf
# vi /etc/squid/squid.conf
Di dalam file tersebut, tambahkan skrip berikut ini:
 acl manager proto cache_object
 acl webserver src 192.168.0.250/255.255.255.255
 http_access allow manager webserver
 http_access deny manager
6. Restart Webserver
# service httpd restart 
7. Tes sqstat
Buka browser lalu ketikkan:
 http://alamat_ip/sqstat
Maka akan ada tampilan sebagai berikut:



Rubahlah Auto refresh dari nilai 0 menjadi 5 agar aplikasi ini dapat refresh setiap 5 detik lalu tekan tombol Update.
6. Troubleshooting
Umumnya error yang terjadi adalah pada saat pengetesan sqstat di browser yaitu ada pernyataan error:

SqStat error
Error (1): Cannot get data. Server answered: HTTP/1.0 403 Forbidden


Hal ini dikarenakan kita salah menempatkan skrip: http_access deny manager di file squid.conf. Tempatkanlah skrip tersebut dibagian paling bawah pada item http_access. 

Jika tidak ada tampilan gambar seperti di atas, tetapi hanya berupa list saja pada browser, maka ketikkan:
# mv sqstat.php index.php

B. SARG

SARG atau Squid Analysis Report Generator merupakan sebuah aplikasi yang dibuat oleh Pedro Lineu Orso yang bertujuan untuk melihat dan merekam aktivitas user selama berada di internet. Aplikasi ini sangat lengkap sehingga kita bisa melihat situs-situs apa yang dikunjungi oleh user, berapa bandwidth yang terpakai, dan sebagainya. Untuk menginstal aplikasi ini ke dalam sistem, berikut adalah langkah-langkahnya:
1. Download paket
Download paket SARG di sini.
2. Ekstrak Paket
# tar -zxvf sarg-2.2.5.tar.gz
 # cd sarg-2.2.5
3. Instalasi SARG
# ./configure
 # make
 # make install
4. Konfigurasi SARG
 # cd /usr/local/sarg/
 # cp sarg.conf sarg.conf.ori
 # vi sarg.conf
Di file ini, rubahlah konfigurasi sarg sesuai dengan kebutuhan. Di bawah ini adalah konfigurasi sarg penulis:
 language English
 access_log /usr/local/squid/var/logs/access.log
 graphs yes
 graph_days_bytes_bar_color orange
 title "Squid User Access Reports"
 font_face Tahoma,Verdana,Arial
 header_color darkblue
 header_bgcolor blanchedalmond
 font_size 9px
 header_font_size 9px
 title_font_size 11px
 background_color white
 text_color #000000
 text_bgcolor lavender
 title_color green
 logo_image none
 logo_text ""
 logo_text_color #000000
 image_size 80 45
 background_image none
 password none
 temporary_dir /tmp
 output_dir /var/www/html/squid-reports
 output_email none
 resolve_ip no
 user_ip yes
 topuser_sort_field BYTES reverse
 index yes
 use_comma no
 long_url yes
 
5. Generate SARG
Untuk menjalankan SARG, maka ketikkan perintah di bawah ini untuk men-generate SARG:
# /usr/bin/sarg -l /var/log/squid/access.log
Maka secara ototmatis di dalam folder /var/www/html ada folder baru yang bernama squid-reports.
6. Restart Webserver
# service httpd restart
7. Melihat SARG
Untuk melihat tampilan SARG, maka ketikkan perintah berikut di browser:
http://alamat_ip/squid-reports
maka akan ada tampilan sebagai berikut:



Klik item yang berada pada kolom FILE/PERIOD, maka akan ada tampilan sebagai berikut:


Jika sudah ada tampilan seperti itu, maka SARG sudah berhasil diinstalasi di dalam sistem.

7. Penjadwalan Generate SARG
Untuk men-generate SARG, kita harus mengetikkan di dalam konsol perintah seperti berikut:  
# /usr/bin/sarg -l /var/log/squid/access.log
Namun, alangkah capeknya jika kita mengetikkan perintah tersebut secara manual. Maka dari itu kita menggunakan crontab untuk melakukan eksekusi otomatis. Misalnya kita ingin agar setiap 1 jam sekali perintah di atas dieksekusi secara otomatis oleh sistem, maka terlebih dahulu kita membuat skrip misalnya di folder /home dengan nama sarg.txt dan tambahkan skrip berikut:
#!/bin/bash
  /usr/bin/sarg -l /var/log/squid/access.log
Setelah itu, berikan perintah agar skrip tersebut dapat dieksekusi:
# chmod +x sarg.txt
Setelah itu kita konfigurasi crontab-nya:
# crontab -e
tambahkan skrip berikut:
0 * * * * /home/sarg.txt
Dan setelah itu sistem akan men-generate SARG secara otomatis.

C. lightsquid

Lightsquid merupakan aplikasi monitoring squid yang mempunyai fungsi yang sama dengan SARG. Aplikasi ini menggunakan bahasa perl untuk men-generatenya. Maka dari itu ceklah di dalam sistem apakah sudah ada paket-paket perl atau belum dan jika sudah ada, paket perl versi berapa karena ada penambahan skrip perl versi tertentu yang akan dibahas nanti.
# rpm -qa | grep perl
 # perl -v
Untuk menginstal lightsquid ke dalam sistem kita, maka ikuti langkah-langkah berikut:
1. Download paket
Download paket lightsquid di sini.
2. Ekstrak ke Webserver
# tar -zxvf lightsquid-1.7.1.tgz -C /var/www/html/; cd /var/www/html
3. Merubah Nama Folder
#  mv lightsquid-1.7.1/ lightsquid
4. Konfigurasi lightsquid
 # cd lightsquid
 # cp lightsquid.cfg lightsquid.cfg.ori
 # vi lightsquid.cfg
Di dalam file ini, rubahlah path cfgpath, tplpath, langpath, reportpath, logpath, ip2namepath yang sesuai dengan dimana folder lightsquid itu berada. Penulis menggunakan konfigurasi berikut:

#path to additional `cfg` files
$cfgpath ="var/www/html/lightsquid";
#path to `tpl` folder
$tplpath  ="/var/www/html/lightsquid/tpl";
#path to `lang` folder
$langpath ="/var/www/html/lightsquid/lang";
#path to `report` folder
$reportpath ="/var/www/html/lightsquid/report";
#path to access.log
$logpath ="/var/log/squid";
#path to `ip2name` folder
$ip2namepath ="/var/www/html/lightsquid/ip2name";
Jika sudah selesai, maka ketikan perintah berikut:
5. Merubah Mode
# chmod +x *.cgi
# chmod +x *.pl
6. Cek Setup lightsquid
Ketikkan perintah berikut untuk mengecek apakah konfigurasi lighsquid sudah benar atau belum:
# perl check-setup.pl
Jika ada tampilan seperti berikut:


Maka konfigurasi kita sudah benar.
7. Mengedit File Webserver
Setelah itu, kita mengkonfigurasi webserver yang berada di /etc/httpd/conf/httpd.conf, lalu cari skrip sebagai berikut:
<Directory "/var/www/cgi-bin">
    AllowOverride None
    Options None
    Order allow, deny
    Allow from all
</Directory>
menjadi:
<Directory "/var/www/html/lightsquid">
    AddHandler cgi-script .cgi
    AllowOverride All
</Directory>
8. Generate lightsquid
Untuk men-generate lightsquid, gunakan perintah berikut:
# /var/www/html/lightsquid/lightparser.pl
9. Restart Webserver
# service httpd restart
10. Lihat lightsquid
Buka browser, lalu ketikkan
http://alamat_ip/lightsquid
maka akan ada tampilan sebagai berikut:


Klik pada item Date, maka akan muncul tampilan:


Jika sudah tampil gambar-gambar di atas, maka lightsquid sudah terinstal dalam sistem.
9. Penjadwalan Generate lightsquid
Sama seperti SARG, lightsquid bisa di generate secara otomatis menggunakan crontab. Buat dahulu filenya misalnya di /home yang bernama lightsquid.txt lalu masukkan skrip berikut:
#!/bin/bash
cd /var/www/html/lightsquid
/var/www/html/lightsquid/lightparser.pl
Dan kita ingin agar setiap 1 jam sekali sistem mengeksekusi file ini, maka masukkan di crontab:
0 * * * * /home/lightsquid.txt 
Dan jangan lupa berikan perintah:
 # chmod +x /home/lightsquid.txt
agar file tersebut dapat dieksekusi.

10. Troubleshooting

Pada umumnya error yang terjadi biasanya terlihat pada saat mengecek konfigurasi lightsquid, yaitu pada saat kita memberikan perintah:
 # perl check-setup.pl 
ada pernyataan error:
 no: GD.PM found, please install or set $graphreport=0 to disable
Error tersebut dikarenakan di dalam sistem kita tidak mempunyai paket gd yang digunakan untuk membuat tampilan grafik. Oleh karena itu, installah paket tersebut dengan menuliskan:
# yum -y install gd perl-gd

Atau jika kita tidak mau menginstal paket gd hal itu tidak menjadi masalah dan konsekwensi yang timbul hanyalah kita tidak bisa melihat tampilan grafik. Tapi kita harus mensetting di file lightsquid.cfg dan merubah nilai dari
$graphreport dari 1 menjadi 0.
Dan juga perlu diingat jika kita menggunakan perl versi 5.10, ada skrip yang harus ditambahkan di file lightparser.pl yaitu dengan merubah:
 
#extract site name
if $url =~ m/([a-z]+:\/\/)??([a-z0-9\-]+\.){1}(([a-z0-9\-]+\.){0,})([a-z0-9\-]+){1}(:[0-9]+)?\/(.*)/o;
      $site=$2.$3.$5;
      $site=$Lurl if ($site eq "");

menjadi:

#extract site name
if ($url =~ m/([a-z]+:\/\/)??([a-z0-9\-]+\.){1}(([a-z0-9\-]+\.){0,})([a-z0-9\-]+){1}(:[0-9]+)?\/(.*)/o) { $site=$2.$3.$5; } else { $site=$Lurl; }

V. Kesimpulan

Di atas, sudah dijelaskan tentang ketiga monitoring squid yang dapat digunakan. Namun, ada beberapa yang harus diperhatikan. Untuk sqstat, terkadang aplikasi ini tidak menampilkan seluruh IP yang sedang melewati proxy atau juga tidak dapat menampilkan user mana yang sedang mendownload. Maka dari itu, lengkapi pula di dalam sistem kita dengan aplikasi jnettop. Untuk SARG, kelebihannya adalah fitur yang lengkap sehingga kita mungkin merasa cukup dengan apa yang dilakukan oleh SARG. Tetapi sayangnya, aplikasi ini sangat boros memakan ruang dalam hard disk karena file-file yang digenerate berbentuk html. Pengalaman penulis, aplikasi ini mampu memakan ruang dalam hard disk sebesar kira-kira 1GB dalam sehari semalam. Berbeda halnya dengan lightsquid. Karena file-file yang dihasilkannya berbentuk txt, maka aplikasi ini tidak memakan ruang yang banyak di dalam hard disk tetapi sayangnya fiturnya dibawah SARG. Namun, penulis pikir ini adalah sebuah selera saja. Mana yang lebih mendekati selera si system administrator, maka aplikasi tersebut yang akan digunakan. Namun penulis menyarankan untuk lebih mendapatkan hasil yang akurat, selain menginstal aplikasi di atas, juga bisa ditambahkan aplikasi bwstat, dan jnettop dimana bwstat digunakan untuk melihat berapa bandwidth yang sudah dihabiskan per IP dan jnettop digunakan untuk melihat IP mana yang sedang download secara real-time. Sedangkan SARG dan lightsquid untuk melihat akumulatif bandwidth per hari.

Referensi
http://lightsquid.sourceforge.net/
http://paidjo.files.wordpress.com
http://masrifqi.web.id
http://samm.kiev.ua