
GoAccess — это анализатор веб-логов в реальном времени и интерактивный просмотрщик, который работает в терминале в *nix-системах или через ваш браузер.
GoAccess — это открытый анализатор веб-логов в реальном времени и интерактивный просмотрщик, который работает в терминале на системах *nix или прямо в вашем браузере. Разработанный с учётом потребностей системных администраторов, DevOps-инженеров и специалистов по безопасности, он на лету предоставляет быструю, полезную статистику HTTP и визуальные отчёты о сервере. GoAccess разбирает логи вашего веб-сервера в реальном времени и представляет данные непосредственно в терминале или через живой HTML-дашборд, что позволяет легко отслеживать трафик, выявлять аномалии и мгновенно устранять неполадки.
Подробнее: https://goaccess.io.
GoAccess разбирает указанный файл веб-лога и выводит данные в терминал X. Возможности включают:
Полностью в реальном времени
Все панели и метрики обновляются каждые 200 мс в выводе терминала и каждую
секунду в выводе HTML.
Минимальная необходимая конфигурация
Вы можете просто запустить его для вашего файла лога доступа, выбрать формат
лога, и GoAccess разберёт лог доступа и покажет вам статистику.
Отслеживание времени отклика приложения
Отслеживайте время, затраченное на обслуживание запроса. Крайне полезно, если
вы хотите отслеживать страницы, замедляющие работу вашего сайта.
Аутентификация WebSocket:
GoAccess предлагает расширенную аутентификацию WebSocket, поддерживая
локальную и внешнюю проверку JWT, с возможностями безопасного обновления
токенов и бесшовной интеграцией с внешними системами аутентификации.
Проверенные токены отслеживаются по их утверждению exp, и соединение
закрывается по истечении их срока действия.
Почти все форматы веб-логов
GoAccess допускает любую пользовательскую строку формата лога. Предопределённые
параметры включают Apache, Nginx, Amazon S3, Elastic Load Balancing,
CloudFront и др.
Инкрементальная обработка логов
Нужна персистентность данных? GoAccess умеет обрабатывать логи инкрементально
с помощью параметров сохранения на диске.
Только одна зависимость
GoAccess написан на C. Для его запуска вам нужна только ncurses в качестве
зависимости. И всё. Он даже имеет собственный сервер Web Socket — http://gwsocket.io/.
Посетители
Определяйте количество обращений, посетителей, пропускную способность и
метрики для самых медленных запросов по часам или дате.
Метрики по виртуальным хостам
У вас несколько виртуальных хостов (Server Blocks)? Есть панель, которая
показывает, какой виртуальный хост потребляет большую часть ресурсов
веб-сервера.
Отслеживание UTM-кампаний
Разбивает трафик кампаний по medium, source, campaign, content и term,
извлекая всё из запрошенного URL.
Классификация ботов и краулеров
Держит AI-краулеров и трафик Fediverse (ActivityPub) в отдельных категориях,
отдельно от традиционных краулеров поисковых систем.
Настройки TLS
Сообщает согласованный протокол, набор шифров и группу обмена ключами, когда
%K, %k и %g входят в формат лога.
ASN (сопоставление номеров автономных систем)
Отлично подходит для обнаружения вредоносных шаблонов трафика и их
блокировки. Целые сети также могут быть отброшены при разборе с помощью
--exclude-asn, или отчёт может быть ограничен конкретными сетями с помощью
--include-asn.
Настраиваемая цветовая схема
Настройте GoAccess под свои цветовые вкусы/схемы. Либо через терминал, либо
просто применив таблицу стилей к выводу HTML.
Поддержка больших наборов данных
GoAccess умеет разбирать большие логи благодаря оптимизированным
хеш-таблицам в памяти. Он отличается очень хорошим потреблением памяти и
довольно высокой производительностью. Это хранилище также поддерживает
сохранение на диск.
Поддержка Docker
Возможность собрать Docker-образ GoAccess из исходников. Вы по-прежнему можете
полностью его настроить, используя монтирование томов и редактируя goaccess.conf. См.
раздел Docker ниже.
Также есть документация о том, как использовать docker-compose.
GoAccess поддерживает любую пользовательскую строку формата лога. Предопределённые опции включают, но не ограничиваются:
HTML-отчёт использует данные карт Natural Earth,
которые находятся в общественном достоянии.
Входящая в комплект карта стран включает локальную корректировку, показывающую Крым как часть
Украины, в соответствии с Резолюцией Генеральной Ассамблеи ООН 68/262.
Сохраняйте эту корректировку при обновлении resources/countries-110m.json.
Привязка стран для трафика берётся из настроенной базы данных GeoIP;
изменение очертаний карты не меняет итоговые показатели отчёта.
GoAccess был задуман как быстрый анализатор логов для терминала. Его основная идея — быстро анализировать и просматривать статистику веб-сервера в реальном времени без необходимости использовать браузер (отлично подходит, если вы хотите быстро проанализировать свой access-лог через SSH или если вы просто любите работать в терминале).
Он также служит практичным инструментом для мониторинга безопасности, позволяя легко выявлять подозрительную активность, необычные шаблоны трафика, попытки брутфорса, сканеры, ботов и аномальные запросы прямо из ваших логов.
Хотя вывод в терминал является выводом по умолчанию, он способен
генерировать полный, самодостаточный, работающий в реальном времени отчёт
HTML, а также отчёты
JSON и
CSV.
Его можно рассматривать скорее как инструмент-монитор, чем что-либо ещё.
GoAccess можно скомпилировать и использовать в системах *nix.
Скачайте, распакуйте и скомпилируйте GoAccess:
$ wget https://tar.goaccess.io/goaccess-1.12.tar.gz
$ tar -xzvf goaccess-1.12.tar.gz
$ cd goaccess-1.12/
$ ./configure --enable-utf8 --enable-geoip=mmdb --with-zlib
$ make
# make install
$ git clone https://github.com/allinurl/goaccess.git
$ cd goaccess
$ autoreconf -fiv
$ ./configure --enable-utf8 --enable-geoip=mmdb
$ make
# make install