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

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.
Коли ви маєте справу з дуже великими обсягами даних, ви можете додати Kafka або RabbitMQ перед конвеєром для буферизації та стійкості.
Для додаткової безпеки зворотний проксі-сервер, такий як Nginx, можна розмістити перед стеком.
З огляду на архітектуру, у наступних розділах детальніше розглядається кожен продукт з відкритим кодом у стеку.
Що таке 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 використовує 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 має кілька недоліків, які слід враховувати:
- Керування різними компонентами може стати складним, коли ви переходите до складнішої конфігурації.
- Існує справжня крива навчання, тому будьте готові до певних спроб і помилок, коли набуватимете досвіду.


