Введение, установка и настройка ELK Stack

Логирование ― один из ключевых процессов разработки ПО. Логи содержат статистику посещения сайта, помогают выявлять неполадки и ошибки, а также предупреждают действия злоумышленников. Во времена мультизадачности объем лог-файлов растет в геометрической прогрессии ― анализировать их становится все труднее. ELK Stack ― одно из удачных решений для оптимизации работы с логами.

ELK Stack ― что это?

ELK Stack появился после объединения трех отдельных продуктов ― Elasticsearch, Logstash и Kibana ― в один проект. Что интересно, ELK Stack на wiki до сих пор не описан как единое целое. Сервис дает описание каждой составляющей по отдельности, указывая, что они работают в связке.  Чтобы понять сущность ELK Stack и что это такое в принципе, рассмотрим подробнее каждую составляющую.

Elasticsearch ― RESTful-система распределенного поиска и аналитики информации, ядро проекта. Logstash ― инструмент сбора данных, позволяющий собирать их, преобразовывать и отправлять в желаемое место назначения. Kibana ― программа для просмотра журналов и событий через интерактивные диаграммы и графики. Благодаря open source все три системы можно модифицировать. В 2015 году, благодаря фидбэку от пользователей, к тройке игроков добавился еще один компонент ― ELK Beats.

Какую роль играет Beats в Elastic Stack?

Программное обеспечение Beats в ELK Stack ― это набор легких одноцелевых отправителей различных типов данных. Их преимущество ― низкие требования к ресурсам устройства. Пользователь может написать свой Beats для Elasticsearch или использовать готовые решения:

  • Filebeat (для логов);
  • Winlogbeat (логи в Windows);
  • Packetbeat (сетевые учетные данные);
  • Metricbeat (статистика ЦПУ и память);
  • Auditbeat (сбор данных инфраструктуры аудита Linux и проверка целостности файлов);
  • Heartbeat (мониторинг доступности сервисов).

После объединения Beats с Logstash, Elasticsearch и Kibana создатели решили не заморачиваться дальше с аббревиатурами и переименовали ELK Stack в Elastic Stack. Однако до сих пор пользователи называют продукт привычным ELK. После добавления Beats в Elastic Stack программа стала более интегрированной, удобной и простой в использовании. 

ELK Stack установка и настройка возможна на разных платформах. Инструмент можно также использовать при работе с Docker, что добавляет эффективности практике DevOps.

ELK Stack Docker

Героя нашей статьи, ELK Stack, легко запускать в контейнерах. Чтобы агрегировать контейнерные логи, нужно объединить их с коллектором Filebeat. А запускать и контролировать мультиконтейнерное приложение будет сервис Docker Compose.

ELK Stack with Filebeat Docker Compose

Распаковка ELK Stack install в Докере предполагает следующие шаги:

  • создаем папку проекта;
  • в папке заводим файл docker-compose.yml;
  • настраиваем filebeat из библиотеки Docker Hub;
  • поднимаем контейнер (docker-compose up);
  • создаем контейнер с ELK.

Возможны два варианта работы с ELK Stack Docker: оставить существующие настройки или настроить логи под себя. На Docker ELK Stack настройка производится на ОС Linux. Если установлена другая операционная система (Windows, Mac OS X) используйте виртуальную машину на образе Linux.

ELK Stack tutorial: установка на операционных системах

Способы установки ELK Stack на разных операционных системах и конфигурациях отличаются. Но во всех случаях разворачивать программу будем поэтапно, путем последовательной установки Elasticsearch, Logstash и Kibana. Рассмотрим примеры установки на Windows, Centos 7 и Ubuntu 18.04.

zone3000_article-elastic-04

ELK Stack Windows

На компьютере должен быть установлен Java Development Kit (JDK). Дальнейшие шаги:

  • создаем переменную JAVA_HOME
  • скачиваем и распаковываем последнюю версию Elasticsearch; 
  • в Powershell вводим команду c:\elk\elasticsearch\bin\service install;
  • настраиваем параметры в диспетчере служб для Elasticsearch;
  • в ту же папку загружаем Logstash; 
  • запускаем приложение с помощью NSSM (извлекаем туда, куда и все пакеты ELC); 
  • в Powershell прописываем команду c:\elk\nssm\win64\nssm install Logstash;
  • в поле «Arguments» пишем c:\elk\logstash\bin\config.json;
  • кликаем «Install Service». 

После сообщения об успешной установке служба запускается в диспетчере задач на вкладке «Services». Kibana также устанавливается при помощи NSSM, а в Powershell прописывается команда c:\elk\nssm\win64\nssm install Kibana. Трансляция информации из журналов системы и файлов производится коллектором Winlogbeat.

Centos 7 ELK Stack install

