Підручник зі стеку ELK: Кібана, Logstash & Еластичний пошук

⚡ Розумний підсумок

ELK Stack поєднує три інструменти з відкритим кодом — Elasticsearch, Logstash, а Kibana — для збору, зберігання, пошуку та візуалізації машинних даних, надаючи інженерним командам централізований журнал реєстрації та аналітику в режимі реального часу для швидшого усунення несправностей на серверах та в програмах.

  • 🧩 Ролі стеку: Elasticsearch зберігає та індексує дані, Logstash обробляє та відправляє журнали, а Kibana візуалізує результати.
  • 🔎 Еластичний пошук: Пошукова система NoSQL на базі Lucene, яка індексує різнорідні дані та повертає повнотекстові результати майже в режимі реального часу через REST API.
  • 🛠️ Logstash: Конвеєр, який приймає, фільтрує та перетворює журнали з багатьох джерел, перш ніж передати їх до Elasticsearch.
  • 📊 Кібана: Веб-панель інструментів, яка перетворює індексовані дані на інтерактивні діаграми, карти та графіки для швидкого дослідження.
  • 📦 Еластичний стек: Постачальники Lightweight Beats збирають дані на периферії, що спонукало Elastic перейменувати ELK на Elastic Stack.
  • 🏢 Виробниче використання: Netflix, LinkedIn та Medium використовують ELK у великих кластерах для ведення журналу, безпеки та моніторингу.
  • 🇧🇷 ELK проти Splunk: ELK — це безкоштовна платформа з відкритим вихідним кодом, тоді як Splunk — це комерційна платформа зі швидшою обробкою даних та ширшою інтеграцією.

Архітектура стеку ELK, що показує, як Kibana, Logstashта Elasticsearch працюють разом для централізованого ведення журналу та аналітики

ELK Stack — одне з найпоширеніших рішень з відкритим кодом для централізованого ведення журналу та аналітики журналів. У цьому посібнику з ELK Stack пояснюється, що таке Elasticsearch, Logstash, і Kibana, як ці три інструменти поєднуються між собою, і де платформа використовується в реальних моніторингових та спостережливих роботах.

Що таке стек ELK?

Команда Стек ЛОСИ це набір із трьох відкритих продуктів — Elasticsearch, Logstash, та Kibana. Він забезпечує централізоване ведення журналів, яке допомагає виявляти проблеми із серверами або програмами, дозволяючи шукати всі журнали в одному місці. Він також допомагає співвідносити журнали на кількох серверах протягом певного періоду часу.

  • E розшифровується як Elasticsearch: використовується для зберігання журналів.
  • L стенди для Logstash: використовується для корабляping, обробка та зберігання журналів.
  • K означає Кібана: a засіб візуалізації (веб-інтерфейс), що розміщується через Nginx або Apache.

Еластичний пошук, Logstash, та Kibana розроблені, керовані та обслуговуються компанією під назвою Еластичний.

Разом, ELK Stack розроблений, щоб дозволити користувачам отримувати дані з будь-якого джерела, у будь-якому форматі, а потім шукати, аналізувати та візуалізувати ці дані в режимі реального часу.

Стек ЛОСИ Archiтектура

Тепер, коли ви знаєте, що таке стек, у цьому розділі пояснюється архітектура ELK та те, як дані передаються між компонентами.

Конвеєр ELK дотримується чіткої послідовності, в якій кожен інструмент має окреме завдання:

  • Журнали: Визначено журнали сервера, які потрібно проаналізувати.
  • Logstash: Збирає журнали та дані подій, потім аналізує та перетворює їх.
  • Еластичний пошук: Дані, перетворені за допомогою Logstash зберігається, здійснюється пошук та індексація.
  • Кібана: Використовує базу даних Elasticsearch для дослідження, візуалізації та обміну аналітичними даними.

Однак, для збору даних часто додають четвертий компонент під назвою Beats. Beats — це легкі компоненти, що встановлюються на серверах, і їх додавання призвело до того, що Elastic перейменував ELK на Elastic Stack.

Діаграма архітектури стеку ELK, що показує Logstash, Elasticsearch та потік даних Kibana

Коли ви маєте справу з дуже великими обсягами даних, ви можете додати Kafka або RabbitMQ перед конвеєром для буферизації та стійкості.

Для додаткової безпеки зворотний проксі-сервер, такий як Nginx, можна розмістити перед стеком.

Архітектура ELK Stack з додаванням Beats для збору даних

З огляду на архітектуру, у наступних розділах детальніше розглядається кожен продукт з відкритим кодом у стеку.

