Прикручиваем статистику Goaccess
Захотелось хоть немного иметь представление о посещении сайта канторы.
Прикручивать жаба скрипты типа гугловсой аналитикс не хотелось. Недолгий выбор пал на опен сорс анализатор лог файлов web севрера GOACCESS (https://goaccess.io)
Демка примера отчета выглядело симпотично и было решено попробовать это решение...
Установка из доступного у хостера репозитория обычной командой:
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;