Что вы, вероятно, хотите здесь сделать, - это проанализировать все эти файлы журнала один раз, а затем продолжать анализировать только текущие файлы журнала.
Самое простое, что нужно сделать, это разархивировать все эти файлы в один файл, затем запустить один раз awstats, а затем указать awstats на ваш файл access.log.
У awstats обычно есть скрипт с именем logresolvemerge.pl, который может читать сжатые файлы и объединять их соответствующим образом, чтобы awstats мог выполнить анализ.
Чтобы объединить все существующие, запустите
perl /usr/share/awstats/tools/logresolvemerge.pl /var/log/nginx/access.log* > /tmp/nginx.tmplog
Это, вероятно, займет некоторое время.
Затем вы можете запустить awstats один раз над этим файлом (установите соответствующий файл журнала).
С этого момента вы должны запускать awstats для самого последнего файла журнала, что и делает ваша текущая конфигурация.
В зависимости от того, как часто вы запускаете awstats против вращающихся файлов журнала nginx, вы можете захотеть, чтобы он прочитал как текущий файл журнала, так и предыдущий. (например, если вы вращаете файлы журнала nginx каждый день в 12, но awstats запускается каждый день в 1, то всякий раз, когда запускается awstats, файл журнала будет содержать только то, что было записано с момента последнего вращения). Вы можете использовать logresolvemerge.pl внутри вашей команды LogFile следующим образом:
LogFile="/usr/share/awstats/tools/logresolvemerge.pl /var/log/nginx/access.log /var/log/nginx/access.log.1.gz |"
Это заставляет awstats запускать команду logresolvemerge.pl с двумя лог-файлами в качестве параметров, и awstats будет читать выходные данные этого сценария (это то, что делает pipe |)
logresolvemerge.pl
отличное решение - вывод результатов на awstats.Кроме того, вы можете использовать анализатор журналов в реальном времени, например, GoAccess. Это действительно быстро, и вам не нужно разархивировать журнал.
apache & nginx
http://goaccess.prosoftcorp.com/
ИЛИ
источник