Анализ Log-файлов Nginx через GoAccess
Общая
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