Awstat is free log analizer tool which generates advanced web, streaming, ftp or mail server statistics, graphically. This post explains how to install awstat in Redhat and CentOS.
Install and setup awstat
Follow the steps to install and configure the awstat in your Red Hat based system.
Step 1: Download the awstats.
wget http://sourceforge.net/projects/awstats/files/AWStats/7.0/awstats-7.0-1.noarch.rpm
Note: Always install the latest version.
Step 2: Install the rpm by using the command, “rpm -ivh awstats-7.0-1.noarch.rpm”
[root@ip-server ~]# rpm -ivh awstats-7.0-1.noarch.rpm Preparing... ########################################### [100%] 1:awstats ########################################### [100%] ----- AWStats 7.0 - Laurent Destailleur ----- AWStats files have been installed in /usr/local/awstats If first install, follow instructions in documentation (/usr/local/awstats/docs/index.html) to setup AWStats in 3 steps: Step 1 : Install and Setup with awstats_configure.pl (or manually) Step 2 : Build/Update Statistics with awstats.pl Step 3 : Read Statistics [root@ip-server ~]#
Step 3: Go to /usr/local/awstats/tools & run the command “perl awstats_configure.pl” and Give the answer asked in script,below is the eg.
[root@ip-server ~]# cd /usr/local/awstats/tools [root@ip-server tools]# ls awstats_buildstaticpages.pl awstats_updateall.pl maillogconvert.pl xslt awstats_configure.pl httpd_conf urlaliasbuilder.pl awstats_exportlib.pl logresolvemerge.pl webmin [root@ip-server tools]#
[root@ip-server tools]# perl awstats_configure.pl ----- AWStats awstats_configure 1.0 (build 1.9) (c) Laurent Destailleur ----- This tool will help you to configure AWStats to analyze statistics for one web server. You can try to use it to let it do all that is possible in AWStats setup, however following the step by step manual setup documentation (docs/index.html) is often a better idea. Above all if: - You are not an administrator user, - You want to analyze downloaded log files without web server, - You want to analyze mail or ftp log files instead of web log files, - You need to analyze load balanced servers log files, - You want to 'understand' all possible ways to use AWStats... Read the AWStats documentation (docs/index.html). ----- Running OS detected: Linux, BSD or Unix ----- Check for web server install Enter full config file path of your Web server. Example: /etc/httpd/httpd.conf Example: /usr/local/apache2/conf/httpd.conf Example: c:Program filesapache groupapacheconfhttpd.conf Config file path ('none' to skip web server setup): /etc/httpd/conf/httpd.conf --------------------------------------------------------------------------------------------- ----- Check and complete web server config file '/etc/httpd/conf/httpd.conf' Add 'Alias /awstatsclasses "/usr/local/awstats/wwwroot/classes/"' Add 'Alias /awstatscss "/usr/local/awstats/wwwroot/css/"' Add 'Alias /awstatsicons "/usr/local/awstats/wwwroot/icon/"' Add 'ScriptAlias /awstats/ "/usr/local/awstats/wwwroot/cgi-bin/"' Add '' directive AWStats directives added to Apache config file. ----- Update model config file '/etc/awstats/awstats.model.conf' File awstats.model.conf updated. ----- Need to create a new config file ? Do you want me to build a new AWStats config/profile file (required if first install) [y/N] ? --------------------------------------------------------------------------------------------- file (required if first install) [y/N] ? y ----- Define config file name to create What is the name of your web site or profile analysis ? Example: www.mysite.com Example: demo Your web site, virtual server or profile name: ----- Define config file name to create What is the name of your web site or profile analysis ? Example: www.mysite.com Example: demo Your web site, virtual server or profile name: www.yoursitename.com ----- Define config file path In which directory do you plan to store your config file(s) ? Default: /etc/awstats Directory path to store config file(s) (Enter for default): ---------------------------------------------------------------------------------------------- ----- Create config file '/etc/awstats/awstats.www.yoursitename.com.conf' Config file /etc/awstats/awstats.www.yoursitename.com.conf created. ----- Restart Web server with '/sbin/service httpd restart' Stopping httpd: [ OK ] Starting httpd: [ OK ] ----- Add update process inside a scheduler Sorry, configure.pl does not support automatic add to cron yet. You can do it manually by adding the following command to your cron: /usr/local/awstats/wwwroot/cgi-bin/awstats.pl -update -config=www.yoursitename.com Or if you have several config files and prefer having only one command: /usr/local/awstats/tools/awstats_updateall.pl now Press ENTER to continue... ------------------------------------------------------------------------------------------- A SIMPLE config file has been created: /etc/awstats/awstats.www.yoursitename.com.conf You should have a look inside to check and change manually main parameters. You can then manually update your statistics for 'www.yoursitename.com' with command: perl awstats.pl -update -config=www.yoursitename.com You can also read your statistics for 'www.yoursitename.com' with URL: http://localhost/awstats/awstats.pl?config=www.yoursitename.com Press ENTER to finish... ------------------------------------------------------------------------------------------- A SIMPLE config file has been created: /etc/awstats/awstats.www.yoursitename.com.conf You should have a look inside to check and change manually main parameters. You can then manually update your statistics for 'www.yoursitename.com' with command: perl awstats.pl -update -config=www.yoursitename.com You can also read your statistics for 'www.yoursitename.com' with URL: http://localhost/awstats/awstats.pl?config=www.yoursitename.com Press ENTER to finish...
Step 4: Update the website name, replace www.yoursitename.com with your website name.
mkdir -p /var/lib/awstats /usr/local/awstats/wwwroot/cgi-bin/awstats.pl -update -config=www.yoursitename.com
Step 5:
Then open the /etc/awstats/awstats.www.yoursitename.com.conf and give value of LogFile=”/var/log/httpd/access_log”
vi /etc/awstats/awstats.www.yousitename.com.conf ... LogFile="/var/log/httpd/access_log"
and save the file.
Step 6: Now Again run the command :
/usr/local/awstats/wwwroot/cgi-bin/awstats.pl -update -config=www.yoursitename.com
Step 7:
And make the enrty in your server’s crontab also.
10 * * * * /usr/local/awstats/wwwroot/cgi-bin/awstats.pl -update -config=www.yoursitename.com
How to secure the Awstats Access
Now we will setup the http based authentication.
Step (1) Open the httpd.conf file and edit this lines at the end of file.
Order allow,deny Allow from all ## This is to force authentication when trying to access /awstats ## Using flat-file authentication.AuthType Basic AuthName "AWStats Admin Access Required" AuthUserFile /etc/httpd/conf.d/awstats.passwd require valid-user
Step (2) : Set username and passsword for awstat link :
htpasswd -c /etc/httpd/conf.d/awstats.passwd admin
Step (3) : Restart the httpd:
/etc/init.d/httpd restart
Now Open ur server’s awstats url and check it.
http://localhost/awstats/awstats.pl?config=www.yoursitename.com