Как проанализировать несколько файлов журнала GZ для Awstats?

21

Я довольно новичок в awstats и настроил Awstats на своем веб-сервере apache для анализа журналов доступа nginx (веб-сервер nginx предназначен для моего приложения django), я могу взять статистику, LogFile=/var/log/nginx/access.logно как мне проанализировать несколько журналов в формате gzip. Например, access.log.1.gz ... access.log.40.gz. У меня есть много журналов для анализа.

Ракеш
источник

Ответы:

29

Что вы, вероятно, хотите здесь сделать, - это проанализировать все эти файлы журнала один раз, а затем продолжать анализировать только текущие файлы журнала.

Самое простое, что нужно сделать, это разархивировать все эти файлы в один файл, затем запустить один раз 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 |)

Дэниел Лоусон
источник
Я не знал, что скрипт awstats может обрабатывать каналы в файле конфигурации. Ницца + 1.
d -_- б
Согласовано - logresolvemerge.plотличное решение - вывод результатов на awstats.
Еж
о трубопроводе, см. stackoverflow.com/questions/13832701/…
brauliobo
7

Кроме того, вы можете использовать анализатор журналов в реальном времени, например, GoAccess. Это действительно быстро, и вам не нужно разархивировать журнал.apache & nginx

http://goaccess.prosoftcorp.com/

zcat -f access.log* | goaccess -a -s -b

ИЛИ

zcat access.log.*.gz | goaccess -a -s -b
Sanders12
источник