Що таке Elasticsearch?

Elasticsearch — це a База даних NoSQL на основі пошукової системи Lucene та побудованої з використанням RESTful API. Вона пропонує просте розгортання, високу надійність та просте керування, а також централізовано зберігає всі ваші дані, щоб ви могли виконувати розширені запити та швидкий пошук документів.

Elasticsearch також дозволяє зберігати, шукати та аналізувати великі обсяги даних. Найчастіше його використовують як базовий механізм, що забезпечує роботу програм із вимогливими вимогами до пошуку.

Оскільки він додає аналітику та багато розширених функцій на додаток до швидкого пошуку, Elasticsearch широко використовується на пошукових платформах для сучасних веб- та мобільних додатків.

Особливості Elasticsearch

Elasticsearch пропонує багатий набір можливостей для індексації та пошуку даних:

  • Пошуковий сервер з відкритим кодом, написаний на Java.
  • Здатний індексувати будь-які різнорідні дані.
  • Надає веб-інтерфейс REST API з виводом JSON.
  • Повнотекстовий пошук.
  • Пошук майже в режимі реального часу (NRT).
  • Шардоване, репліковане, з можливістю пошуку сховище JSON-документів.
  • Розподілене сховище документів без схем, на основі REST та JSON.
  • Підтримка кількох мов та геолокації.

Переваги Elasticsearch

  • Зберігає дані без схеми, а також може створювати схему для ваших даних.
  • Дозволяє маніпулювати записами по одному за допомогою багатодокументних API.
  • Підтримує фільтрацію та запити даних для отримання аналітичних даних.
  • Базується на Apache Lucene та надає RESTful API.
  • Забезпечує горизонтальну масштабованість, надійність та багатокористувацькі можливості для індексації в режимі реального часу та швидшого пошуку.
  • Допомагає масштабувати як вертикально, так і горизонтально.

У таблиці нижче пояснюються ключові терміни, з якими ви зіткнетеся під час роботи з Elasticsearch:

Термін Використання
Cluster Кластер — це набір вузлів, які разом зберігають ваші дані та забезпечують комбіновані можливості індексації та пошуку.
вузол Вузол — це окремий екземпляр Elasticsearch. Він створюється під час запуску екземпляра Elasticsearch.
індекс Індекс — це набір документів зі схожими характеристиками, такими як дані клієнтів або каталог продуктів. Він корисний для операцій індексування, пошуку, оновлення та видалення, і ви можете визначити багато індексів в одному кластері.
Документ Документ – це базова одиниця інформації, яку можна індексувати. Він виражається як пара ключ-значення JSON, і кожен документ пов'язаний з типом та унікальним ідентифікатором.
осколок Кожен індекс можна розділити на кілька шардів для розподілу даних. Шард – це атомарна частина індексу, яку можна розподілити по кластеру в міру додавання нових вузлів.

Що таке Logstash?

Logstash — це інструмент конвеєра збору даних стеку. Він збирає вхідні дані та передає їх до Elasticsearch, збираючи всі типи даних з різних джерел та роблячи їх доступними для подальшого використання.

Logstash може об’єднати дані з різних джерел та нормалізувати їх у вибраних вами місцях зберігання. Це дозволяє вам очистити та демократизувати всі ваші дані для широкого спектру випадків використання аналітики та візуалізації.

Він складається з трьох компонентів:

  • Вхідний сигнал: передає логи та перетворює їх у машинозчитуваний формат.
  • Фільтри: набір умов, що виконують певну дію над подією.
  • вихід: особа, яка приймає рішення та маршрутизує кожну оброблену подію або журнал.

Особливості Logstash

Logstash включає кілька функцій, які роблять обробку журналів гнучкою:

  • Події проходять через кожну фазу за допомогою внутрішніх черг.
  • Дозволяє використовувати різні параметри для ваших журналів.
  • Підтримує фільтрацію та парсинг ваших журналів.

Переваги Logstash

  • Централізує обробку ваших даних.
  • Аналізує широкий спектр структурованих та неструктурованих даних і подій.
  • Пропонує плагіни для підключення до багатьох типів джерел вхідного сигналу та платформ.

Що таке Кібана?

Kibana – це інструмент візуалізації даних, який доповнює ELK Stack. Він використовується для візуалізації документів Elasticsearch і допомагає розробникам швидко отримати уявлення про свої дані за допомогою інтерактивних діаграм, геопросторових даних і графіків, що спрощують розуміння складних запитів.

