ELK: менеджмент логов, быстрая локализация проблем /...

27
ELK: менеджмент логов, быстрая локализация проблем Сергей Шумов

Transcript of ELK: менеджмент логов, быстрая локализация проблем /...

ELK: менеджмент логов, быстрая локализация проблемСергей Шумов

Что такое ELK?Я собираю

логи

А я их храню, ищу по ним и ещё аналитика

Я их визуализирую!

Проблемы

• Быстрый поиск по логам

• Быстрая аналитика по логам

• Всё это по нескольким сервисам

• …в 3 часа ночи и очень срочно

Олд скул

• Log, Rotate, Archive

• Поиск с помощью grep

• "Аналитика" с помощью: zcat | cut | sort | uniq -c | sort -nr

Олд скул• Плюсы

+ Надёжно

+ Просто реализовать

+ Не требует ресурсов

• Минусы

– Grep магия для фильтрации

– Нельзя делать сложные агрегации

– Если софт не помещаются на 1 сервер то всё плохо

Сборка логов в файлы

Какие проблемы?

• Порядок записей событий

• Трудно считать кросс-сервисную аналитику

• Больше файлов – дольше обработка

Скриптоводство

Структурированный лог• Формат

• Описывает сам свою структуру

• Расширяемый

• Легко формируется и парсится

• Человекочитаем

• Содержимое

• Контекст

• Атрибуты вместо строк

{"JSON": "наш выбор!"}

• Описывает сам свою структуру

• Расширяемый

• Есть библиотеки под все языки

• Человекочитаем

ElasticSearch (ES)

ES: Ротация логов

• Индексы по дням

• Поиск по множеству индексов

• Удаление множества индексов

• Перемещение индексов между узлами

Kibana: Агрегации

Настройки агрегации

Результаты

Kibana: Поиск

• Полнотекстовый поиск

• Поиск по атрибутам

• Lucene queries

• Быстрый просмотр значений

Kibana: Кросс-сервисный поиск

• Способы организации:

✓ Индекс на каждый сервис

X Всё в одном индексе

logs-crawler-2016.11.07

logs-2016.11.07

Kibana: Просмотр сессии пользователяФильтруем события

Смотрим хронологию

Kibana: Выявление аномальных пользователей

Настраиваем агрегации

Убираем мусор

Смотрим результаты

Kibana: Исследование всплесков

Kibana: Исследование всплесков

Смотрим события

Kibana: Dashboard

«Недовольные пользователи»

Время ответа

Балансировка

Как и что логировать

• «Session ID»

• Трекинг событий

• Простые агрегации

• Полный контекст

• Сложный агрегации

{"article_id":42,"session_id":"0cx31f","ref_article_id":17}

ELK или EFK?

Logstash

TCP => File: • 5 000 записей/сек • ~105% CPU • 230 MB RAM

TCP => File: • 11 546 записей/сек • ~80% CPU • ~60 MB RAM

Logging pipeline

Альтернативы

• Локальный сборщик логов (LogWatch)

• LaaS (Splunk)

Потребление ресурсов

Cores RAM DISK

20-50 млн/сутки 10-25 4-10 ГБ 30 ГБ SSD за 3 суток300 ГБ HDD за месяц

Вопросы? :)