Saturday, December 18, 2010

Membuat Squid Graphs di ubuntu server

A. MEMBUAT SQUIDSTATS

1. apt-get install librrds-perl libsnmp-session-perl snmpd rrdtool snmp apache2 -y
2. perl -MCPAN -e 'install Config::IniFiles'
3. wget http://jaringanwarnet.com/downloads/squidstats-r54.tar
4. tar -xvf squidstats-r54.tar
5. cd squidstats-r54
5. cp mib.txt /etc/squid/ (jika install squid auto) atau /usr/local/squid/etc (manual, sesuaikan dgn instalasi squid)
6. cp snmpd.conf /etc/snmp/
7. nano Makefile.defaults edit SQUID_MIBFILE sesuai dgn folder install squid
8. untuk squid.conf tambahkan berikut ini :
Code:
snmp_port 3401
acl snmppublic snmp_community public
snmp_access allow snmppublic all
9. make && make install
10. snmpwalk -v 1 -c public localhost
11. squidstats.pl createdb
12. squidstats.pl gather
13. crontab -e
*/5 * * * * /usr/local/bin/squidstats.pl gather >/dev/null
14. cp squidstats.conf /etc/apache2/conf.d
15. reboot
16. cek hasilnya ke http://ipproxy/squidstats/graph-summary.cgi
untuk info lebih jelas silahkan ke:
Req. Squidstat untuk lihat performance squid...


thanks to bang jaringanwarnet.com

B.WEBALIZER
grapik model jadul banget....

1.apt-get install webalizer
2.edit /etc/apache/apache2.conf
Code:
HostnameLookups Off
menjadi
Code:
HostnameLookups On
3.edit /etc/webalizer/webalizer.conf
Code:
LogFile /var/log/apache2/access.log.1
menjadi
Code:
LogFile /var/log/apache2/access.log
4.crontab -e
Code:
0 * * * * webalizer
5.jalankan webalizer di terminal biar tergenerate
Code:
#webalizer
6. cek di browser dengan jalan kan http://IP_PROXY/webalizer

Click this bar to view the small image.



C. MONITORING SQUID WITH MUNIN
pada ubuntu 9.10

1.apt-get install munin munin-node
2.edit /etc/munin/munin.conf
Code:
dbdir   /var/lib/munin
htmldir /var/www/munin
logdir  /var/log/munin
rundir  /var/run/munin
yang perlu perhatikan dir htmldir..
secara default dir apache2 adalah /var/www
jadi apache2 akan membaca smua file yang ada dalam direktori /var/www
3.edit /etc/munin/munin-node.conf
Code:
# Which address to bind to;
host *
menjadi
Code:
# Which address to bind to;
host 127.0.0.1
4./etc/init.d/apache2 restart
5./etc/init.d/munin-node restart
cek di browser http://IP_PROXY/munin

pada ubuntu 10.10 sama juga seperti pada ubuntu 9.10
tapi ada sedikit yang di edit...
edit /etc/munin/apache.conf
directory apachenya harus di samakan dengan directory yang dibuat di /etc/munin/munin.conf
edit menjadi
Code:
Alias /munin /var/cache/munin/www

        Order allow,deny
        Allow from localhost 127.0.0.0/8 ::1
        Options None

 # This file can be used as a .htaccess file, or a part of your apache
 # config file.
 #
 # For the .htaccess file option to work the munin www directory
 # (/var/cache/munin/www) must have "AllowOverride all" or something 
 # close to that set.
 #

 # AuthUserFile /etc/munin/munin-htpasswd
 # AuthName "Munin"
 # AuthType Basic
 # require valid-user

 # This next part requires mod_expires to be enabled.
 #
 
 # Set the default expiration time for files to 5 minutes 10 seconds from
 # their creation (modification) time.  There are probably new files by
 # that time. 
 #

    
        ExpiresActive On
     ExpiresDefault M310
    
kemudian
[code]
restart munin-node]
cek di browser http://IP_PROXY/munin



thanks to bang ucok......



D.SARG...

1.apt-get install sarg
2.download sarg.conf dan sarg-reports.conf di http://www.ziddu.com/download/12248914/sarg.rar.html
3.copy copy sarg-repots.conf dan sarg.conf ke /etc/sarg
4.membuat daily monthly danweekly reports

nano /etc/sarg/sarg-report-daily

Code:
#daily :
#======
#!/bin/bash
#Get current date
TODAY=$(date +%d/%m/%Y)
#Get one week ago today
YESTERDAY=$(date --date "1 day ago" +%d/%m/%Y)
sarg /var/log/squid/access.log -o /var/www/squid-reports/daily -z -d $YESTERDAY-$TODAY
/usr/sbin/squid -k rotate
exit 0
nano /etc/sarg/sarg-report-weekly

