Как установить и использовать GoAccess Web Log Analyzer с Apache на Debian 7

Вступление

GoAccess позволяет отслеживать журналы веб-сервера в режиме реального времени, используя простую панель инструментов командной строки, чтобы быстро просматривать и анализировать показатели трафика. Он полностью работает в терминале со статистикой, организованной в отдельные панели на одной прокручиваемой панели инструментов. GoAccess также можно использовать для создания отчетов о веб-трафике HTML, JSON и CSV.

В этом руководстве показано, как установить программное обеспечение из исходного кода, а затем показано, как использовать, просматривать и перемещаться по программе из командной строки.

изображение: https: //assets.digitalocean.com/articles/GoAccess_Apache_Debian/1.jpg [Панель инструментов GoAccess]

GoAccess будет работать с файлами журналов практически с любого другого веб-сервера. Однако для правильной работы в GoAccess должно быть определено специальное форматирование файла журнала.

В этом руководстве основное внимание будет уделено использованию Apache в качестве выбранного веб-сервера с настроенными виртуальными хостами или без них.

Предпосылки

Пожалуйста, выполните эти предварительные условия перед началом этого урока.

Чем больше веб-трафика обрабатывает VPS, тем больше данных требуется для работы с GoAccess - чем больше, тем лучше.

Шаг 1 - Обновление системных пакетов

Для начала, + ssh + на ваш сервер как пользователь с привилегиями повышения прав + sudo +. Затем следуйте инструкциям ниже.

ssh @

Эта команда обновляет базу данных + apt-get менеджеров пакетов.

sudo apt-get update

Шаг 2 - Обновление системных пакетов

Установите любые новые обновления для системных пакетов Debian.

sudo apt-get upgrade

Подтвердите, когда будет предложено обновить новые пакеты, введя + y + для да.

Шаг 3 - Установите пакет, необходимый для сборки

Пакет + build essential + предоставляет несколько очень важных вспомогательных пакетов, таких как + make +, которые необходимы для компиляции программного обеспечения в Debian и Linux. Это необходимо для последующих этапов установки GoAccess в руководстве.

Вот как установить пакет с помощью + apt-get:

sudo apt-get install build-essential

Шаг 4 - Установите зависимости GoAccess

Вот зависимости, необходимые для установки и использования GoAccess на вашем VPS. Получите их, используя менеджер пакетов + apt-get +.

sudo apt-get install libncursesw5-dev libglib2.0-dev libgeoip-dev libtokyocabinet-dev

Шаг 5 - Настройте каталог сборки

Теперь, когда у нас есть необходимые системные пакеты, мы можем получить и собрать GoAccess.

Каталог + / usr / local / src + является подходящим местом для сборки программного обеспечения GoAccess. Передайте свою * текущую * учетную запись пользователя Debian этому каталогу, выполнив:

sudo chown $USER /usr/local/src

Затем предоставьте каталогу права на чтение, запись и выполнение для этого же пользователя с помощью команды:

sudo chmod u+rwx /usr/local/src

Перейдите в этот каталог с помощью команды + cd +:

cd /usr/local/src

Шаг 6 - Загрузите и извлеките исходный код GoAccess

GoAccess находится в версии 0.8.5 для его стабильной сборки на момент написания. Чтобы скачать его, используйте команду + wget + ниже.

wget http://tar.goaccess.io/goaccess-0.8.5.tar.gz

Теперь команда + tar может использоваться для извлечения и распаковки загруженного файла` + .tar.gz` и его содержимого.

tar -zxvf goaccess-0.8.5.tar.gz

Шаг 7 - Скомпилируйте и установите исходный код

Перейдите во вновь распакованный каталог, вот так.

cd goaccess-0.8.5/

Запустите сценарий configure, найденный в этом каталоге, с двумя префиксами, показанными в следующей команде:

./configure -enable-geoip -enable-utf8

Используйте команду + make + для создания makefile, необходимого для установки GoAccess.

make

Следующая команда установит GoAccess (используя ранее созданный makefile) в системные каталоги, сделав его исполняемым через Debian.

sudo make install

Шаг 8 - Отредактируйте файл конфигурации GoAccess

В главном файле конфигурации GoAccess есть несколько строк commented, которые нам нужно uncomment, чтобы использовать некоторые дополнительные функции программы позже в этом руководстве.

Мы отредактируем файл с помощью текстового редактора + vi + следующим образом:

sudo vi /usr/local/etc/goaccess.conf

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

Первым является параметр + date-format, и он выглядит вот так.

# Apache log date format. The following date format works with any
# of the Apache's log formats below.
#
#date-format %d/%b/%Y

