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

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

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

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

Самое простое, что нужно сделать, - это распаковать все эти файлы в один файл, затем один раз запустить awstats, а затем указать awstats на ваш файл access.log.

awstats обычно имеет сценарий logresolvemerge.pl, который может читать сжатые файлы и соответствующим образом объединять их, чтобы awstats выполнял анализ.

Чтобы объединить все существующие, запустите

perl /usr/share/awstats/tools/logresolvemerge.pl /var/log/nginx/access.log* > /tmp/nginx.tmplog

Это, вероятно, займет некоторое время.

Затем вы можете один раз запустить awstats для этого файла (соответствующим образом установите LogFile).

С этого момента вы должны запускать 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 будет читать выходные данные этого сценария (что и делает канал |).

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

https://goaccess.io/

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

ИЛИ

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