8.1 Налаштування індексу для логів Docker
Для демонстрації я створив Docker-образ з ELK і Filebeat, який включає тестову програму для генерації логів. У цьому прикладі ми зосередимося на налаштуванні індексу для логів Docker в Kibana.
Крок 1: Клонування репозиторію і запуск ELK-стека
Завантажте репозиторій з налаштуваннями Docker Compose для ELK-стека і запустіть його:
git clone https://github.com/et-soft/habr-elk
cd habr-elk
docker compose up
Для зручності ключ -d опущений, щоб можна було бачити процес запуску ELK-стека. Запуск може зайняти кілька хвилин. Після успішного старту в логах має з'явитися запис:
{"type":"log","@timestamp":"2020-09-20T05:55:14Z","tags":["info","http","server","Kibana"],
"pid":6,"message":"http server running at http://0:5601"}
Крок 2: Доступ до Kibana
Відкрийте веб-браузер і перейдіть за посиланням http://localhost:5601.
Крок 3: Налаштування індексу для логів
Оберіть в лівому меню Kibana розділ Discover, щоб перейти на сторінку створення індексу.
Крок 4: Створення нового індексу
Натисніть на кнопку Create index pattern, щоб відкрити форму налаштування. У полі Index pattern name введіть logstash-*. Якщо налаштування виконано правильно, Kibana покаже індекси, що відповідають правилу.
Крок 5: Вибір часової мітки
На наступній сторінці оберіть ключове поле з часовою міткою — @timestamp.
Крок 6: Перевірка індексу
Після завершення налаштування ви побачите сторінку налаштувань індексу. Зараз додаткових дій не потрібно.
Крок 7: Перегляд логів
Перейдіть назад до розділу Discover, де буде відображено записи логів із Docker-контейнерів.
8.2 Створення дашбордів для візуалізації логів
Крок 1. Створіть дашборди для візуалізації логів
У лівому меню тиснемо на розділ "Dashboard" — це нас і виведе на сторінку, де створюються дашборди.
Крок 2. Тапаємо на «Create new dashboard», і нас відправлять на екран, де вже додаються об'єкти у цей самий Dashboard.
Крок 3. Тиснемо на кнопку «Create new», і Kibana запропонує обрати, як відображати дані. Варіантів там повно, але для прикладу розглянемо два — графіки в стилі «Vertical Bar» і табличне представлення «Data Table». Усе інше налаштовується схоже.
8.3 Гістограма логів
Давай для прикладу «Vertical Bar» зробимо гістограму, яка покаже співвідношення успішних і неуспішних запитів сервісу. Після налаштування у нас вийде щось таке:
До успішних належать запити з кодом відповіді < 400, а всі >= 400 ми вважаємо проблемними.
Спочатку потрібно обрати джерело даних для графіка. Беремо Index Pattern, який створили раніше.
Після вибору джерела за замовчуванням з’явиться один загальний графік. Давай його налаштуємо.
У розділі «Buckets» натискаємо «Add», обираємо «X-axis» і налаштовуємо вісь Х. По ній будуть відкладатися часові мітки. У полі «Aggregation» обираємо «Date Histogram», а в «Field» вказуємо «@timestamp». Поле «Minimum interval» можна залишити в «Auto».
Натискаємо «Update», і на графіку відобразиться кількість запитів кожні 30 секунд.
Тепер займемося налаштуванням стовпців по осі Y. Зараз відображається загальна кількість запитів за інтервал часу. Змінюємо агрегацію на «Sum Bucket», щоб додати успішні й проблемні запити. У розділі Bucket → Aggregation обираємо «Filters» і задаємо фільтр: «statusCode >= 400». У полі «Custom label» пишемо зрозумілу назву для метрики.
Натискаємо «Update», і графік показуватиме лише проблемні запити.
Хочеш змінити колір стовпців? Натисни на круг у легенді графіка, і з'явиться вікно для вибору кольору.
Тепер додаємо дані про успішні запити. У розділі «Metrics» натискаємо «Add» і обираємо «Y-axis». Налаштовуємо аналогічно, але для фільтра вказуємо «statusCode < 400».
Змінюємо колір для нового стовпця, і у нас вийде візуалізація співвідношення успішних та проблемних запитів.
Не забудь зберегти графік, натиснувши «Save» у верхній частині екрана. Вкажи назву, і він з'явиться на Dashboard.
8.4 Таблиця логів
Давай створимо таблицю «Data Table», щоб бачити список всіх URL, до яких були запити, і їх кількість. Почнемо, як і в випадку з Vertical Bar, з вибору джерела даних.
Після вибору джерела на екрані з'явиться таблиця з однією колонкою, де показано загальну кількість запитів за вибраний інтервал часу.
Тепер налаштуємо таблицю. Переходимо в блок «Buckets», тиснемо «Add» і обираємо «Split rows».
У появившомуся полі «Aggregation» обираємо «Terms», а у «Field» зазначаємо «url.keyword».
У полі «Custom label» вводимо зрозумілу назву, наприклад «Url». Потім тиснемо «Update» — і наша таблиця готова. У ній відображається кількість запитів до кожного URL за вибраний інтервал часу.
Щоб зберегти таблицю, тиснемо «Save» у верхній частині екрану, вказуємо назву (наприклад, «Urls»), і повертаємось на Dashboard. Тепер ми бачимо обидва наші створені відображення.

ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