LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Linux - Newbie (http://www.linuxquestions.org/questions/linux-newbie-8/)
-   -   Setting up webalizer for virtual host (http://www.linuxquestions.org/questions/linux-newbie-8/setting-up-webalizer-for-virtual-host-145705/)

hct224 02-13-2004 01:03 PM

Setting up webalizer for virtual host
 
Hi I have webalizer installed on my server and this server has 2 virtualhost (called A&B). I have setup access_logA & access_logB for each of them. Now, how do I use webalizer to monitor these 2 vHost? . How many files do I need to edit to make it work? I want after everything is setup, I can type http://www.SiteA/webalizer/ & http://www.SiteB/webalizer/ to monitor each site seperately.

Thanks

jazernorth 02-13-2004 01:13 PM

edit '/etc/cron.daily/webalizer':

Code:

if [ -s /var/log/access_logA ] ; then
    /usr/bin/webalizer -c /var/webalizer/domainA.conf
fi

if [ -s /var/logs/access_logB ] ; then
    /usr/bin/webalizer -c /var/webalizer/domainB.conf
fi

Create two files (one for each domain) from original webalizer.conf file, and save as above conf files.

Basically, you are executing webalizer for each domain, with their individual settings.

Enjoy.

JN

hct224 02-13-2004 02:28 PM

So do you mean just copy file webalizer.conf 2 times with different name(for 2 vHosts) and edit line:
LogFile /path/to/file/logs/access_logA (for SiteA)
and
LogFile /path/to/file/logs/access_logB (for SiteB)
(and few more lines :p)
and edit the cron like you said?

Thanks

jazernorth 02-13-2004 02:43 PM

Here are parts two of the webalizer files I am currently using:

Example A (webalizer_domaina.conf):
Code:

LogFile        /var/log/access_logA

OutputDir      /var/www/html/domainA/webalizer/

HistoryName /var/www/html/domainA/webalizer/webalizer.hist

Incremental    yes

IncrementalName /var/www/html/domainA/webalizer/webalizer.current

ReportTitle    Usage Statistics for

HostName      DomainA.Net
.... rest of file ....

Example B (named webalizer_domainb.conf):
Code:

LogFile        /var/log/access_logB

OutputDir      /var/www/html/domainB/webalizer/

HistoryName /var/www/html/domainB/webalizer/webalizer.hist

Incremental    yes

IncrementalName /var/www/html/domainB/webalizer/webalizer.current

ReportTitle    Usage Statistics for

HostName      DomainB.Net
.... rest of file ....

Then I added the following lines to cron.daily/webalizer:
[code]if [ -s /var/log/access_logA ] ; then
/usr/bin/webalizer -c /var/www/html/donmaina/webalizer/webalizer_domainb.conf
fi

if [ -s /var/logs/access_logB ] ; then
/usr/bin/webalizer -c /var/www/html/donmainb/webalizer/webalizer_domainb.conf
fi

hct224 02-13-2004 03:47 PM

Thanks a lot. I'll try when I get home.

hct224 02-15-2004 02:59 PM

It works but I have another question:
How do I CLEAR log file(access_log) after running this cron job? I mean delete all record to set log file to 0KB

Thanks

jazernorth 02-16-2004 09:14 AM

You can do it in the /etc/cron.daily/webalizer file. Why would you want to delete your logs? You can modify the logrotate conf file (see 'man logrotate') to rotate your access logs. This way they will stay manageable.

Enjoy.

JN

hct224 02-16-2004 09:42 AM

I mean the log file will get bigger everday. So to keep the room for the hard drive, I want to clean it after webalizer take the record. For example, today, the log file is 1MB and it will be 2 MB by tomorrow. If I can take the record and clear the log file it will be only 1 MB by tomorrow. Not sure if I understand it right. :p Did I miss something?
For about rotaring log file, does it mean after get reading, rename that file with a new name (ie. access_log.1) and create new file(ie. access_log) with 0 record?

jazernorth 02-16-2004 10:08 AM

Yup.

Logrotate will evaluate the current log file. If it is over a certain size, or certian unmodified age, it rotates it. *.4 gets deleted, *.3 becomes *.4 .... until current log becomes *.1 and is deleted to 0 records. This way, you will always have history (more than 1 day) and your log files will not get too far out of hand.

I keep mine to 4 logs and 150 days. Yes, they do get big, but I am better able to monitor when I have problems. The webalizer is used for stat purposes, but the log files are used for trouble shooting purposes.

JN

hct224 02-16-2004 10:24 AM

Thanks, it makes sence now. :D Before, I see the access_log changed to access_log.1 and the new file is created with 0KB but I don't realy know how it works. :p
So for the Logrotate which file should I need to edit/config? and will it effect to the webalizer? For example, if I setup cron job to run webalizer at midnight, how am I going to setup Logrotate (or what ever) to NOT missing any report of webalizer?

jazernorth 02-16-2004 10:35 AM

I changed /etc/logrotate.d/httpd to:
Code:

/var/log/httpd/*log {
    missingok
    notifempty
    sharedscripts
    postrotate
        /bin/kill -HUP `cat /var/run/httpd.pid 2>/dev/null` 2> /dev/null || true
    endscript
}

That will evaluate every log file in httpd. As for capturing data with webalizer before logrotate moves the log files, you will need to make sure webalizer runs first. I changed my webalizer name in /etc/cron.daily to 00webalizer. This forced it to run first.

Enjoy.

JN

hct224 02-16-2004 02:17 PM

1. I checked the webalizer file in cron.daily and YES, I see it named 00webalizer.conf
2. For the apache, If I have 2(or more) log files which are stored on different location, shall I change the /etc/logrotate.d/httpd to something like:
Code:

/path/to/log/FILE1 {
    missingok
    notifempty
    sharedscripts
    postrotate
        /bin/kill -HUP `cat /var/run/httpd.pid 2>/dev/null` 2> /dev/null || true
    endscript
}

/path/to/log/FILE2 {
    missingok
    notifempty
    sharedscripts
    postrotate
        /bin/kill -HUP `cat /var/run/httpd.pid 2>/dev/null` 2> /dev/null || true
    endscript
}

..and so on?

Thanks

jazernorth 02-16-2004 02:21 PM

You could. That would create lots of headaches for any additional virtual servers. I currently host 5 websites, each with their own virtual server. I have placed the * so that I don't have to modify the logrotate file each time. I just add a new log file and the logrotate takes care of the rest for me.

Where the * is, the logrotate program will rotate each condition that matches it.

Hope that helps.

Enjoy.

JN

hct224 02-16-2004 03:50 PM

Thanks a lot.

hct224 02-19-2004 12:04 PM

Just 1 last question(I hope :D); if my httpd logs files store at /path/to/mylogs/ and in this folder has both http & ftp log files, when I run command /path/to/mylogs/*log will it procsess both ftp & http log files or just http log files?

Thanks


All times are GMT -5. The time now is 06:41 AM.