Минимальные ELK Stack system requirements для Centos 7― память 4Gb RAM и процессор 2СPU. Ваши действия:

  • на машине должна быть Java;
  • грузим ключ Elasticsearch через команду rpm;
  • добавляем репозиторий, необходимое содержимое и сохраняем;
  • устанавливаем и редактируем config file (раскомментируйте bootstrap.memory_lock: true, network.host: (используем localhost) и http.port: (9200);
  • меняем sysconfig (vi /etc/sysconfig/elasticsearch);
  • в раскомментированном MAX_LOCKED_MEMORY добавляем unlimited (после символа =);
  • перезагружаемся.

Пакеты и репозиторий для двух других программ (Logstash, Kibana) идентичны. Нужно импортировать ключи, добавить конфиг репозитория и произвести установку.  Теперь можно проверять, как работает Elastic Stack, и что это даст вашему проекту.

ELK Stack Ubuntu 18.04

Для установки ELK Stack на Ubuntu 18.04 копируем публичный ключ репозитория Elasticsearch и добавляем репозиторий в систему. Устанавливаем, добавляем в автозагрузку и запускаем. Импортировать все необходимые данные можно при помощи отправителя Metricbeat. Проверить работу можно простым путем: выполнить запрос о статусе elasticsearch. Действия по установке Kibana и Logstash идентичны тем, которые описаны в разделе для Centos.

Совместимость ELK Stack с платформами Node.js и AWS

Elastic Stack отлично ладит с Javascript Node.js и Amazon Web Services. Рассмотрим подробнее, как пакет ELK работает с этими сервисами.

ELK Stack Node js

Окружение Node.js предназначено для построения масштабируемых сетевых приложений. В случае с Elastic Stack Node.js будет работать в тесной связке с Filebeat и Logstash. Каждый инструмент выполняет свои функции:

  • Node.js регистрирует файлы в разных форматах (info, warning, error);
  • Filebeat следит за ними и отправляет сообщения на Logstash;
  • файлы проходят через входные фильтры logstash.input.conf и перенаправляются на конечную точку (output.conf).

В последнюю версию приложения Node.js (минимум v10) с помощью команды npm устанавливается Elasticsearch. Подробная инструкция представлена на официальном сайте.

ELK Stack on AWS

Облачная платформа Amazon Web Services вовремя подхватила волну популярности ELK Stack и создала свой продукт ― Amazon Elasticsearch Service. Управляемый сервис упрощает развертывание и пользование Elasticsearch, а также повышает уровень безопасности. Служба предлагает поддержку API-интерфейсов Elasticsearch, встроенный управляемый модуль Kibana, а также интеграцию с Logstash и другими сервисами AWS. 

ELK Stack ― настоящий прорыв в области работы с логами. Тонны полезной информации можно структурировать и выводить на экран в виде графиков и диаграмм в считанные секунды. А самое классное то, что инструмент отлично вписывается в рамки многих операционных систем, платформ и сервисов.

ELK Stack ― это комбинация теперь уже 4-х продуктов с открытым исходным кодом, которая стала отличным решением таких задач как сбор, отправка, хранение и анализ данных, а именно лог-файлов. Каждая составляющая выполняет свою функцию: 

  • E-Elasticsearch ― это RESTful-система распределенного поиска, индексирования и хранения информации;
  • L-Logstash ― инструмент для сбора и обработки данных, который преобразовывает информацию и отправляет в желаемое место назначения;
  • K-Kibana ― отвечает за поиск и визуализацию данных в виде таблиц, графиков, диаграмм;
  • Beats ― легкий сборщик и отправитель различных типов данных.

Так как ELK Stack ― это мощный инструмент для сбора, анализа и хранения логов, среда использования среди IT-специалистов очень широкая:

  • системные администраторы и тестировщики, которые проверяют неполадки и ошибки системы;
  • DevOps-инженеры, вовлеченные в работу над эффективностью и безопасностью разработки ПО;
  • SEO-оптимизаторы, анализирующие поведение посетителей на web-сайте;
  • специалисты, которые проводят технический аудит веб-площадок и многие другие.

Оба продукта считаются топовыми в мире по лог-менеджменту и операционной аналитике данных. Splunk ― платная программа. И это первый минус в сравнении с бесплатной базовой версией ELK Stack.

Открытый исходный код каждого компонента ELK позволяет усовершенствовать и модернизировать функции сервиса под свои потребности. И это еще один плюс в их копилку. Splunk ― это готовое решение.

И третий нюанс: при работе с ELK используются известные языки (Lucene, JSON, Timelion). Splunk написан на своем языке (SPL), и его придется учить пользователю.

ELK Stack ― крутой инструмент сбора и аналитики информации. Главная функция: централизованная система хранения и анализа лог-файлов. Но на этом задачи ELK не ограничиваются. Еще он умеет:

  • агрегировать данные разных систем и формировать показатели для контроля состояния бизнес-процессов;
  • выполнять поиск по разным свойствам товара в интернет-магазинах, объединять их элементы;
  • организовывать системы опросов и анкетирования;
  • анализировать неструктурированную статистическую информацию.

ELK Stack умеет работать с большим количеством данных и делает это супер профессионально.

error: Контент защищен.