Code:
# Weekly :
#========
#!/bin/bash
#Get current date
TODAY=$(date +%d/%m/%Y)
#Get one week ago today
YESTERDAY=$(date --date "1 week ago" +%d/%m/%Y)
sarg /var/log/squid/access.log -o /var/www/squid-reports/weekly -z -d $YESTERDAY-$TODAY
/usr/sbin/squid -k rotate
exit 0
nano /etc/sarg/sarg-report-monthly

Code:
# Monthly :
#========
#!/bin/bash
#Get current date
TODAY=$(date +%d/%m/%Y)
#Get one week ago today
YESTERDAY=$(date --date "1 month ago" +%d/%m/%Y)
sarg /var/log/squid/access.log -o /var/www/squid-reports/monthly -z -d $YESTERDAY-$TODAY
/usr/sbin/squid -k rotate
exit 0
5.beri izin daily weekly dan monthly report

chmod 777 /etc/sarg/sarg-report-daily
chmod 777 /etc/sarg/sarg-report-weekly
chmod 777 /etc/sarg/sarg-report-monthly

6.membuat peerjaan sarg menggunakan cron
crontab -e

Code:
00 00 * * * /etc/sarg/sarg-report-daily
00 01 * * 1 /etc/sarg/sarg-report-weekly
03 02 1 * * /etc/sarg/sarg-report-monthly
7.ketik sarg di terminal agar ter generate sarg nya
8.ketik di browser http://IP_PROXY/squid-reports/

Click this bar to view the small image.


daftar pustaka : http://www.udiniqgeek.com/sarg_ubuntu.html

jika ada graph selain yang diatas mohon di tambah....
jadi biar gak banyak thread nya....

MOHON DI KOREKSI BILA ADA SALAH.....
tambahan

tambahkan di mt :
buat dolo address list di mt nya

ip fi address add list=LOKAL address=192.168.0.0/16 <<<<---sesuaikan dengan IP anda

chain=dstnat action=dst-nat to-addresses=IP_PROXY to-ports=3128
protocol=tcp src-address=!IP_PROXY dst-address-list=!LOKAL
dst-port=80

untuk menhindari squidstats dan munin menampilkan halaman2 itu2 saja
jadi perlu dibuat address list dolo.....

mohon masukan yang lain......

ref : FMI

Instalasi Webmin di Ubuntu Server

1. Edit file /etc/apt/sources.list dengan command
$sudo nano /etc/apt/sources.list
2. Masukkan baris berikut:
deb http://download.webmin.com/download/repository sarge contrib
3. Install GPG Key dari repositorynya, dengan command berikut:
$>CD /root
$>sudo wget http://www.webmin.com/jcameron-key.asc
$>sudo apt-key add jcameron-key.asc
4. Update
$>sudo apt-get update
5. Install Webmin
$>sudo apt-get install webmin
6. Webmin siap dipakai di url https://localhost:10000

ref : FMI

Dasar dan cara kerja squid