Чтобы удалить символ комментария (+ # +), нажмите + j + несколько раз, чтобы переместить курсор вниз на строку, которую мы хотим отредактировать, то есть строку + формат даты% d /% b /% Y + ` , Как только он достигает линии и выбирает + # +, нажмите + x +, чтобы удалить и удалить его.

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

# Apache log date format. The following date format works with any
# of the Apache's log formats below.
#
date-format %d/%b/%Y

_ * Примечание: * Вы можете нажать + ESC + и набрать +: q +, затем + ENTER +, чтобы выйти из файла без сохранения изменений, если вы считаете, что допустили какие-либо ошибки или случайные изменения. _

Вторая строка, которую необходимо раскомментировать, - это одна из строк + log-format +, и точная строка зависит от настроек Apache. Выберите первый вариант, если вы используете только один хост Apache, и второй, если у вас настроена virtual hosts. Если вы не уверены, вам, вероятно, следует следовать разделу «Настройка не виртуальных хостов».

_ * Предупреждение: * Раскомментируйте только * одну * из этих строк. _

  • Для установок не виртуальных хостов *

Для установки без виртуальных хостов удалите символ хеша (+ # +) в следующей строке так же, как и раньше.

# NCSA Combined Log Format
#
log-format %h %^[%d:%^] "%r" %s %b "%R" "%u"
#
  • Для настроек виртуального хоста *

Для настройки с виртуальными хостами удалите символ хеша (+ # +) в следующей строке так же, как и раньше.

# NCSA Combined Log Format with Virtual Host
#
log-format %^:%^ %h %^[%d:%^] "%r" %s %b "%R" "%u"
#

После раскомментирования * одной * строки + log-format + нажмите + ESC +. Затем введите +: wq и нажмите` + ENTER`. Это запишет сделанные нами изменения в файл и выйдет из текстового редактора + vi +.

Теперь мы можем запустить GoAccess для любых текстовых файлов журнала Apache, которые соответствуют поддерживаемым критериям форматирования.

Шаг 9 - добавьте вашего пользователя в группу «adm»

Давайте добавим нашего текущего пользователя в группу администраторов (* adm *) в Debian, чтобы мы могли выполнять эти команды без префикса * sudo * для прав пользователя root.

+ usermod + может изменить свойства нашего пользователя, добавив аргумент + -g + и имя группы, к которой мы хотим добавить (* adm *), за которым следует соответствующий пользователь (в данном случае * sammy *). Обязательно замените ++ в следующей команде своим именем пользователя в Linux.

sudo usermod -g adm

После выполнения вышеуказанной команды отключитесь от VPS, набрав + exit + и затем + ENTER +. Затем снова войдите в систему VPS со своим пользователем sudo. Это относится к изменениям, которые мы сделали ранее для пользователя с помощью + usermod +.

exit
ssh @

Теперь у вас должны быть правильные разрешения на запуск GoAccess от имени этого пользователя * без использования sudo *, а также доступ к каталогу журналов Apache.

Теперь мы найдем каталог журналов.

Шаг 10 - Найдите файлы журнала

Веб-серверы в целом записывают все входящие и обработанные HTTP-запросы в файлы журналов.

Нам нужно найти, где Apache хранит свои логи, чтобы мы могли их использовать. По умолчанию в системах Debian файлы журнала Apache хранятся в:

+ / Вар / Журнал / apache2 +

Чтобы увидеть содержимое этого каталога, вы можете использовать команду list следующим образом:

ls /var/log/apache2

Здесь вы найдете файлы журналов, описанные ранее, некоторые из которых сжимаются в файлы + .gz +, если ваш сервер работал достаточно долго. Самым последним, который в настоящее время записывается и обрабатывается веб-сервером, является несжатый файл с именем + access.log +.

Для настройки с настроенными виртуальными хостами вам может потребоваться + cd + в подкаталогах из + / apache2 +, чтобы найти файлы журналов каждого отдельного хоста.

Если вы нашли здесь файлы журнала, перейдите к следующему шагу (* Шаг 11 *).

  • Дальнейший поиск *

Вам нужно только прочитать эту дополнительную информацию, если у вас возникли проблемы с поиском файлов журналов.

Расположение этих журналов доступа контролируется директивой + CustomLog в конфигурации Apache. Если вы изменили этот параметр, вы можете найти свои журналы доступа Apache в другом каталоге.

Чтобы найти директиву + CustomLog + и ее значение, вы можете использовать + grep + в одном из файлов конфигурации Apache, как показано в следующей команде.

Это выведет все пользовательские каталоги, добавленные в файл + apache2.conf +.

grep CustomLog /etc/apache2/apache2.conf

В качестве альтернативы вы можете запустить эту команду, которая может занять некоторое время, если на вашем сервере много файлов:

sudo find / -name access.log

Это покажет все файлы в системе с именем + access.log +.

Шаг 11 - Запустите GoAccess

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

goaccess -f  -a

После запуска этой команды вы увидите панель мониторинга GoAccess.

Аргумент + -f + указывает программе использовать предоставленный путь к каталогу, а аргумент + -a + включает всю записанную статистику для каждого проанализированного agent хоста.

  • Необязательно: Извлечение архивных журналов *

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

При желании вы можете сделать это с помощью программы + gunzip + в Debian.

Например:

sudo gunzip /var/log/apache2/

Имя файла + access.log.10.gz + в конце команды здесь должно совпадать с именем сжатого файла, который вы хотите извлечь.

Шаг 12 - Перейдите в GoAccess

Это панель инструментов GoAccess.

изображение: https: //assets.digitalocean.com/articles/GoAccess_Apache_Debian/2.jpg [Панель инструментов GoAccess]

Вот как можно взаимодействовать с приборной панелью:

  • Нажатие + F1 + или + h + вызовет небольшое окно справки, в котором перечислены ключи и их функции, найденные здесь в этом разделе, а также предоставлена ​​некоторая другая полезная информация.

  • + 0-9 + или + SHIFT + 0-9 + выбирает соответственно пронумерованный модуль и устанавливает его активным. Соответствующие цифры можно увидеть на приборной панели для каждого раздела.

  • + o + или + ENTER + используется для расширения текущего выбранного модуля на панели инструментов. Модули описаны в следующем разделе.

  • + j + будет прокручиваться вниз в расширенном активном модуле, а + k + прокручивается вверх в расширенном активном модуле.

  • + s + показывает опции сортировки, доступные для активного модуля.

  • Наконец, нажатие + q + закроет программу или текущее окно или свернет активный модуль, в зависимости от текущего уровня глубины на панели инструментов.

  • Больше взаимодействия можно достичь с помощью следующих клавиш: *

  • Нажатие клавиши + TAB на клавиатуре будет перемещаться по модулям вперед по порядку.

  • Нажатие + SHIFT + + + TAB + вместе сделает противоположное последнему действию и выполнит итерацию в обратном направлении по всем модулям.

  • + F5 + можно нажать, чтобы обновить и перерисовать приборную панель.

  • + c + при нажатии устанавливает и изменяет текущую цветовую схему, используемую на панели инструментов.

  • + g + перемещает фокус на первый элемент и обратно в верхнюю часть экрана панели инструментов.

  • + G + прокручивает к последнему элементу или нижней части экрана приборной панели.

Шаг 13 - Понимание модулей

Теперь, когда вы можете перемещаться по интерфейсу, давайте посмотрим, что на самом деле содержит каждый модуль. Разделы здесь соответствуют пронумерованным модулям и заголовкам в программе. Все отображаемые значения _ «Hit» _ основаны на общем количестве запросов, найденных в предоставленном файле журнала или файлах соответственно (если не указано иное).

  • Панель инструментов - общие проанализированные запросы *

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

  • 1 - Уникальные посетители *

Этот модуль указан по дням с указанием дат. HTTP-запросы, имеющие один и тот же IP-адрес, одну и ту же дату и один и тот же агент, считаются уникальными посещениями. Это включает в себя веб-сканеры / пауки.

  • 2 - Запрошенные файлы *

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

  • 3 - Запрошенные статические файлы *

Включает только наиболее часто запрашиваемые статические файлы, такие как: + jpg +, + css +, + swf +, + js +, + gif + и + png +, с теми же метриками, что и последние Модуль предусмотрен для каждого случая.

  • 4 - URL-адреса HTTP 404 *

В этом модуле, как и в предыдущих модулях с такой же статистикой, перечислены наиболее часто встречающиеся HTTP-запросы 404: не найдены ошибки и запрашиваемый URL-адрес.

  • 5 - Хозяева *

Хосты имеют более подробную информацию о самих хостах, которые подключаются к вашему веб-серверу, такие как количество соединений, их global IP-адреса и некоторые из тех же типов повторяющихся метрик.

Расширенный модуль здесь может отображать даже больше информации, например, результат обратного просмотра DNS хоста и страну происхождения, если включен аргумент + -a + из предыдущего. Список пользователей agents можно отобразить, выбрав нужный IP-адрес и нажав + ENTER +.

  • 6 - Операционные системы *

Здесь показана операционная система хоста и ранжировано использование ОС. Это основано на уникальных посещениях, в отличие от большинства других данных модуля.

  • 7 - Браузеры *

Модуль Browser следует той же концепции, что и последний модуль, за исключением того, что в этом случае ранжируется тип браузера хоста, используемый для подключения к сеансу. Опять же, это основано на уникальных посетителях, а не на общем количестве запросов.

  • 8 - URL реферера *

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

  • 9 - Ссылающиеся сайты *

Этот модуль практически идентичен последнему (* URL-адреса реферера *); единственное отличие состоит в том, что отображается общий адрес сайта, а не точная точка отправления для реферала.

  • 10 - Ключевые фразы *

Сообщает ключевые слова, используемые в поиске Google, кэше Google и Google Translate, которые привели к тому, что ваш веб-сервер обрабатывает хост. В настоящее время это поддерживает только Google и никаких других поисковых систем.

  • 11 - Географическое положение *

Этот модуль содержит сводку географических местоположений, установленных по IP-адресам посещающих хостов. Если он не может определить это, он будет помечен как + местоположение неизвестно +.

  • 12 - коды состояния HTTP *

Коды состояния HTTP содержат статистику значений общих кодов состояния в запросах HTTP, выраженных в виде суммы и процента.

(Необязательно) Дальнейшее использование GoAccess

Перейдите в домашний каталог вашего пользователя с помощью + cd + и + ~ +, чтобы продолжить выполнение этих дополнительных команд. Вторичная команда + pwd + печатает ваш текущий рабочий каталог, так что вы можете подтвердить, что вы правильно переключились на него.

cd ~
pwd

HTML отчеты

Можно создать отчет в формате HTML с помощью redirecting (+> +) стандартного вывода GoAccess в файл HTML с любым именем, которое вы выберете.

В этом примере файл называется + .html + и включает в себя всю (+ -a +) статистику, доступную из выбранного файла журнала.

goaccess -f /var/log/apache2/access.log -a > .html

Недавно сгенерированный файл + html + создается внутри каталога нашего пользователя home.

Отчеты JSON

Вы можете создать отчет типа JSON, добавив в команду аргументы + -o + и + json +. Здесь выходной файл имеет расширение + .json +.

goaccess -f /var/log/apache2/access.log -a -o json > .json

Отчеты CSV

Чтобы создать файл CSV, используйте тот же метод, что и раньше; просто добавьте аргумент + csv к команде и измените расширение файла на` + .csv`

goaccess -f /var/log/apache2/access.log -a -o csv > .csv

Запуск сжатых файлов

Чтобы заставить сжатые файлы работать через GoAccess, вы можете направить вывод команды + zcat + в команду + goaccess +. Следующая команда показывает * все * сжатые файлы + .gz +, читаемые без предварительного извлечения вручную.

zcat /var/log/apache2/access.log.*.gz | goaccess -a

Фильтрация по дате начала

Чтобы отфильтровать от указанной даты начала, вы можете использовать структуру следующей команды. Это обеспечит синтаксический анализ HTTP-запросов с 20 января 2015 года до конца содержимого файла журнала.

sed '//,$ p' /var/log/apache2/access.log | goaccess -a

Имейте в виду, что это будет работать только в том случае, если введенная вами дата действительно содержится в переданном файле журнала.

Фильтрация по дням

Вы можете выделить конкретную дату и отфильтровать, чтобы показать трафик именно в этот день. На этот раз мы будем использовать + grep + для этого.

grep '' /var/log/apache2/access.log | goaccess -a

Исключая хосты

С помощью этой команды исключите конкретный IP-адрес, заменив ++ на нужный IP-адрес.

goaccess -exclude-ip= -f /var/log/apache2/access.log -a

Удаленное использование

Если GoAccess установлен на удаленном компьютере, например на локальной рабочей станции, вместо VPS, можно подключиться к VPS по SSH, а затем удаленно читать файлы журнала Apache через piping.

ssh @ 'cat ' | goaccess -a

Заключение

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

Вот полное резюме того, что было рассмотрено:

  • Получение и обновление необходимых системных пакетов Debian.

  • Установка и сборка GoAccess с его исходным кодом.

  • Запуск GoAccess с файлами журналов веб-сервера Apache.

  • Взаимодействие и навигация по GoAccess в командной строке.

  • Понимание модулей в панели инструментов GoAccess.

  • Создание различных типов отчетов из журналов веб-сервера Apache с помощью redirection.

  • Piping другие команды выводит в GoAccess.

Related