Я познайомлю вас з Goaccess — консольним аналізатором системних журналів (log-файлів). Розкажу, як встановити та працювати з цим інструментом.
Що таке Goaccess?
Goaccess — це безкоштовний консольний аналізатор, парсер логів веб-сервера та генератор звітів. Розроблений девелопером Gerardo O. Розповсюджується по Open Source ліцензії — MIT. З допомогою Goacess можна отримати повну статистику по веб-сайту, дізнатися відвідуваність, переглянути за якими ключовими словами та запитами шукають відвідувачі, хто, коли і з яких хостів заходив на сайт.
Goaccess — це свого роду «Гугл Аналітика» для сисадмінів, він максимально виймає з Acess-логів усе можливе і надає оброблені, структуровані дані в інтерактивному псевдографічному real-time інтерфейсі. Мені особисто він допоміг ідентифікувати ботів та проаналізувати навантаження на сервер.
Можливості
- Аналіз кількості відвідувачів (аналіз трафіку сайту)
- Аналіз відвідуваних URL-адрес і завантажених файлів
- Аналіз кодів відповіді сервера
- Аналіз IP-адрес і геолокацій відвідувачів
- Аналіз ботів та краулерів
- Аналіз хостів, сайтів-рефералів
- Аналіз операційних систем відвідувачів
- Аналіз браузерів відвідувачів
- Аналіз поведінки відвідувачів (аналіз ПФ)
- Аналіз ключових слів
Особливості і переваги
- Висока інформативність та зручний, привабливий інтерфейс;
- Підтримка кольорових схем;
- Інтеграція з Docker;
- Підтримка log-файлів різного формату;
- Генерація статичних і real-time звітів у різних форматах: HTML, CSV, JSON
- Гнучкий (написаний на C), легко встановлюється і налаштовується;
Аналізатор Goaccess підтримує практично усі веб-сервери та формати логів: Apache, Nginx, IIS, AWS, GCP, Docker. Може аналізувати віртуальні хости.
Встановлення Goaccess на сервері Linux
Goaccess швидко встановлюється на будь-якому VPS-сервері під управлінням ОС Linux:
CentOS
yum install goaccess
Ubuntu/Debian
echo "deb http://deb.goaccess.io/ $(lsb_release -cs) main" | sudo tee -a /etc/apt/sources.list.d/goaccess.list wget -O - http://deb.goaccess.io/gnugpg.key | sudo apt-key add - sudo apt-get update sudo apt-get install goaccess
Налаштування і запуск Goaccess
Перш ніж запустити аналізатор, необхідно його налаштувати. Відкриваємо файл конфігурації Goaccess:
sudo nano /etc/goaccess/goaccess.conf
Потрібно розкоментувати наступні рядки:
time-format %H:%M:%S– формат виведення часу;date-format %d/%b/%Y– формат виведення дати;log-format %h %^[%d:%t %^] "%r" %s %b "%R" "%u"– комбінований формат виведення логів;log-format %v:%^ %h %^[%d:%t %^] "%r" %s %b "%R" "%u"– формат виведення логів для vhost (необов’язково).
Запуск Goaccess відбувається командою:
sudo goaccess /access.log
Підказка: дізнатися розташування ваших логів можна з допомогою команди
locate access.log
Можна також використати додаткові команди:
tail -f access.log | goaccess -– вивести останні 10 рядків лог-файлу в Goaccess у режимі реального часу;tail -f access.log | grep -i --line-buffered 'google' | goaccess --log-format=COMBINED -– фільтрація даних в лог-файлі по ключовому слову «google» у режимі реального часу.
Також використовуючи SSH ви можете переглядати логи віддалено на своїй локальній машині, якщо на ній встановлений GoAcess:
ssh user@IP_address 'cat /var/log/apache2/access.log' | goaccess -a Інші команди знайдете в документації Goaccess>>
Увага! Якщо у вас OpenLiteSpeed-сервер і GoAccess не запустився, рекомендується наступна конфігурація:
date-format %d/%b/%Ytime-format %Tlog-format "%h %^[%d:%t %^] "%r" %s %b "%R" "%u"
А в налаштування OLS-сервера задати наступне форматування логів:
"%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-agent}i\""
Детальніше про налаштування GoAccess дивіться на GitHub-сторінці та офіційній документації.
Гарячі клавіші Goaccess
- F1— довідка;
- F5 — оновлення інформації;
- q — вихід;
- Enter — розгорнути модуль;
- 0…9 (Shift+10) — активація модуля за номером (Shift необхідно втримувати для відкриття модулів з номерами 10+).
- ↑ — прокрутка вмісту догори;
- ↓ — прокрутка вмісту донизу;
- j — переміщення курсору донизу всередині модуля;
- k — переміщення курсору догори всередині модуля;
- c — встановлення або зміна кольорової теми інтерфейсу;
- Ctrl+f — прокрутка на один екран вперед всередині модуля;
- Ctrl+b — прокрутка на один екран назад всередині модуля;
- Tab — перемикання між модулями;
- Shisft+Tab — переключення на попередній модуль;
- s — налаштування сортування даних для активного модуля;
- / — пошук по всім модулям (можна використовувати регулярні вирази).
- n — продовжити пошук збігів;
- g — перехід до першого елемента модуля або у сам верх основного дашборду (вікна програми);
- Shift+G — перехід до останнього модуля.
Генерація HTML-звітів
Генерація звіту виконується одною простою командою:
sudo goaccess /access.log -a -o stats.html
В результаті отримуємо чудово оформлений файл звіту, який містить усю необхідну інформацію:
Інші команди для створення звітів в Goaccess:
goaccess access.log -o /report.html --real-time-html– генерація HTML-звіту в режимі реального часу (real time)goaccess access.log -a -d -o report.json– генерація звіту у форматі JSONgoaccess access.log --no-csv-summary -o report.csv– генерація звіту у форматі CSV
Корисні посилання
Автор: © Konrad Ravenstone, KR. Laboratories Research




