Debian.pro

Блог для пользователей и администраторов Debian


Анализ логов веб-сервера в консоли — goaccess.

Сегодня у меня день расхваливания чужих продуктов =)
Итак — вы человек, который не умеет пользоваться awk’ом, sed’ом и sort/uniq/whatever. Вы слишком ленивы, чтобы настраивать awstats. Но тут вас заставили быстренько дать какую-то информацию из логов.
На эту тему есть утилита goaccess. Она кушает лог (из файла или из пайпа) и даёт из него следующую статистику:
0) всего хитов в логе, всего уникальных посетителей, всего запросов, всего запросов по статике, всего 404к.
1) количество уникальных посетителей по дням в логе
2) топ URLов, которые просили в логе
3) топ URLов статики, которые просили в логе
4) статистика по реферерам, с которых пришли
5) 404ки, с указанием количества
6) операционные системы посетителей
7) браузеры
8) хосты посетителей (ip) с сортировкой по количеству хитов

Ну и другие подобные штуки, если они включены в логах. Что огорчило — не умеет понимать русскоязычные запросы из гугла. Вместо их текста пишет чушь какую-то. Ну и, видимо, вообще по-русски не очень-то разговорчив.

Конечно, для серьёзной аналитики не подходит, но можно найти аномалии.

Пользоваться просто. Так как в squeeze в репозитории старьё, то поставим goaccess из sid’a:
root@host:~# echo "deb http://ftp.de.debian.org/debian sid main" >> /etc/apt/sources.list; aptitude update; aptitude install goaccess; sed -i 's/deb http:\/\/ftp.de.debian.org\/debian sid main/#deb http:\/\/ftp.de.debian.org\/debian sid main/' /etc/apt/sources.list; aptitude update

Ну а дальше магия. Утилита хорошо понимает и логи апача, и логи nginx’a в дефолтном формате. Для ispmanager, соответственно, легко получится почитать ей логи в /var/www/httpd-logs.

Посмотрим статистику нашего большого веб-сервера за сегодня:
root@host:~# goaccess -f /var/log/nginx/access.log

Откроется странное окошко, да. Чтобы посмотреть нужную секцию полностью — жмем на клавиатуре цифру 1-0 (или shift+1-0, для 11-20 секций) и нажимаем o. Из этого окошка выйти потом можно по q. И из самой утилиты выход тоже по q.

Посмотрим статистику нашего большого сервера по всем логам:
root@host:~# zcat -f /var/log/access* | goaccess

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

Ну и, как обычно, не забываем про правильность ssh:
root@host:~# ssh root@remotehost "cat /var/log/nginx.log" | goaccess

Сделает вполне себе логичную вещь — запустит goaccess локально и скормит ему файл с удаленной машины.

Остальное в man goaccess можете почитать, основное я написал.


Комментарии (3):

  1. Alukardd :

    > вы человек, который не умеет пользоваться awk’ом, sed’ом и sort/uniq/whatever.
    удручающее начало…

    Полезная утилитка, конечно, упомянутые выше инструменты позволят получить отчёт в том виде в котором вам удобнее, однако просто для скорого просмотра более чем достаточно goaccess. И интерактивность(переходы в подробные списки) весьма удобная.

  2. Alukardd :

    Кстати, в данном ключе вспомнил о прикольной утилите — logstalgia ( http://code.google.com/p/logstalgia/ )

  3. Было бы круто, если бы вы накрапали статью по всем самым популярным репозиториям Debian, а также адекватным управлением обновления пакетов из разных репозиториев, чтоб не приходилось их постоянно включать/отключать.

Написать комментарий