Ви можете використовувати Kibana для пошуку, перегляду та взаємодії з даними, що зберігаються в індексах Elasticsearch. Це також допомагає виконувати розширені операції. аналіз даних та представляти свої дані у вигляді різноманітних таблиць, діаграм та карт.

Kibana підтримує кілька методів пошуку ваших даних. Найпоширеніші типи пошуку перелічені нижче:

Тип пошуку Використання
Вільний текстовий пошук Використовується для пошуку певного рядка.
Пошуки на рівні поля Використовується для пошуку рядка в певному полі.
Логічні твердження Використовується для об'єднання пошукових запитів у логічне твердження.
Пошуки близькості Використовується для пошуку термінів у межах близькості певних символів.

Kibana також пропонує низку потужних функцій для дослідження індексованих даних:

  • Потужна панель інструментів для фронтенду, яка візуалізує індексовану інформацію з кластера Elasticsearch.
  • Дозволяє здійснювати пошук індексованої інформації в режимі реального часу.
  • Дозволяє шукати, переглядати та взаємодіяти з даними, що зберігаються в Elasticsearch.
  • Виконує запити до даних та візуалізує результати у вигляді діаграм, таблиць та карт.
  • Налаштовувана панель інструментів для нарізання та аналізу Logstash журнали в Elasticsearch.
  • Надає історичні дані у вигляді графіків, діаграм тощо.
  • Пропонує панелі інструментів у режимі реального часу, які легко налаштувати.

Переваги та недоліки Кібани

Як і будь-який інструмент, Kibana має явні сильні сторони, які пояснюють її популярність:

  • Проста візуалізація даних.
  • Повністю інтегрований з Elasticsearch.
  • Виступає як спеціалізований інструмент візуалізації.
  • Пропонує аналіз у режимі реального часу, побудову діаграм, узагальнення та налагодження.
  • Забезпечує інтуїтивно зрозумілий, зручний інтерфейс користувача.
  • Дозволяє ділитися знімками журналів, які ви шукали.
  • Дозволяє зберігати та керувати кількома панелями інструментів.

Також слід пам’ятати про кілька обмежень:

  • Він працює лише з Elasticsearch як джерелом даних.
  • Створення та налаштування складних інформаційних панелей може передбачати крутий процес навчання.

Чому аналіз журналу?

У хмарних інфраструктурах продуктивність та ізоляція дуже важливі.

Продуктивність віртуальних машин у хмарі може змінюватися залежно від конкретних навантажень, середовищ та кількості активних користувачів, тому надійність та збій вузлів можуть стати суттєвими проблемами.

A платформа управління журналами може контролювати всі ці проблеми. Він також може обробляти журнали операційної системи, журнали веб-сервера Nginx та IIS для аналізу трафіку, журнали програм та журнали, що генеруються на AWS (Amazon Web-сервіси).

Зрештою, управління журналами допомагає DevOps інженери та системні адміністратори приймають кращі рішення на основі даних. Саме тому аналіз журналів за допомогою Elastic Stack або аналогічних інструментів став важливим.

ELK проти Splunk

Поширене питання полягає в тому, як ELK Stack порівнюється з Сплин, популярна комерційна альтернатива. У таблиці нижче наведено основні відмінності:

ELK Сплин
ELK — це інструмент з відкритим кодом. Splunk є комерційним інструментом.
ELK не пропонує Solaris портативність завдяки Kibana. Splunk пропонує Solaris портативність.
Швидкість обробки суворо обмежена. Забезпечує точну та швидку обробку.
ELK — це технологічний стек, створений на основі комбінації Elasticsearch, Logstash, та Кібана. Splunk — це власний інструмент, який пропонує як локальні, так і хмарні рішення.
В ELK пошук, аналіз та візуалізація можливі лише після налаштування стеку. Splunk — це повноцінний пакет для керування даними, готовий до використання.
ELK пропонує обмежену вбудовану інтеграцію з іншими інструментами. Splunk корисний для налаштування інтеграції з іншими інструментами.

Приклади з практики

Багато відомих компаній покладаються на ELK Stack для масштабного ведення журналів та аналітики. Наведені нижче приклади показують, як він використовується у виробництві.

Netflix

Netflix значною мірою покладається на ELK Stack для моніторингу та аналізу журналів безпеки своїх операцій з обслуговування клієнтів. Платформа дозволяє Netflix індексувати, зберігати та шукати документи в більш ніж п'ятнадцяти кластерах, що складаються приблизно з 800 вузлів.

LinkedIn

