Анализ Log-файлов Nginx через GoAccess

Main

Оценка: 85.22% - 13 Голосов

Общая

GoAccess это анализатор лог файлов вебсерверов таких как Nginx и Apache2. Позволяет анализировать файлы как из консоли так и генерировать html файл с графиками. Данный анализатор является свободно распространяемым и доступен для загрузки тут

Удовлетворение зависимостей для установки


apt-get install libncursesw5-dev libgeoip-dev libtokyocabinet-dev

 

Установка GoAccess

Последняя версия доступна для скачки тут


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

 

Определим формат даты и формат лог-файла


nano /usr/local/etc/goaccess.conf

 

Раскоментируем строки:


time-format %H:%M:%S
date-format %d/%b/%Y
log-format %h %^[%d:%t %^] "%r" %s %b "%R" "%u"

 

Проверим работоспособность GoAccess


goaccess -f /var/log/nginx/access.log

 

В консоли должна появиться статистика.

 

Настройка Nginx для отображения HTML анализа лог файла.

Сервер Nginx должен быть установлен.

 

Создаем папку сайта


mkdir -p /var/www/goaccess

 

Укажем нужные права на папку


chown -R www-data:www-data /var/www/goaccess
chmod 755 /var/www

 

Сгенерируем отчёт по лог файлу


goaccess -f /var/log/nginx/access.log -a > /var/www/goaccess/report.html

 

Так как эта статичная страница и не имеет возможностей авторизации то мы включим авторизацию средствами Nginx сервера.

Файл с паролями создадим в /etc/nginx.

Файл должен быть создан с использованием функций шифрования данных crypt(3).

Для этого нам понадобится htpasswd генератор.

 

Устанавливаем htpasswd генератор


apt-get install apache2-utils

 

Генерируем файл


touch htpasswd
htpasswd -b htpasswd пользователь пароль

 

Создаем конфигурацию хоста Nginx


nano /etc/nginx/conf.d/goaccess.conf

 


server {
        listen имя_сайта;
        server_name имя_сайта;
        root /var/www/goaccess;
        location / {
                index report.html;
                auth_basic "Restricted Area";
                auth_basic_user_file  htpasswd;
        }
}

 

 Автоматизируем задачу через Cron


crontab -e -u root

 

Вставим задачу которая будет обновлять HTML файл каждые 15 минут.

 



*/15 * * * *  /usr/local/bin/goaccess -f /var/log/nginx/access.log -a > /var/www/goaccess/report.html

 

 Сохраним и ждём указанное время.

 

  • Просмотров: 16533
Добавить комментарий