Ispmanager 6 lite, pro, host

Website statistics

In ispmanager you can collect statistics of user requests to websites. To do so, you can use the following features: 

  • request log — contains the web-server access log
  • error log — contains a log of errors encountered for a site

On the WWW-domain add or edit from enable the options Access log and Error log and specify their parameters: 

  1. Enable the log analyzer for the domain: 
    1. Select an Analyzer.

      This feature is available provided that Apache and the modules Awstats or Webalizer are installed.

    2. Select a statistics Period.
    3. Select a Report language.
    4. Enable the option Restrict access to statistics, enter a Password and Confirm it. The login is the name of the domain owner.
  2. Error log — specify whether you want to store WWW-server error logs archives and rotate it.
  3. Select a Rotation period.
  4. Store archives  —  enter the number of log file archives to be stored on the server. 
Details

The following strings will be added into the Nginx configuration file for the domain:

Configuration file Nginx

access_log /var/www/httpd-logs/<WWW-domain name>.access.log;
error_log /var/www/httpd-logs/<WWW-domain name>.error.log notice;

The following strings will be added into the Apache configuration file for the domain:

Configuration file Apache

CustomLog /var/www/httpd-logs/<WWW-domain name>.access.log combined
ErrorLog /var/www/httpd-logs/<WWW-domain name>.error.log

Disk space occupied by the archives is included into the user quota.

To view the log go to Web-server settings WWW-logs.

To view the reports go to Sites → context menu of the desired site → Statistics. Statistics for a domain is kept in /var/www/user/data/www/example.com/webstat.

How it works

Rotation is used to archive the logs so that they occupy less disk space. logrotate is a utility that is used for log rotation. The cron job /etc/cron.daily/logrotate starts the utility every day. 

The rotation global settings are kept in the configuration file /etc/logrotate.conf.

Logrotate configuration file

Rotation parameters of WWW-domains are kept in the configuration files /etc/logrotate.d/web/. E.g.:

Configuration file of the WWW-domain log

/var/www/httpd-logs/<WWW-domain name>.access.log {
        olddir /var/www/<WWW-domain owner>/data/logs
        rotate 65530
        size=16M
        copytruncate
        compress
        <rotation period>
        prerotate
                /etc/webanalyzer.d/<WWW-domain owner>/<WWW-domain name>
        endscript
}
/var/www/httpd-logs/<WWW-domain name>.error.log {
        olddir /var/www/<WWW-domain owner>/data/logs
        copytruncate
        compress
        <rotation period>
}
Details
  • olddir— the directory with archived logs
  • rotate — the number of archives that will be kept
  • size — the maximum size of the file to trigger rotation
  • copytruncate — make a log copy and then reset it. The log file won't be deleted
  • compress — file compression file. gzip is used by default
  • <rotation period> — daily, weekly, monthly
  • /etc/webanalyzer.d/user/ — log analyzer option before rotation

Run the rotation manually

Execute the command:

/usr/sbin/logrotate -d -f <path to the logrotate configuration file of a domain>
Details
  • -d - display detailed information
  • -f — force rotation
  • <path to the logrotate configuration file of a domain> — e.g., /etc/logrotate.d/web/domain.com

Execute the following command to start rotation for all domains: 

/usr/sbin/logrotate -f /etc/logrotate.conf

The result may be the error "log does not need rotating" meaning that the rotation operation failed as it was already made that day.  To run the rotation, change the status of the last rotation for the domain in the file /var/lib/logrotate/logrotate.status.

Logs analyzer Awstats

Awstats configuration file

Enabling the log analyzer for a WWW-domain creates the configuration file in /etc/awstats/awstats..conf. The main parameters:

  • LogFile — path to the log
  • SiteDomain — the WWW-domain being analyzed
  • DirData — path to the directory with results

Automatic statistics collection

If you have selected "during rotation" in the Period field the analyzer will start by the logrotate utility. The following strings will be added into the configuration file /etc/logrotate.d/web/:

Configuration file of the WWW-domain log

prerotate 		
        /etc/webanalyzer.d/<WWW-domain owner>/<WWW-domain>

If the Period is "every hour" the statistics collection script will be added into the user cron: 

Cron jobs

# crontab -u username -l
MAILTO=""#
#ISPmanager log rotate <WWW-domain>
0 * *	/etc/webanalyzer.d/<WWW-domain owner>/<WWW-domain>

Start statistics collection manually

Execute the command:

/etc/webanalyzer.d/<WWW-domain owner>/<WWW-domain>

Deleting logs

To delete the error log, enter Web-server SettingsWWW logs → select the log → press ClearOK.

Deleting the query log from the control panel interface is not supported. This is to ensure that logs are rotated correctly. If you need to delete the query log for a domain, run the following command on the server with ispmanager:

echo "" > /var/www/httpd-logs/<domain>.access.log
Comments to the command

domain — domain name