
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-кампаний
Разбивает трафик кампаний по каналу, источнику, кампании, контенту и термину,
всё извлекается из запрошенного URL.
Классификация ботов и краулеров
Держит AI-краулеры и трафик Fediverse (ActivityPub) в отдельных
категориях, отдельно от традиционных краулеров поисковых систем.
Настройки TLS
Сообщает согласованный протокол, набор шифров и группу обмена ключами, когда
%K, %k и %g входят в формат лога.
ASN (сопоставление номеров автономных систем)
Отлично подходит для обнаружения вредоносных шаблонов трафика и их блокировки.
Целые сети также можно отбрасывать при разборе с помощью --exclude-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