Основы ELK. 1 27 Избавляем бизнес от итзависимостиЧто это и зачем нужноЧто это и зачем нужно2 27
Скачать 0.97 Mb.
|
Избавляем бизнес от ИТ-зависимости Что это и зачем нужно? Что это и зачем нужно? 2 / 27 Избавляем бизнес от ИТ-зависимости Наш лось Наш лось Понятие ELK сегодня используется больше в роли обозначения Изначально оно означало три инструмента: ElasticSearch Logstash Kibana И представляло собой стек для хранения, обработк и получения централизованного доступа к логам На дворе был год примерно 2014 3 / 27 Избавляем бизнес от ИТ-зависимости Наш лось Наш лось За следующие 6 лет ELK трансформировался в полноценную боевую машину для Big Data Если говорить совсем упрощенно, то он стал Excel, только для огромных объемов данных Позволяет по-прежнему данные собирать Еще он позволяет по ним быстро искать А еще позволяет визуализировать И можно на разных языках писать код, который дальше превращается в визуализации (Vega) 4 / 27 Избавляем бизнес от ИТ-зависимости Где это может понадобиться? Где это может понадобиться? В системах с жестким делением доступов к серверам (PCI DSS) В системах с большой скоростью ротации логов Виртуальная машина создалась, отработала задачу, с нее сняли логи и удалили ее В системах, которые агрегируют огромные объемы разнородных данных (SIEM) В системах, где логи могут содержать бизнес-события И их нужно как-то отдельно вытаскивать и обсчитывать 5 / 27 Избавляем бизнес от ИТ-зависимости Немного истории Немного истории 6 / 27 Избавляем бизнес от ИТ-зависимости С чего всё начиналось С чего всё начиналось Изначально оно означало три инструмента: ElasticSearch Logstash Kibana Обычно называлось "ELK-стек" 7 / 27 Избавляем бизнес от ИТ-зависимости ElasticSearch ElasticSearch Хранит данные (много, много данных) Умеет хранить их в нескольких копиях Позволяет по ним искать Сам по себе не содержит графического интерфейса Очень любит оперативную память Написан на Java 8 / 27 Избавляем бизнес от ИТ-зависимости Logstash Logstash Процессор логов Умеет принимать логи, обрабатывать логи, а потом складывать в ElasticSearch Не хранит, а выступает промежуточным приемщиком из разных систем Может отрезать, пришивать, короче, выполнять манипуляции Тоже на Java и тоже достаточно тяжелый 9 / 27 Избавляем бизнес от ИТ-зависимости Kibana Kibana Веб-интерфейс для ElasticSearch Веб-приложение (хоть что-то не на Java) Крайне крутое и очень многое умеет Стало основой для приложения Grafana (мониторинг) 10 / 27 Избавляем бизнес от ИТ-зависимости К чему пришло К чему пришло История ELK-стека еще только пишется, поэтому о многом нельзя точно сказать Но совершенно точно ELK-стек стал стандартом де-факто для логов Банковский сектор его очень любит и не видит жизни без него Для аналитиков всех мастей он стал Excel для Big Data и порой безальтернативно Однако стек расширился и сейчас нельзя просто называть его ELK 11 / 27 Избавляем бизнес от ИТ-зависимости Как оно теперь называется? Как оно теперь называется? Logstash уступил свое место обработчика логов более простому сборщику Filebeat Дальше для горизонтального масштабирования стали использовать Ka a Обычно в банковском секторе применяют EFKK EFK = ElasticSearch, Filebeat, Kibana EFKK = ElasticSearch, Filebeat, Kafka, Kibana 12 / 27 Избавляем бизнес от ИТ-зависимости Централизованное Централизованное логирование логирование 13 / 27 Избавляем бизнес от ИТ-зависимости Централизованная система логирования Централизованная система логирования Единая точка доступа ко всей информации Возможность проведения анализа по всем системам Оценка производительности и качества работы приложений Аналитика на основе лог данных приложений 14 / 27 Избавляем бизнес от ИТ-зависимости Но... Но... Централизованная система логирования не отменяет локальное хранение логов Локальное хранение логов по-прежнему является самым надежным способом хранения Возможна потеря логов, если центральный сервер загружен или недоступен 15 / 27 Избавляем бизнес от ИТ-зависимости Что общего в централизованных системах Что общего в централизованных системах Сбор логов Передача и обработка Хранение Анализ 16 / 27 Избавляем бизнес от ИТ-зависимости ELK ELK 17 / 27 Избавляем бизнес от ИТ-зависимости Beats Beats Это сервисы-сборщики данных определенного типа: Из текстовых лог-файлов: filebeat Журнала событий Windows: winlogbeat Метрики приложений или сервисов (при помощи модулей) - metricbeat Журнал аудита Linux и контроль изменений: auditbeat Сетевой трафик: packetbeat ... что угодно - хоть сообщения из Discord Официальные и от beats от Elastic сообщества 18 / 27 Избавляем бизнес от ИТ-зависимости Filebeat Filebeat Один из основных способов сбора данных из лог файлов Легковесный Поддерживает работу с многострочными логами Начиная с 6 версии умеет также обрабатывать логи (при помощи модулей) Хорошо проработана механика работы со стейт-файлом обработка ситуаций с ротацией лог-файлов Filebeat "помнит" уже обработанные файлы и фрагменты 19 / 27 Избавляем бизнес от ИТ-зависимости В каких случаях нужен Filebeat В каких случаях нужен Filebeat Много лог файлов на сервере Нужно поддерживать обработку многострочных логов по различным условиям Есть приложения, которые не пишут в syslog , не завернуты в Docker или просто пишут много данных Лень писать свои парсеры для сложных форматов логов 20 / 27 Избавляем бизнес от ИТ-зависимости Неприятные особенности Filebeat Неприятные особенности Filebeat Нужно поддерживать соответствие версий Filebeat и стека ELK Держит файловые дескрипторы "до победного" удаленные файлы логов занимают место, пока Filebeat их не обработает Не все параметры по умолчанию подобраны оптимально 21 / 27 Избавляем бизнес от ИТ-зависимости Ключевые особенности Filebeat Ключевые особенности Filebeat 22 / 27 Избавляем бизнес от ИТ-зависимости Logstash Logstash Позволяет выстроить конвейер для приема, обработки (структурирования) и отправки обработанных логов агрегация, фильтрация сообщений удаление полей, обфускация данных маршрутизация логов Можно поставить несколько (сразу после Filebeat и перед ES), в случае большого количества преобразований 23 / 27 Избавляем бизнес от ИТ-зависимости Elasticsearch Elasticsearch Распределенная NoSQL БД Поддержка партиционирования/шардирования Возможность быстрого полнотекстового поиска при помощи встроенного движка Lucene Apache Lucene - "опен-сорсный Google" Поисковый синтаксис Lucene + KQL Основа для линейки продуктов Elastic Co 24 / 27 Избавляем бизнес от ИТ-зависимости Elasticsearch | Основные понятия Elasticsearch | Основные понятия Document - единичная запись в БД, набор полей ключ / значение В табличных БД - это как строка таблицы Документы не имеют заранее определенной схемы Но для некоторых полей лучше задать тип данных вручную Index - набор связанных документов Все поля документов проиндексированы Аналогичен "базе данных" в обычных СУБД (или таблице..) Могут быть "горячими" и "холодными" Состоят из 1 (или больше) Primary Shard-ов и реплик 25 / 27 Избавляем бизнес от ИТ-зависимости Elasticsearch | Основные понятия Elasticsearch | Основные понятия Shard - отдельный набор поисковых индексов Lucene и документов внутри Index Их число указывается при создании Index и неизменно Их можно распределять по разным узлам Для каждого Shard можно создавать реплики (вот их можно сделать много) Type - описание полей в документе, их типы и названия. Один индекс может включать документы разных типов Работало это плохо, поэтому не удаляйте, если где увидите Лучше создавать отдельные индексы под разные типы документов 26 / 27 Избавляем бизнес от ИТ-зависимости Kibana Kibana UI для Elasticsearch Решает задачи: Простой поисковой визуализации данных (режим Explore) Сложные аналитические отображения в виде графиков, дашбордов Специализированные интерфейсы для разных компонентов (APM) Управления компонентами ES стека (например, ILM) Index pattern - выбирает определенные индексы ES для поиска и отображения в UI 27 / 27 |