Plesk 8.3 – Rebuilding statistik bulan yang lalu

Akhir-akhir ini saya dapet banyak trouble tentang web statistics pada Plesk 8.3. Masih belum ada ide, kenapa statistik ini bisa tiba-tiba menghilang.

Setelah browsing dan bertanya pada paman “Google”, akhirnya mendapatkan tutorial yang bagus untuk menyelesaikan masalah ini. Yaitu, mencoba membangun statistik pada Plesk secara manual. Ini tidak begitu sulit ternyata, mengingat Plesk tidak terlalu mengcustomize penginstallan Awstats sebagai komponen pendukungnya. Rebuild statistik sangat mungkin di lakukan selama kita masih mempunyai log file yang lengkap.

Sebelum memulai untuk merebuild statistik, pastikan untuk membackup file-file yang penting! Kesalahan bisa saja terjadi😀

Langkah-langkah ini di pakai untuk server dengan satu atau lebih domain, dan juga bisa di gunakan untuk merebuild statistik setelah melakukan penambahan plugin pada Awstats (contohnya menambahkan GeoIP untuk menunjukkan lokasi user yang mengakses).

File konfigurasi AWStats pada Plesk terletak pada /usr/local/psa/etc/awstats . Buka file konfigurasi ini, dan cari directive dimana AWStats menyimpan statistik bulanan. Contohnya http stat akan berada pada , DirData=”/var/www/vhosts/mydomain.com/statistics/webstat/current. Folder ini akan berubah menjadi symlink ke direktori tahun / bulan saat ini.

drwxr-xr-x 3 root root 2048 Jan 5 14:05 .
dr-xr-x— 7 root psaserv 1024 Jul 25 15:15 ..
drwxr-xr-x 2 root root 2048 Jan 6 03:49 2008-01
lrwxrwxrwx 1 root root 7 Jan 5 12:45 current -> 2008-01
-rwxr-xr-x 1 root root 457 Jan 6 03:49 index.html
-rwxr-xr-x 1 root root 955 Jan 6 03:49 nav.html

Pada masing-masing folder yang menunjukkan bulan dan tahun, biasanya kita akan menemukan file *.txt yang menyimpan data yang sudah di generate untuk bulan/tahun yang bersangkutan. Kita tidak akan bisa membangun statistik baru untuk bulan/tahun itu selama file *.txt ini masih tersimpan disana.

Sedikit pengetahuan, kita harus berpatokan pada “DirData” untuk mencari dimana file *.txt itu berada. Karena bisa terjadi, Plesk menunjuk pada direktori lain, seperti “/var/www/vhosts/mydomain.com/statistics/webstat”. Ini berarti file *.txt akan berada tepat setelah folder” webstat”.

Kasus berikut dengan asumsi file *.txt ada di dalam folder bulan/tahun yang bersangkutan. Kita harus merebuild dahulu dengan script sebagai berikut.

./awstats_rebuild.sh <nama domain>

Listing of awstats_rebuild.sh

#!/bin/sh
#
# Script to rebuild a domain’s statistic data
#
# http://www.europheus.com
#

DOMAIN=$1
CONFIGDIR=/usr/local/psa/etc/awstats
AWSTATS=/var/www/cgi-bin/awstats/awstats.pl