Salah satu contoh aplikasi proxy/cache server adalah Squid. Squid dikenal sebagai aplikasi proxy dan cache server yang handal. Pada pihak klien bekerja aplikasi browser yang meminta request http pada port 80. Browser ini setelah dikonfigurasi akan meminta content, yang selanjutnya disebut object, kepada cache server, dengan nomor port yang telah disesuaikan dengan milik server, nomor yang dipakai bukan port 80 melainkan port 8080 3130 (kebanyakan cache server menggunakan port itu sebagai standarnya).
Pada saat browser mengirimkan header permintaan, sinyal http request dikirimkan ke server. Header tersebut diterima squid dan dibaca. Dari hasil pembacaan, squid akan memparsing URL yang dibutuhkan, lali URL ini dicocokkan dengan database cache yang ada.
Database ini berupa kumpulan metadata (semacam header) dari object yang sudah ada didalam hardisk. Jika ada, object akan dikirimkan ke klien dan tercatat dalam logging bahwa klien telah mendapatkan object yang diminta. Dalam log kejadian tersebut akan dicatat sebagai TCP_HIT. Sebaliknya, jika object yang diminta ternyata tidak ada, squid akan mencarinya dari peer atau langsung ke server tujuan. Setelah mendapatkan objectnya, squid akan menyimpan object tersebut ke dalam hardisk. Selama dalam proses download object ini dinamakan “object in transit” yang sementara akan menghuni ruang memori. Dalam masa download tadi, object mulai dikirimkan ke klien dan setelah selesai, kejadian ini tercatat dalam log sebagai TCP_MISS.
ICP sebagai protokol cache berperan dalam menanyakan ketersediaan object dalam cache. Dalam sebuah jaringan sebuah cache yang mempunyai sibling, akan mencoba mencari yang dibutuhkan ke peer sibling lainnya, bukan kepada parent, cache akan mengirimkan sinyal icp kepada sibling dan sibling membalasnya dengan informasi ketersediaan ada atau tidak. Bila ada, cache akan mencatatkan ICP_HIT dalam lognya. Setelah kepastian object bias diambil dari sibling, lalu cache akan mengirimkan sinyal http ke sibling untuk mengambil object yang dimaksud. Dan setelah mendapatkannya, cache akan mencatat log SIBLING_HIT.
Jika ternyata sibling tidak menyediakan object yang dicari, cache akan memintanya kepada parent. Sebagai parent, ia wajib mencarikan object yang diminta tersebut walaupun ia sendiri tidak memilikinya (TCP_MISS). Setelah object didapatkan dari server origin, object akan dikirimkan ke cache child tadi, setelah mendapatkannya cache child akan mencatatnya sebagai PARENT_HIT.
II.1 Konfigurasi, penggunaan dan metode Squid
Konfigurasi-konfigurasi mendasar squid antara lain :
1. http_port nomor port.
Ini akan menunjukkan nomor port yang akan dipakai untuk menjalankan squid. Nomor port ini akan dipakai untuk berhubungan dengan klien dan peer.
2. icp_port nomor port.
Ini akan menunjukkan nomor port yang akan dipakai untuk menjalankan squid. Nomor port ini akan dipakai untuk berhubungan dengan klien dan peer.
3. cache_peer nama_peer tipe_peer nomor_port_http nomor_port_icp option.
Sintask dari cache peer ini digunakan untuk berhubungan dengan peer lain, dan peer lain yang dikoneksikan ini tipenya bergantung dari tipe peer yang telah dideklarasikan ini, bias bertipe sibling maupun bertipe parent,dan port yang digunakan untuk hubungan ICP maupun HTTP juga dideklarasikan disini, sedangakan untuk parameter option disini ada bermacam-macam salah satunya adalah default yang berarti dia adalah satu-satunya parent yang harus dihubungi (jika bertipe parent) dan proxy-only yang berarti bahwa object yang dipata dari peer tersebut tidak perlu disimpan dalam hardisk local.
4. Dead_peer_timeout jumlah_detik seconds.
Masing-masing peer yang telah didefinisikan sebelumnya mempunyai waktu timeout sebesar yang ditentukan dalam konfigurasi ini, Jika peer tidak menjawab kiriman sinyal ICP dalam batas waktu yang telah ditentukan, peer akan dianggap tidak akan dapat dijangkau, dan cache server tidak akan mengambil object dari server yang bersangkutan dalam interval waktu tertentu.
5. Hierarcy_stoplist pola1 pola2
Sintaks ini digunakan untuk menyatakan apa yang harus tidak diminta dari peer, melainkan harus langsung dari web server origin, jika pola1 dan pola 2 adalah parameter cgi-bin, ?, dan lain-lain maka jika ada request URL yang mengandung karakter tersebut maka akan diambilkan langsung ke server origin.
6. Cache_mem jumlah_memori (dalam bytes)
Sintaks ini akan menentukan batas atas jumlah memori yang digunakan untuk menyimpan antara lain : intransit object yaitu object yang dalam masa transisi antara waktu cache mendownload sampai object disampaikan ke klien, dan hot object, yaitu object yang sering diakses.
7. Cache_swap_low/high jumlah (dalam persen)
Squid akan menghapus object yang ada didalam hardisknya jika media tersebut mulai penuh. Ukuran penuh ini yang diset pada cache_swap_low dan cache_swap_high. Bila batas swap_low telah tercapai maka squid mulai menghapus dan jika batas swap_high tercapai maka squid akan semakin sering menghapus.
8. Cache_dir jenis_file_sistem direktori kapasitas_cache dir_1 jumlah dir_2
Sintaks ini akan menjelaskan direktori cache yang dipakai, pertama adalah jenis file sistemnya, lalu didirektori mana cache tersebut akan disimpan, selanjutnya ukuran cache tersebut dalam MegaBytes lalu jumlah direktori level 1 dan direktori level 2 yang akan digunakan squid untuk menyimpan objectnya.
II.1.1 ACL (Access Control List)
Berikut ini adalah control list yang akan digunakan untuk mengatur control dari ACL, control list tersebut antara lain :
- http_access
memperbolehkan acess http
- icp_access
memperbolehkan peer untuk mengirimkan icp untuk menquery object
- miss_access
memperbolehkan klien meminta object yang belum ada (miss) didalam cache
- no_cache
object yang diminta klien tidak perlu disimpan ke hardisk
- always_direct
permintaan yang ditangani langsung ke server origin
- never direct
permintaan yang ditangani secara tidak langsung ke server origin.
Sebagai contoh diberikan sintaks konfigurasi ACL seperti dibawah ini :
#bagian ACL
ACL localnet src 192.168.100.0/24
ACL localkomp 127.0.0.1/255.255.255.255
ACL isp dst 202.59.206.65/30
ACL allsrc src 0.0.0.0/0.0.0.0
ACL alldst dst 0.0.0.0/0
ACL other src 10.10.11.11/32
ACL domainku srcdomain .jatara.net
#bagian control list
http_access deny other
http_access allow localnet
http_access allow lokalkomp
http_access allow domainku
http_access deny allsrc
always_direct allow isp
always_direct deny alldst
Pada konsep sintaks konfigurasi squid adalah bahwa sesuatu yang telah dieksekusi pada baris yang lebih atas maka dia tidak dieksekusi lagi dibaris yang paling bawah, walaupun dalam parameter ACL yang dibawah tersebut dia juga termasuk, untuk lebih jelasnya, jika ada IP Address 192.168.100.0/24 maka IP Address yang berkisar dari 192.168.100.1 – 192.168.100.254 (ACL localnet) telah diijinkan untuk mengakses http yang ditunjukkan oleh http_access allow localnet, dan dibawahnya ada ACL allsrc yang itu adalah mencakup semua daftar IP Address dan ACL itu tidak diperbolehkan mengakses http, yaitu http_access_deny allsrc, tapi karena pada ACL localnet dia telah dieksekusi untuk sebagai IP Address yang boleh mengakses, maka walaupun dibaris bwahnya di dieksekusi lagi, itu tidak akan berpengaruh,hal-hal seperti itu digunakan untuk seorang administrator cache server untuk melakukan pengontrolan agar tidak akan terlalu detail melakukan pengaturan jika baris atas dan bawah sama-sama saling mempengaruhi.
II.1.2 Object Cache
Pengaturan object sebuah cache server merupakan salah satu hal yang perlu diperhatikan disini. Telah diketahui sebelumnya bahwa object disimpan pada dua level cache_dir yang besar levelnya didefinisikan pada konfigurasi utama squid. Object itu sendiri berisikan content URL yang diminta klien dan disimpan dalam bentuk file binary, masing-masing object mempunyai metadata yang sebagian dari isinya disimpan didalam memori untuk memudahkan melacak dimana letak object dan apa isi dari object tersebut. Banyak sifat-sifat yang perlu diamati untuk optimasi squid ini, antara lain :
Umur object
Umur obect merupakan sebuah ukuran waktu yang dihabiskan sebuah object untuk tinggal didalam hardisk cache. Umur object dibatasi oleh beberapa factor, yaitu :
metode penghapusan object
object dihapus bisa melalui beberap algoritma penghapusan :
a. Logistic Regression :
yaitu menghapus object dengan kemungkinan logistic regression terkecil. Kemungkinan logistic regression bisa diartikan sebagai besarnya kemungkinan object tersebut akan diakses diwaktu yang akan dating.
b. Least Recently Used :
yaitu metode penghapusan object berdasarkan waktu kapan object tersebut terakhir diakses. Semakin lama (besar) waktunya, kemungkin dihapus juga akan semakin besar.
c. Least Frequently Used :
Metode penghapusan object yang paling jarang diakses.
d. First In First Out :
Penghapusan yang merunut metode berdasarkan waktu masuk ke dalam cache_dir, yaitu object yang paling awal masuk, berarti itu adalah object yang akan dihapus terlebih dahulu.
e. Random :
Menghapus object secara random.
Kapasitas hardisk cache
Semakin besar kapasitas cache, berarti semakin lama umur object tersebut bisa disimpan, jika pemakaian hardisk sudah mendekati batas atas (cache_swap_high) penghapusan akan semakin sering dilakukan.
II.2 KONFIGURASI DAN IMPLEMENTASI
Diasumsikan instalasi telah selesai dan tidak terdapat kesalahan, langkah berikutnya adalah mengatur konfigurasi squid, bukalah file /etc/squid.conf dengan editor teks favorit anda (vi, pico, dll), file ini merupakan file konfigurasi squid.
Carilah baris yang berisi perintah berikut :
# http_port 3128
Perintah ini akan membuat proxy HTTP menggunakan port 3128 yang merupakan port default untuk squid. Aktifkan dengan menghilangkan tanda #. Anda dapat membuat nilai port HTTP proxy ini sesuai dengan selera anda, tetapi jangan arahkan ke port 80, terutama jika anda juga menjalankan Web Server, karena Web Server juga memakai port tersebut.
#cache_mem 8 MB
Perintah tersebut digunakan untuk membatasi banyaknya memori komputer yang akan digunakan squid untuk menyimpan sementara obyek-obyek yang di cache. Batasan ini tidak ketat, suatu waktu jika squid membutuhkan memori lebih, dia dapat menggandakan memori yang dipakainya. Aktifkan baris ini dan ubahlah ukuran cache ini menjadi sebanyak yang anda inginkan, yang harus anda pertimbangkan adalah banyaknya memori yang dimiliki oleh komputer anda.
Kemudian:
# cache_access_log /var/log/squid/access.log
# cache_log /var/log/squid/cache.log
# cache_store_log /var/log/squid/store.log
Berikutnya, carilah baris yang berisi perintah berikut :
# LOGFILE PATHNAMES & CACHE DIRECTORIES
# ————————————-
Setting berikut ini digunakan untuk mendefinisikan alokasi penyimpanan web cache kita. Setting yang pertama adalah :
#cache_dir /var/squid/cache 100 16 256
Nilai yang ada diatas adalah nilai default squid, jika anda ingin merubahnya maka aktifkan perintah ini.
Parameter pertama /var/squid/cache adalah nama direktori tempat kita akan menyimpan file-file cache. Anda dapat mengubah parameter ini ke direktori manapun, tetapi yang harus diperhatikan squid tidak akan menciptakan direktori baru, jadi bila parameter ini akan diubah, pastikan direktori tujuannya sudah ada dan squid mempunyai hak akses untukmenulis pada direktori tersebut.
Parameter selanjutnya, yang bernilai 100 adalah banyaknya ruang pada hard disk (dengan satuan Mega Byte) yang akan digunakan squid untuk menyimpan file-file cache nya. Ubahlah sesuai dengan kebutuhan anda.
Parameter selanjutnya, disebut dengan Level-1, adalah banyaknya direktori yang akan dibuat oleh squid dalam direktori cache nya. Sebaiknya penulis menyarankan untuk tidak mengubah parameter ini.
Parameter terakhir, yang disebut dengan Level-2, adalah banyaknya direktori level kedua, yaitu direktori yang dibuat di dalam tiap direktori level pertama diatas.
Langkah berikutnya, carilah perintah berikut :
# ACCESS CONTROLS
# ——————–
Baris perintah berikut ini digunakan untuk mendefinisikan daftar hak akses dalam jaringan anda, squid menyebutnya dengan Access Control Lists (ACL). Anda dapat mendefinisikan beberapa ACL disini. Dalam bagian access controls ini, carilah baris perintah berikut :
#Recommended minimum configuration:
acl all src 0.0.0.0/0.0.0.0
acl manager proto cache_object
acl localhost src 127.0.0.1/255.255.255.255
acl to_localhost dst 127.0.0.0/8
acl SSL_ports port 443 563
acl Safe_ports port 80 # http
acl Safe_ports port 21 # ftp
acl Safe_ports port 443 563 # https, snews
acl Safe_ports port 70 # gopher
acl Safe_ports port 210 # wais
acl Safe_ports port 1025-65535 # unregistered ports
acl Safe_ports port 280 # http-mgmt
acl Safe_ports port 488 # gss-http
acl Safe_ports port 591 # filemaker
acl Safe_ports port 777 # multiling http
acl CONNECT method CONNECT
dibawah acl localhost src 127.0.0.1/255.255.255.255, tambahkan network yang akan di allowed
acl jar1 src 172.17.3.0/255.255.255.0
setelah itu supaya net1 dan net2 td bisa mengakses squid maka tambahkan http_access allow
cari baris :
# And finally deny all other access to this proxy
http_access allow localhost
http_access deny all
diantara http_access allow localhost dan http_access deny all tambahkan :
http_access allow jar1
baris ini bisa diletakkan di atas http_access allow localhost atau dibawah http_access allow localhost yang penting diatas http_access deny all
setelah itu simpan. lalu start squid nya
[root@b301 ~]#squid –z ( hanya sekali pada saat pertama kali seting )
[root@b301 ~]#/etc/init.d/squid start ( setiap kali akan menjalankan squid )
setelah itu gunakan testing squidnya menggunakan browser sambil di lihat acess log nya
[root@b301 ~]#tail -f /home/cache/squid/acces