Захотелось хоть немного иметь представление о посещении сайта канторы.

Прикручивать жаба скрипты типа гугловсой аналитикс не хотелось. Недолгий выбор пал на опен сорс анализатор лог файлов web севрера GOACCESS (https://goaccess.io)

 

undefined

Демка примера отчета выглядело симпотично и было решено попробовать это решение...

Установка из доступного у хостера репозитория обычной командой:

apt-get install goaccess

Но после проверки версии оказалось, что версия очень древняя 0.6, в то время как на домашнем сайте завлена 1.4

Пришлось использовать следующие команды для подключения другого репозитория:

$ echo "deb http://deb.goaccess.io/ $(lsb_release -cs) main" | sudo tee -a /etc/apt/sources.list.d/goaccess.list
$ wget -O - https://deb.goaccess.io/gnugpg.key | sudo apt-key --keyring /etc/apt/trusted.gpg.d/goaccess.gpg add -
$ sudo apt-get update

$ sudo apt-get install goaccess

Проверим версию:

$ goaccess -V
GoAccess - 1.4.
For more details visit: http://goaccess.io
Copyright (C) 2009-2020 by Gerardo Orellana

 

Кстати если не используется sudo ,то лучше его установить - он все равно понадобиться ниже.

Сформируем HTML отчет на основе лог файлов нашего apache2:

goaccess access.log -o report.html --log-format=COMBINED

Если в логе свалены в кучу все ваши виртуальные домены то нужно использовать ключ --log-format=VCOMBINED

Можно использовать полные пути к файлам логов и к файлу результата (отчета)

Проверяем сформировался ли отчет, если все нормально значит GOACCESS работает как нужно.

Обычно команду формирования отчета помещают в cron для периодического формирования отчета.

Но я поместил ее в php скрипт который когда хочешь открываешь с браузера и видишь свежие данные:

 

<?php.

$title="SmartGuardTool.com";

$log_file = "access_smartguardtool.log";
$result_file = "/var/www/smartguardtool.com/httpdocs/report.html";

$log_dir = "/var/log/apache2";

$cmd = "sudo zcat ".$log_file.".*.gz | sudo goaccess ".$log_file." ".$log_file.".1 -o ".$r

//$cmd = "sudo goaccess /var/log/apache2/access_smartguardtool.log -o /var/www/smartguardto

//$cmd = "sudo goaccess /var/log/apache2/access_smartguardtool.log -o /var/www/smartguardto


putenv('PATH=' . $_SERVER['PATH']);
putenv('HOME=' . $_SERVER['HOME']);

chdir($log_dir);
//$output = shell_exec("chdir ".$log_dir);
$output = shell_exec($cmd);

$result = file_get_contents($result_file);

echo $result;