Как в интерактивном режиме анализировать и просматривать логи веб-сервера Apache на Linux

Работаете ли вы в бизнесе веб-хостинга, или самостоятельно запускаете несколько сайтов на VPS, скорее всего, вы хотите отобразить статистику посещений, такую как топ посетителей, запрошенные файлы (в динамике или по итогу), используемую полосу пропускания, клиентские браузеры, ссылающиеся сайты и т.д.

GoAccess — это анализатор логов (с интерфейсом командной строки) и интерактивный просмотрщик для веб-серверов Apache или Nginx. С этим инструментов вы сможете просматривать данные, упомянутые ранее, а также парсить логи веб-сервера для углублённого изучения данных из них — и всё это в терминальном окне в реальном времени. Поскольку на сегодняшний день большинство веб-серверов используют или производные Debian, или основанные на Red Hat дистрибутивы в качестве базовых операционных систем, я покажу вам, как установить и использовать GoAccess в Debian и CentOS.

Установка GoAccess в Linux

В Debian, Ubuntu, Mint и производных, запустите следующую команду для установки GoAccess:

# aptitude install goaccess

В CentOS вам нужно включить репозиторий EPEL, а затем:

# yum install goaccess

В Fedora просто используйте команду yum:

# yum install goaccess

Если вы хотите установить GoAccess из исходников, чтобы задействовать продвинутые опции (такие как локация GeoIP), установите требуемые зависимости для вашей операционной системы, а затем сделайте следующие шаги:

# wget http://tar.goaccess.io/goaccess-0.8.5.tar.gz
# tar -xzvf goaccess-0.8.5.tar.gz
# cd goaccess-0.8.5/
# ./configure --enable-geoip
# make
# make install

Это установит версию 0.8.5, но вы всегда можете проверить, какая версия является последней на Старице загрузки на веб-сайте этого проекта.

Поскольку GoAccess не требует дальнейшей конфигурации, установив её, вы готовы для запуска.

Работа GoAccess

Для начала использования GoAccess, просто запустите её, указав путь до логов доступа (файл access) Apache.

Для Debian и производных запуск GoAccess:

# goaccess -f /var/log/apache2/access.log

Для основанных на Red Hat дистрах запуск GoAccess:

# goaccess -f /var/log/httpd/access_log

Когда вы запускаете GoAccess впервые, вас встретит следующий экран, в котором нужно выбрать дату и формат лога. Вы можете переключаться между опциями, используя пробел, а для продолжения нажать F10. По поводу даты и форматов логов, возможно, вы захотите обратиться к документации Apache, если вам нужно освежить вашу память.

В нашем случае выбираем Choose Common Log Format (CLF):

02

а затем нажимаем F10. Вам будет представлено окно статистики. На следующем изображении показан, только заголовок (для краткости), на котором показано суммарное содержание лог файла:

03

Просматриваем статистику веб-сервера с GoAccess

Прокрутив вниз страниц, используя нижнюю стрелку, вы найдёте следующие секции, отсортированные по запросам. Порядок представленных здесь категорий может различаться, в зависимости от вашего дистрибутива или предпочтённого метода установки (из репозиториев или из исходников):

1. Уникальные посетители за день (HTTP заголовки, имеющие одинаковый IP, одинакокую дату и одинаковый агент рассматриваются как один уникальный визит)

04

2. Запрошенные файлы (URL страниц)

05

3. Запрошенные статичные файлы (например, .png, .js, etc)

06

4. Ссылающиеся URL (URL с которого пришёл каждый запрос)

5. Код ответа HTTP 404 Not Found

07

6. Операционные системы

09

7. Браузеры

10

8. Хосты (клиентские IP)

08

9. Коды статусов HTTP

14

10. Топ ссылающихся сайтов

11. Топ поисковых фраз, используемых при переходе с поисковой машины Google

Если вам также хочется анализировать архивные логи, вы можете перенаправить их содержимое в GoAccess следующим образом.

Для Debian и производных:

# zcat -f /var/log/apache2/access.log* | goaccess

Для дистрибутивов, основанных на Red Hat:

# cat /var/log/httpd/access* | goaccess

Если вам нужен более детальный отчёт по любой из выше приведённых секций (от 1 до 11), то последовательно переключаться между модулями можно используя TAB (или SHIFT + TAB для обратного порядка переключения). Выбрав любой интересующий модуль (обратите внимание на нумерацию — нумерация модулей начинается с 0, т. е. первый модуль имеет номер ноль) его можно развернуть нажав ENTER или o или пробел.

15

Другие интерактивные команды:

j — вниз внутри модуля

k — вверх внутри модуля

s — для сортировки внутри модулей

/ — поиск внутри модулей (разрешены регулярные выражения)

q — внутри модуля — сворачивает модуль; в основном окне — выход из программы

Модули сами будут сворачиваться, когда вы будете переключаться на следующий.

g — переход к первому пункту (работает и в модулях и в основном окне)

G — переход к последнему пункту (работает и в модулях и в основном окне)

c — задаёт или изменяет цветовую схему

Для отображения информации расположения GeoIP, откройте детальный просмотр секции Хосты (Hosts) и вы увидите расположение клиентских IP адресов, которые выполняли запросы на ваш веб-сервер:

16488484075_95089b8092_o

Если за последнее время ваша система не была сильно занята, некоторые из вышеназванных секций не покажут много информации, но эта ситуация может измениться с увеличением запросов на ваш веб-сервер.

Сохранение отчётов для оффлайн анализа

Будет время, когда вам не захочется инспектировать состояние вашей системы в реальном времени, но захочется сохранить это для оффлайн анализа или печати. Для генерации HTML отчёта, просто перенаправьте вывод упомянутых ранее команд GoAccess в HTML файл. Всё, что останется, это открыть вашим веб-браузером сохранённый файл.

# zcat -f /var/log/apache2/access.log* | goaccess > /var/www/webserverstats.html

После отображение отчёта, вам нужно кликнуть на ссылку Expand (развернуть) для показа деталей каждой категории:

16486743041_bd8a80794d_o

Как уже было сказано в статье, GoAccess — это неоценимый инструмент, который обеспечит вас, как системного администратора, статистикой HTTP в визуальном отчёте на лету. Хотя, по умолчанию, GoAccess выдаёт свои результаты в стандартный вывод, вы также можете сохранить вывод в файлы JSON, HTML или CSV. Это превращает GoAccess в невероятно полезный инструмент для мониторинга и отображения статистики веб-сервера.

Оставить ответ

Ваш адрес email не будет опубликован. Обязательные поля помечены *