Goaccess есть в стандартных репозиториях популярных дистрибутивов.
# apt install goaccessТакже его можно запустить в Docker, образ allinurl/goaccess. Это позволит быстро получить самую свежую версию. В репозиториях она не всегда таковая.
Чтобы понять, о чём пойдёт речь, можно быстро посмотреть образец отчётов на основе логов веб сервера: https://rt.goaccess.io. Регистрация не требуется, сразу всё видно.
Для того, чтобы получить такую красоту у себя, достаточно сделать вот так:
# goaccess access.log -o report.html --log-format=COMBINEDили так:
# touch report.html# cat access.log | docker run --rm -i -v ./report.html:/report.html -e LANG=$LANG allinurl/goaccess -a -o report.html --log-format=COMBINED -Получили статичную страничку. Можно тут же её посмотреть через веб сервер на python:
# python3 -m http.serverИдём браузером на порт 8000 и смотрим там файлик
report.html. Это статистика, которая формируется после ручного запуска goaccess. Можно запустить его в режиме обновления этой статистики онлайн:# goaccess access.log -o report.html --log-format=COMBINED --real-time-htmlТо же самое c Docker:
# tail -F access.log | docker run -p 7890:7890 --rm -i -e LANG=$LANG allinurl/goaccess -a -o report.html --log-format COMBINED --real-time-html -При этом информация в браузере будет обновляться автоматически. Даже страницу перезагружать не надо.
В goaccess можно отправлять вывод через пайп, а значит перед этим его можно грепнуть, причём как для статики, так и в режиме реального времени. Например, можно собрать статистику по конкретному IP адресу. Разово:
# cat access.log | grep '1.2.3.4' | goaccess --log-format=COMBINED -o report.html -И то же самое в режиме реального времени:
# tail -f -n +0 access.log | grep -i --line-buffered '1.2.3.4' | goaccess -o report.html --log-format=COMBINED --real-time-html -Инструмент очень удобный, особенно для отладки в режиме реального времени. Можно запустить нагрузочное тестирование и наблюдать, что происходит. Либо просто использовать для анализа статистики там, где нет никакой системы сбора и анализа логов. Можно быстро оценить состояние веб сервера и запросов к нему. Кто и куда спамит запросами, какие есть ответы с ошибками и т.д.
Я видел, что некоторые парсят логи nginx-ingress в Kubernetes с помощью goaccess. Автор собрал простенький скрипт на python, который рисует отдельные дашборды для каждого сервиса.
Если запустить goaccess без параметров, то статистика откроется прямо в терминале:
# goaccess access.logИнструмент простой, удобный, функциональный. Если не знали о нём, то берите на вооружение.
❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.
———
ServerAdmin: 📱 Telegram | 🌐 Сайт | 📲 MAX
#webserver