Професійний мережевий сайт LinkedIn використовує ELK Stack для моніторингу продуктивності та безпеки. Його команда інтегрувала ELK з Kafka для обробки навантаження в режимі реального часу, а операція охоплює понад 100 кластерів у шести центрах обробки даних.

Tripwire

Tripwire, світовий постачальник рішень для управління інформацією та подіями безпеки (SIEM), використовує стек ELK для підтримки аналізу журналів інформаційних пакетів.

Medium

Medium, популярна платформа для публікації блогів, використовує ELK Stack для налагодження проблем у продакшені та виявлення... DynamoDB гарячі точки. Цей стек допомагає компанії підтримувати 25 мільйонів унікальних читачів і тисячі нових публікацій щотижня.

Переваги та недоліки стеку ELK

Переваги

Стек ELK пропонує кілька переваг, які пояснюють його широке впровадження:

  • Найкраще це працює, коли журнали з різних програм підприємства сходяться в один екземпляр ELK.
  • Це надає глибокий аналіз з одного екземпляра та усуває необхідність входити в сотні окремих джерел даних.
  • Швидке встановлення на місці.
  • Легко розгортається та масштабується як вертикально, так і горизонтально.
  • Elastic пропонує багато мовних клієнтів, включаючи Ruby, Python, PHP, Perl, .NET, Java та JavaСценарій.
  • Бібліотеки доступні для багатьох мов програмування та сценаріїв.

Недоліки

Незважаючи на свої переваги, ELK Stack має кілька недоліків, які слід враховувати:

  • Керування різними компонентами може стати складним, коли ви переходите до складнішої конфігурації.
  • Існує справжня крива навчання, тому будьте готові до певних спроб і помилок, коли набуватимете досвіду.

Поширені запитання

Beats — це легкі передавальні системи даних з відкритим кодом, що встановлюються як агенти на серверах. Filebeat пересилає файли журналів, а Metricbeat збирає системні метрики. Вони надсилають дані безпосередньо до Elasticsearch або через LogstashДодавання Beats для збору даних призвело до того, що Elastic перейменував стек ELK на Elastic Stack.

ELK розшифровується як Elasticsearch, Logstash, та Kibana. Коли Elastic додав Beats, своє сімейство легких постачальників даних, об'єднаний продукт було перейменовано на Elastic Stack. Таким чином, Elastic Stack описує ті ж три інструменти плюс Beats та додаткові функції, такі як безпека та машинне навчання.

Так. Elasticsearch, Logstash, а Kibana можна завантажити безкоштовно. З 2024 року Elastic пропонує Elasticsearch та Kibana за ліцензією з відкритим кодом AGPLv3, поряд з SSPL та ліцензією Elastic. Розширені функції, такі як машинне навчання та сповіщення, вимагають платної підписки.

Elasticsearch — це гнучке за схемою, документоорієнтоване сховище NoSQL, побудоване на Apache Lucene та запитуване через REST API. Реляційні бази даних використовують фіксовані таблиці, рядки та SQL з транзакціями ACID. Elasticsearch оптимізовано для повнотекстового пошуку та аналітики майже в режимі реального часу, а не для суворої транзакційної узгодженості.

Виробничі вузли зазвичай потребують щонайменше 16 ГБ оперативної пам'яті, при цьому купа JVM встановлена ​​приблизно на 50 відсотків пам'яті та не перевищує приблизно 30 ГБ. Невеликі тестові або автономні установки працюють з меншим обсягом. Beats та Logstash потребує набагато менше ресурсів, ніж Elasticsearch.

Грок — це Logstash Плагін фільтра, який розбирає неструктуровані рядки журналу на структуровані, іменовані поля, використовуючи шаблони повторного використання, побудовані на регулярних виразах. Він широко використовується дляtracпозначки часу, IP-адреси та коди стану з журналів веб-сервера та програм перед їх індексацією в Elasticsearch.

Elasticsearch включає вбудоване машинне навчання, яке моделює нормальну поведінку журналів і автоматично позначає аномалії. Ці функції AIOps групують схожі повідомлення, виявляють незвичайні обсяги та пришвидшують аналіз першопричин, скорочуючи середній час вирішення проблеми. Інженерам все одно слід переглядати позначені події, перш ніж діяти на них.

Так. Такі інструменти, як ChatGPT та Копілот GitHub може чернетку Logstash шаблони grok, Elasticsearch Query DSL та налаштування Kibana з короткого запиту. Завжди тестуйте згенеровані конвеєри, оскільки ШІ може посилатися на застарілі назви полів або нерекомендований синтаксис.

Підсумуйте цей пост за допомогою: