Назад | Перейти на главную страницу

AWStats обрабатывает файлы журналов, но не отображает их

Я установил AWStats на свой VPS, чтобы получить больше информации о трафике, поступающем на мой сайт. Так как проинструктирован Я запустил ручную сборку / обновление, и все прошло нормально:

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, не позволяют вашему веб-серверу читать файлы, то есть они принадлежат пользователю, отличному от www-data, и имеют разрешения 640.

или

Регулярное выражение настроено так, что имя хоста ожидает, что URL-адрес будет domain.com, и вы посещаете www.domain.com (что менее вероятно из-за того, что ваш метод sudo -u www-data работал)

Для меня это была проблема с Selinux.

grep awstats.pl /var/log/audit.log

показал отказано заявления для getattr, читать, открыто и ioctl операции для команды awstats.pl выпущенный httpd_t контекст.

чтобы разрешить эти операции, я пропускаю эти строки через audit2allow как это:

audit2allow -m 'httpd_awstats' <<EOF
<paste the regarding lines from /var/log/audit/audit.log here>
EOF

создает политику selinux

semodule -i httpd_awstats.pp

активирует эту политику

если вы используете centos 7 /var/log/audit/audit.log заменяется на журнал. чтобы получить журналы оттуда, используйте следующую команду

journalctl -xln 50 --no-pager | grep awstats.pl

то 50 это количество последних строк для выборки из журнала

Сначала попробуйте найти каталог awstats / tools и выполнить скрипт update all.

/usr/share/awstats/tools/awstats_updateall.pl now

Он четко сообщит вам, существует ли какая-либо проблема с разрешениями для любого из этих файлов: файл журнала сервера, файлы конфигурации awstats, каталог awstats для записи данных.

В противном случае, если он выполняется правильно, он обновит информацию «Последнее обновление» в веб-интерфейсе статистики.

И лучше запланировать задание cron для регулярного обновления базы данных AWSats с использованием вновь созданных записей журнала.