# remove any current statistics data
rm -f /var/www/vhosts/${DOMAIN}/statistics/webstat/current/*.txt
rm -f /var/www/vhosts/${DOMAIN}/statistics/webstat-ssl/current/*.txt
rm -f /var/www/vhosts/${DOMAIN}/statistics/ftpstat/current/*.txt
rm -f /var/www/vhosts/${DOMAIN}/statistics/anon_ftpstat/current/*.txt

${AWSTATS} -update -config=${DOMAIN}-http -configdir=${CONFIGDIR} -LogFile=/var/www/vhosts/${DOMAIN}/statistics/logs/access_log.processed
${AWSTATS} -update -config=${DOMAIN}-https -configdir=${CONFIGDIR} -LogFile=/var/www/vhosts/${DOMAIN}/statistics/logs/access_ssl_log.processed

Sekarang coba rebuild statistik per-bulannya dengan menggunakan script berikut. misal kita ingin membangun kembali script pada bulan desember tahun 2007, jalankan script sebagai berikut :

./awstats_makemonth.sh 12 2007 <nama domain>

Listing of awstats_makemonth.sh

#!/bin/sh
#
# Script to create a domain’s month statistics
#
# http://www.europheus.com
#

MONTH=$1
YEAR=$2
DOMAIN=$3
CONFIGDIR=/usr/local/psa/etc/awstats
OUTPUTDIR=/var/www/vhosts/${DOMAIN}/statistics/webstat/${YEAR}-${MONTH}
OUTPUTDIRSSL=/var/www/vhosts/${DOMAIN}/statistics/webstat-ssl/${YEAR}-${MONTH}
AWSTATS=/var/www/cgi-bin/awstats/awstats.pl

# create output dir if missing
if [ -d $OUTPUTDIR ] ; then
echo “Updating existing http statistics “${DOMAIN} ${YEAR}-${MONTH}
else
echo “Creating http statistics “${DOMAIN} ${YEAR}-${MONTH}
mkdir ${OUTPUTDIR}
fi

# Create each http stats web page

${AWSTATS} -month=${MONTH} -year=${YEAR} -config=${DOMAIN}-http -staticlinks -configdir=${CONFIGDIR} -output > ${OUTPUTDIR}/awstats.${DOMAIN}-http.html
${AWSTATS} -config=${DOMAIN}-http -staticlinks -configdir=${CONFIGDIR} -output=alldomains > ${OUTPUTDIR}/awstats.${DOMAIN}-http.alldomains.html
${AWSTATS} -config=${DOMAIN}-http -staticlinks -configdir=${CONFIGDIR} -output=allhosts > ${OUTPUTDIR}/awstats.${DOMAIN}-http.allhosts.html
${AWSTATS} -config=${DOMAIN}-http -staticlinks -configdir=${CONFIGDIR} -output=lasthosts > ${OUTPUTDIR}/awstats.${DOMAIN}-http.lasthosts.html
${AWSTATS} -config=${DOMAIN}-http -staticlinks -configdir=${CONFIGDIR} -output=unknownip > ${OUTPUTDIR}/awstats.${DOMAIN}-http.unknownip.html
${AWSTATS} -config=${DOMAIN}-http -staticlinks -configdir=${CONFIGDIR} -output=allrobots > ${OUTPUTDIR}/awstats.${DOMAIN}-http.allrobots.html
${AWSTATS} -config=${DOMAIN}-http -staticlinks -configdir=${CONFIGDIR} -output=lastrobots > ${OUTPUTDIR}/awstats.${DOMAIN}-http.lastrobots.html
${AWSTATS} -config=${DOMAIN}-http -staticlinks -configdir=${CONFIGDIR} -output=session > ${OUTPUTDIR}/awstats.${DOMAIN}-http.session.html
${AWSTATS} -config=${DOMAIN}-http -staticlinks -configdir=${CONFIGDIR} -output=urldetail > ${OUTPUTDIR}/awstats.${DOMAIN}-http.urldetail.html
${AWSTATS} -config=${DOMAIN}-http -staticlinks -configdir=${CONFIGDIR} -output=urlentry > ${OUTPUTDIR}/awstats.${DOMAIN}-http.urlentry.html
${AWSTATS} -config=${DOMAIN}-http -staticlinks -configdir=${CONFIGDIR} -output=urlexit > ${OUTPUTDIR}/awstats.${DOMAIN}-http.urlexit.html
${AWSTATS} -config=${DOMAIN}-http -staticlinks -configdir=${CONFIGDIR} -output=osdetail > ${OUTPUTDIR}/awstats.${DOMAIN}-http.osdetail.html
${AWSTATS} -config=${DOMAIN}-http -staticlinks -configdir=${CONFIGDIR} -output=unknownos > ${OUTPUTDIR}/awstats.${DOMAIN}-http.unknownos.html
${AWSTATS} -config=${DOMAIN}-http -staticlinks -configdir=${CONFIGDIR} -output=browserdetail > ${OUTPUTDIR}/awstats.${DOMAIN}-http.browserdetail.html
${AWSTATS} -config=${DOMAIN}-http -staticlinks -configdir=${CONFIGDIR} -output=unknownbrowser > ${OUTPUTDIR}/awstats.${DOMAIN}-http.unknownbrowser.html
${AWSTATS} -config=${DOMAIN}-http -staticlinks -configdir=${CONFIGDIR} -output=refererse > ${OUTPUTDIR}/awstats.${DOMAIN}-http.refererse.html
${AWSTATS} -config=${DOMAIN}-http -staticlinks -configdir=${CONFIGDIR} -output=refererpages > ${OUTPUTDIR}/awstats.${DOMAIN}-http.refererpages.html
${AWSTATS} -config=${DOMAIN}-http -staticlinks -configdir=${CONFIGDIR} -output=keyphrases > ${OUTPUTDIR}/awstats.${DOMAIN}-http.keyphrases.html
${AWSTATS} -config=${DOMAIN}-http -staticlinks -configdir=${CONFIGDIR} -output=keywords > ${OUTPUTDIR}/awstats.${DOMAIN}-http.keywords.html
${AWSTATS} -config=${DOMAIN}-http -staticlinks -configdir=${CONFIGDIR} -output=errors404 > ${OUTPUTDIR}/awstats.${DOMAIN}-http.errors404.html

# Create http index symlink
ln -s awstats.${DOMAIN}-http.html ${OUTPUTDIR}/index.html

# create output dir if missing
if [ -d $OUTPUTDIRSSL ] ; then
echo “Updating existing https statistics “${DOMAIN} ${YEAR}-${MONTH}
else
echo “Creating https statistics “${DOMAIN} ${YEAR}-${MONTH}
mkdir ${OUTPUTDIRSSL}
fi

# Create each https stats web page

${AWSTATS} -month=${MONTH} -year=${YEAR} -config=${DOMAIN}-http -staticlinks -configdir=${CONFIGDIR} -output > ${OUTPUTDIRSSL}/awstats.${DOMAIN}-http.html
${AWSTATS} -config=${DOMAIN}-https -staticlinks -configdir=${CONFIGDIR} -output=alldomains > ${OUTPUTDIRSSL}/awstats.${DOMAIN}-http.alldomains.html
${AWSTATS} -config=${DOMAIN}-https -staticlinks -configdir=${CONFIGDIR} -output=allhosts > ${OUTPUTDIRSSL}/awstats.${DOMAIN}-http.allhosts.html
${AWSTATS} -config=${DOMAIN}-https -staticlinks -configdir=${CONFIGDIR} -output=lasthosts > ${OUTPUTDIRSSL}/awstats.${DOMAIN}-http.lasthosts.html
${AWSTATS} -config=${DOMAIN}-https -staticlinks -configdir=${CONFIGDIR} -output=unknownip > ${OUTPUTDIRSSL}/awstats.${DOMAIN}-http.unknownip.html
${AWSTATS} -config=${DOMAIN}-https -staticlinks -configdir=${CONFIGDIR} -output=allrobots > ${OUTPUTDIRSSL}/awstats.${DOMAIN}-http.allrobots.html
${AWSTATS} -config=${DOMAIN}-https -staticlinks -configdir=${CONFIGDIR} -output=lastrobots > ${OUTPUTDIRSSL}/awstats.${DOMAIN}-http.lastrobots.html
${AWSTATS} -config=${DOMAIN}-https -staticlinks -configdir=${CONFIGDIR} -output=session > ${OUTPUTDIRSSL}/awstats.${DOMAIN}-http.session.html
${AWSTATS} -config=${DOMAIN}-https -staticlinks -configdir=${CONFIGDIR} -output=urldetail > ${OUTPUTDIRSSL}/awstats.${DOMAIN}-http.urldetail.html
${AWSTATS} -config=${DOMAIN}-https -staticlinks -configdir=${CONFIGDIR} -output=urlentry > ${OUTPUTDIRSSL}/awstats.${DOMAIN}-http.urlentry.html
${AWSTATS} -config=${DOMAIN}-https -staticlinks -configdir=${CONFIGDIR} -output=urlexit > ${OUTPUTDIRSSL}/awstats.${DOMAIN}-http.urlexit.html
${AWSTATS} -config=${DOMAIN}-https -staticlinks -configdir=${CONFIGDIR} -output=osdetail > ${OUTPUTDIRSSL}/awstats.${DOMAIN}-http.osdetail.html
${AWSTATS} -config=${DOMAIN}-https -staticlinks -configdir=${CONFIGDIR} -output=unknownos > ${OUTPUTDIRSSL}/awstats.${DOMAIN}-http.unknownos.html
${AWSTATS} -config=${DOMAIN}-https -staticlinks -configdir=${CONFIGDIR} -output=browserdetail > ${OUTPUTDIRSSL}/awstats.${DOMAIN}-http.browserdetail.html
${AWSTATS} -config=${DOMAIN}-https -staticlinks -configdir=${CONFIGDIR} -output=unknownbrowser > ${OUTPUTDIRSSL}/awstats.${DOMAIN}-http.unknownbrowser.html
${AWSTATS} -config=${DOMAIN}-https -staticlinks -configdir=${CONFIGDIR} -output=refererse > ${OUTPUTDIRSSL}/awstats.${DOMAIN}-http.refererse.html
${AWSTATS} -config=${DOMAIN}-https -staticlinks -configdir=${CONFIGDIR} -output=refererpages > ${OUTPUTDIRSSL}/awstats.${DOMAIN}-http.refererpages.html
${AWSTATS} -config=${DOMAIN}-https -staticlinks -configdir=${CONFIGDIR} -output=keyphrases > ${OUTPUTDIRSSL}/awstats.${DOMAIN}-http.keyphrases.html
${AWSTATS} -config=${DOMAIN}-https -staticlinks -configdir=${CONFIGDIR} -output=keywords > ${OUTPUTDIRSSL}/awstats.${DOMAIN}-http.keywords.html
${AWSTATS} -config=${DOMAIN}-https -staticlinks -configdir=${CONFIGDIR} -output=errors404 > ${OUTPUTDIRSSL}/awstats.${DOMAIN}-http.errors404.html

# Create https index symlink
ln -s awstats.${DOMAIN}-https.html ${OUTPUTDIRSSL}/index.html

Nah, setelah itu update drop-down list pada Web statistics Plesk dengan menggunakan syntax sebagai berikut :

/usr/local/psa/admin/sbin/statistics –calculate-one –domain-name=<nama domain>

atau jalankan perintah di bawah untuk mengupdate seluruh statistics :

/usr/local/psa/admin/sbin/statistics

….

Sebagai tambahan, berikut ada referensi script untuk mengupdate seluruh domain pada urutan bulan tertentu pada tahun tertentu. Silahkan edit bagian script yang dianggap perlu dan sesuai dengan kasus yang di hadapi. (Note : Script ini membutuhkan 2 script sebelumnya)

Untuk menjalankannya :

./awstats_updateall.sh

Listing of awstats_updateall.sh

#!/bin/sh
#
# Script to rebuild all awstat domains statistic data
#
# http://www.europheus.com
#

CONFIGDIR=/usr/local/psa/etc/awstats
VHOSTDIR=/var/www/vhosts

for domain in $( ls -1 $VHOSTDIR)
do
# check if there is awstats config for this domain
if [ -f “$CONFIGDIR/awstats.$domain-http.conf” ] ; then
echo “Rebuilding statistics data for “$domain
./awstats_rebuild.sh $domain
echo “Rebuilding HTML pages for “$domain
for year in 2007
do
for month in 01 02 03 04 05 06 07 08 09 10 11 12
do
./awstats_makemonth.sh $month $year $domain
done
done
#update stats
/usr/local/psa/admin/sbin/statistics –calculate-one –domain-name=$domain
fi
done

Tips lain :

Untuk mengupdate web statistik mengikuti aturan Plesk, bisa di lakukan langkah berikut :

  • Backup semua isi directory /var/www/vhosts/mydomain.com/statistics/ ke lokasi lain di luar directori itu (example /root/)
  • Hapus semua isi dari directory /var/www/vhosts/mydomain.com/statistics/webstat/
  • Jalankan /usr/local/psa/admin/sbin/webstatmng –calculate-rotated-statistics –stat-prog=awstats –domain-name=<nama domain>
  • Setelah itu build html statistik page dengan perintah /usr/local/psa/admin/sbin/statistics –calculate-one –domain-name=<nama domain>
  • Tunggu dan lihat hasilnya😀

Lagi-lagi semoga bermanfaat.

—–

Download script : awstats.zip

Ref : http://www.europheus.com/?p=67

~ oleh r420r pada Agustus 31, 2008.

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s

 
%d blogger menyukai ini: