Установка ELK (ElasticSearch/Logstash/Kibana) в Unix/Linux

Установка ELK (ElasticSearch/Logstash/Kibana) в Unix/Linux

Для тех, кто не знает, Elastic стек (ELK стек) — это инфраструктурная программа, состоящая из нескольких компонентов, разработанных компанией Elastic.

Компоненты включают:

  • Elasticsearch — Высокомасштабируемая поисковая система полнотекстового поиска и аналитики данных с открытым исходным кодом. Данная утилита позволяет быстро (а главное, — режиме реального времени) хранить, искать и анализировать большие объемы данных. Обычно он используется в качестве базового механизма / технологии, которая обеспечивает  помощь приложениям со сложными функциями поиска.
  • Logstash — Механизм сбора событий, который обеспечивает конвейер в реальном времени. Он может принимать данные из нескольких источников и преобразовывать их в документы JSON.
  • Kibana — Утилита с открытым исходным кодом которая визуализирует работу Elasticsearch. Он используется для взаимодействия с данными, хранящимися в индексах Elasticsearch. Kibana имеет веб-интерфейс, который позволяет быстро создавать и обмениваться динамическими панелями мониторинга, отображающими изменения в запросах Elasticsearch в реальном времени.
  • FileBeat — Утилита с открытым исходным кодом, которая работает в качестве агентов на серверах, для отправки различных типов оперативных данных в Elasticsearch.

И сейчас я расскажу как можно установить сие чудо.

Имеется:

  • ELK — 192.168.13.195 — собственно сам сервер.
  • Filebeats — 192.168.13.150 — взял одну машину в качестве примера.

Установка ELK (ElasticSearch/Logstash/Kibana) в Unix/Linux

Я уже описывал установку некоторых компонентов и сейчас я объединю  воедино. И начну с установки компонентов.

У меня не будет сильно много нод ( я не вижу смысла в этом т.к я использую ELK для тестовых целей) и я буду использовать всего лишь 1 машину. Это не столь важно, т.к можно настроить и на нескольких. Для примеров, хватит с головой.

Как будет работать ELK? А вот скриншот того как это выглядит:

Работа elk в Unix/Linux

Работа elk в Unix/Linux

Установка Elasticsearch в Unix/Linux

Установка хорошо расписана в моей теме:

Установка ElasticSearch (один сервер) кластер в Unix/Linux

Если ES уже имеется в системе, пропускаем данный шаг и идем далее.

Установка Logstash в Unix/Linux

Установка хорошо расписана в моей теме:

Установка Logstash в Unix/Linux

Если Logstash уже имеется в системе, пропускаем данный шаг и идем далее.

Установка Kibana в Unix/Linux

Установка хорошо расписана в моей теме:

Установка Kibana в Unix/Linux

Если Kibana уже имеется в системе, пропускаем данный шаг и идем далее.

Настройка ELK в Unix/Linux

Пришло время настроить все это дело и запустить…

-==Настройка ElasticSearch===-

Настроим «memory lock» для различных типов ОС.

Если имеется Systemd на хосте:

Раскомментируйте строку:

Сохраните и выйдите.

Открываем еще один файл:

И раскомментируйте строку (60-я строка):

Еще открываем один файл:

И прописываем:

Запускаем:

И перезапускаем Elasticsearch:

Если имеется SysV на хосте:

Открываем:

Раскомментируйте строку:

Сохраните и выйдите.

Еще открываем один файл:

И прописываем:

И перезапускаем Elasticsearch:

Если имеется Upstart на хосте:

Открываем:

Прописываем:

Еще открываем файл:

Раскомментируйте строку:

Сохраните и выйдите.

Еще открываем один файл:

И прописываем:

И перезапускаем Elasticsearch:

Тестирование!

И проверяем чтобы было:

Проверим, открылся ли порт:

Проверим работу:

ИЛИ:

PS: Если поменяли IP, то стоит использовать именно его! И конечно же, не забываем менять все это дело в конфигурации.

Идем дальше.

-==Настройка LogStash===-

Если у вас нет DNS, то придется добавить свой собственный IP-адрес вашего ELK-сервера в subjectAltName (SAN). Это позволит вашим серверам собирать логи. И для этого, потребуется ключик.

Необходимо создать новый SSL сертификат. Сначала отредактируйте файл:

В [ v3_ca ] разделе, прописываем:

Где, localhost — Это ваш ИП адрес сервера с логстешем.

……….СПОСОБ 1 — использовать IP……….

Генерируем сертификат:

У меня это — 192.168.13.195!

……….СПОСОБ 2 — использовать доменное имя……….

Где:

ELK_domain_name — Ваше доменное имя!

Перезапустим:

Идем дальше.

Настраиваем input, output, filter файлы для Logstash.

-===INPUT==-

И он имеет следующее содержание:

-===OUTPUT==-

И он имеет следующее содержание:

-===FILTER==-

И он имеет следующее содержание:

Проверьте файлы конфигурации Logstash:

И перезапускаем службу:

Идем дальше.

-==Настройка Kibana===-

Редактируем конфиг:

Приводим к такому виду:

Перезапустим:

Смотрим, открылся ли порт:

Теперь установим nginx и настроим его как обратный прокси — это позволит заходить на кибану с публичного IP-адреса.

Подключаем EPEL:

Включить EPEL репозиторий

И выполняем:

И создаем конфиг:

И прописываем:

PS: Для более лучшей защиты, рекомендуют использовать SSL (т.к я его сгенерировал выше, можно заюзать). Под стройкой listen 80, прописываем:

Но это самоподписанный сертификат и он будет обозначен красным цветом, по этому, можно заюзать следующую статью:

Установка certbot для получения сертификата от letsencrypt в Unix/Linux

Создать новый файл аутентификации:

Пере(запускаем) службу:

Смотрим, открылся ли порт:

Идем дальше.

Установка Filebeat в Unix/Linux

Установка хорошо расписана в моей теме:

Установка Filebeat в Unix/Linux

Как я и говорил, он служит для отправки логов на logstash. Я на этом завершаю свою статью «Установка ELK (ElasticSearch/Logstash/Kibana) в Unix/Linux».

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *