goaccess
Установка на Ubuntu 20.04.3
Модули
В программе доступны следующие модули:
- Unique visitors per day - Including spiders – количество уникальных посетителей в день, включая пауков.
- Requested Files (URLs) – запрашиваемые URL.
- Static Requests – запросы к статическим файлам.
- Not Found URLs (404s) – запросы, по которым сервер вернул ответ 404.
- Visitor Hostnames and IPs – IP-адреса, страны и хосты посетителей.
- Operating Systems – операционные системы посетителей.
- Browsers – браузеры посетителей.
- Time Distribution – распределение запросов по часам для.
- Virtual Hosts – виртуальные хосты. Модуль будет отображаться только если в логе есть соответствующая информация.
- Referrers (по умолчанию отключён) – URL, с которых пришли посетители.
- Referring Sites — сайты, с которых пришли посетители.
- Keyphrases (по умолчанию отключён) – ключевые фразы из поисковых запросов Google, кеша Google (поддерживаются только запросы, выполнявшиеся по HTTP).
- HTTP Status Codes – ответы сервера.
- Remote User – идентификаторы лиц, запрашивающих файлы с HTTP-аутентификацией. Модуль будет отображаться только если в логе есть соответствующая информация.
- Geo Location – страны посетителей.
Установка
Из репозитория
apt install goaccess
Из исходников
В систему нужно установить следующие зависимости:
apt install make gcc git libmaxminddb-dev libncursesw5-dev
Первым делом установим geoip-api-c
wget https://github.com/maxmind/geoip-api-c/releases/download/v1.6.12/GeoIP-1.6.12.tar.gz tar -xzvf GeoIP-1.6.12.tar.gz cd GeoIP-1.6.11 ./configure make make install
А затем сам goaccess
wget https://tar.goaccess.io/goaccess-1.5.2.tar.gz tar -xzvf goaccess-1.5.2.tar.gz cd goaccess-1.5.2/ ./configure --enable-utf8 --enable-geoip=mmdb make make install
Настройка
Чтобы goaccess, при каждом запуске не запрашивал форматы данных, имеет смысл отредактировать конфигуратор.
Узнаем, где находится файл конфигурации
goaccess --dcf /usr/local/etc/goaccess/goaccess.conf
Убираем комментарии
time-format %H:%M:%S date-format %d/%b/%Y log-format %h %^[%d:%t %^] "%r" %s %b "%R" "%u"
Examples
Создание интерактивного отчета:
goaccess access.log
Создание отчетов в различных форматах:
# HTML goaccess /var/log/apache2/access.log -a > report/report.html # JSON goaccess /var/log/apache2/access.log -a -d -o json > report/report.json # CSV goaccess /var/log/apache2/access.log --no-csv-summary -o csv > report/report.csv
Для быстрой диагностики проблем, анализируем журнал в реальном времени:
tail -f /var/log/apache2/access.log | goaccess -
Achtung! Одинарный дефис добавляется к командной строке, чтобы сообщить GoAccess, что он должен читать из pipeline
Считаем статистику относительно определённых расширений файлов:
awk '$7~/\.rpm|\.deb/' /var/log/apache2/access.log | goaccess -
Работаем со всеми заархивированными логами:
zcat /var/log/apache2/access.log.*.gz | goaccess -
Хоткеи
- <key>F1</key> или <key>h</key> – вызов справки.
- <key>F5</key> – обновление информации в главном окне.
- <key>q</key> — выход из программы или сворачивание активного модуля.
- o или Enter — разворачивание активного модуля.
- 0…9 и Shift+0…5 — активация модуля по его номеру (Shift нужно удерживать для модулей с номерами 10+).
- ↑ — прокрутка содержимого главного окна вверх.
- ↓ — прокрутка содержимого главного окна вниз.
- j — перемещение курсора внутри развёрнутого модуля вниз.
- k — перемещение курсора внутри развёрнутого модуля вверх.
- c — установка или изменение цветовой схемы.
- Ctrl+f — прокрутка внутри активного модуля на один экран вперёд.
- Ctrl+b — прокрутка внутри активного модуля на один экран назад.
- Tab — переключение на следующий модуль.
- Shisft+Tab — переключение на предыдущий модуль.
- s — настройка сортировки для активного модуля.
- / — поиск по всем активным модулям (можно использовать регулярные выражения).
- n — поиск следующего совпадения.
- g — переход к первому элементу модуля или вверх главного окна.
- Shift+G — переход к последнему элементу модуля или вниз главного окна.
Troubleshooting
При запуске получаем ошибку:
goaccess -bash: /usr/bin/goaccess: No such file or directory
Ищем goaccess
whereis goaccess goaccess: /etc/goaccess /usr/local/bin/goaccess /usr/local/etc/goaccess
И видим, что он установился совсем не в /usr/bin/
. Для исправления данной оказии, пересобираем исходники с директивой –prefix=/usr
./configure --prefix=/usr --enable-geoip --enable-utf8