Аналіз системних логів з GoAccess

Встановлення і налаштування аналізатора логів Goaccess на VPS

Я познайомлю вас з 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:

ЧИТАЙТЕ ТАКОЖ:  Три команди, які допоможуть опанувати редактор Vim

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

Запуск 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/%Y
  • time-format %T
  • log-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 – генерація звіту у форматі JSON
  • goaccess access.log --no-csv-summary -o report.csv – генерація звіту у форматі CSV

Корисні посилання

Автор: © Konrad Ravenstone, KR. Laboratories Research

Konrad Ravenstone// про автора

Кібермольфар, хакер, лінуксоїд, дослідник безпеки в KR. Labs Research

Сподобалася стаття? Поділитися в соцмережах:
KR. Labs Research
Рекомендоване:
Основою для цієї статті послужили численні кіберінциденти, пов'язані з появою…