我已经在我的VPS上设置了AWStats,以便更深入地了解到达我的网站的stream量。 按照指示,我跑了手动生成/更新运行良好:
sudo -u www-data ./awstats.pl -config=example.com Create/Update database for config "/etc/awstats/awstats.example.com.conf" by AWStats version 6.9 (build 1.925) From data in log file "/usr/share/doc/awstats/examples/logresolvemerge.pl /var/www/example.com/logs/*-access.log |"... Phase 1 : First bypass old records, searching new record... Searching new records from beginning of log file... Phase 2 : Now process new records (Flush history on disk after 20000 hosts)... Warning: awstats has detected that some hosts names were already resolved in your logfile /usr/share/doc/awstats/examples/logresolvemerge.pl /var/www/example.com/logs/*-access.log |. If DNS lookup was already made by the logger (web server), you should change your setup DNSLookup=1 into DNSLookup=0 to increase awstats speed. Jumped lines in file: 0 Parsed lines in file: 814 Found 0 dropped records, Found 0 corrupted records, Found 0 old records, Found 814 new qualified records.
它还生成了DatDir:/var/lib/awstats/awstats052010.example.com.txt中的文件,其中包含我期望的内容。
但是当我访问:example.com/awstats/awstats.pl它告诉我
Last Update: Never updated (See 'Build/Update' on awstats_setup.html page)
其余的页面是空白的。 我很确定我正确地设置它,但现在我无法弄清楚为什么会发生这种情况。 希望有人更聪明,那么我可以帮助我。
两种可能性。
运行awstats时创build的文件的权限不是设置为允许您的Web服务器读取这些文件,也就是说,它们由www-data以外的用户拥有,并且具有640的权限。
要么
正则expression式设置,以便主机名期望URL为domain.com,您正在访问www.domain.com(不太可能基于您的sudo -u www-data方法的事实)
首先尝试findawstats / tools目录并执行更新所有脚本。
/usr/share/awstats/tools/awstats_updateall.pl now
它会告诉你清楚,如果任何这些文件存在任何权限问题:服务器日志文件,awstats conf文件,写入数据的awstats目录。
否则,如果它正确执行,它将更新统计信息Web UI中的“上次更新”信息。
而且,最好安排一个cron作业,使用新创build的日志条目来定期更新AWSatsat数据库。
对我来说, selinux是一个问题。
grep awstats.pl /var/log/audit.log
显示由httpd_t上下文发出的命令awstats.pl的 getattr , read , open和ioctl操作的拒绝语句。
为了允许这些操作,我把这些行通过audit2allow像这样:
audit2allow -m 'httpd_awstats' <<EOF <paste the regarding lines from /var/log/audit/audit.log here> EOF
创build一个selinux策略
semodule -i httpd_awstats.pp
激活该政策
如果你使用centos 7 /var/log/audit/audit.log被journald取代。 从那里获取日志使用以下命令
journalctl -xln 50 --no-pager | grep awstats.pl
50是从日志中获取的最后一行的数量