BK
мая 20, 2025
Обновлено мая 20, 2025

Установка и развертывание ELK-стэка

ELK

ELK-стек — это мощный набор инструментов для сбора, хранения, анализа и визуализации данных, который стал незаменимым помощником для разработчиков, DevOps-инженеров и аналитиков. Его название образовано из первых букв трех ключевых компонентов:

  • Elasticsearch — распределенная поисковая система и хранилище данных, способное обрабатывать огромные объемы информации в реальном времени.
  • Logstash — инструмент для сбора, фильтрации и преобразования данных из различных источников (логи, метрики, события).
  • Kibana — веб-интерфейс для визуализации данных, создания дашбордов и интерактивного анализа.

Если вы когда-либо сталкивались с необходимостью централизованного сбора логов, мониторинга работы приложений или быстрого поиска проблем в распределенной системе — ELK идеально подходит для этих задач. Он позволяет:

  • Агрегировать логи с сотен серверов в одном месте.
  • Находить ошибки в приложениях за секунды с помощью полнотекстового поиска Elasticsearch.
  • Строить графики и отчеты в Kibana для анализа производительности.

Подготовка окружения

Перед установкой ELK-стэка важно подготовить сервер или виртуальную машину. Ниже — минимальные требования и шаги для настройки базового окружения.

Требования к системе

  • Оперативная память (RAM):
    • 2 ГБ (рекомендуется 4 ГБ для тестовой среды).
  • Процессор (CPU):
    • 2 ядра.
  • Дисковое пространство:
    • 10 ГБ (зависит от объема данных).
  • Операционная система:
    • Linux (Ubuntu 22.04/Debian 11, CentOS 7/8).
    • macOS (для локальной разработки).
    • Windows (не рекомендуется для production).

Установка Java

Elasticsearch и Logstash требуют Java. Рекомендуемая версия:

  • Java 17 (для Elasticsearch 8.x).

Установка на Ubuntu/Debian

sudo apt update

sudo apt install openjdk-17-jdk

Проверка версии:

java -version
# Вывод должен содержать: "openjdk 17.0.X"

Установка на CentOS:

sudo yum install java-17-openjdk

Настройка сетевых портов

ELK-стек использует следующие порты:

  • Elasticsearch:
    • 9200 (HTTP-доступ для API и клиентов).
    • 9300(внутренняя коммуникация между узлами кластера).
  • Kibana:
    • 5601 (веб-интерфейс).
  • Logstash:
    • 5044 (прием данных, например, от Filebeat).

Открытие портов на Linux (если включен фаервол):

sudo ufw allow 9200
sudo ufw allow 5601
sudo ufw allow 5044
sudo ufw reload

Проверка доступа

  • Убедитесь, что: Сервер имеет доступ в интернет (для загрузки пакетов).
  • Нет конфликтов с другими сервисами на портах 9200, 5601, 5044.
  • Если вы используете облачный хостинг (AWS, DigitalOcean и т.д.), проверьте правила Security Groups.

Важно:

  • Настройка network.host: 0.0.0.0 в Elasticsearch (см. следующий раздел) открывает доступ к нему из любой сети. Не используйте это в продакшене без фаервола!
  • Для работы в локальной сети можно ограничиться network.host: localhost.

Установка ELK-стэка

Ниже приведены пошаговые инструкции для установки Elasticsearch, Logstash и Kibana на ОС Ubuntu/Debian. Для других систем (CentOS, macOS) команды будут аналогичными, но с использованием соответствующих пакетных менеджеров (например, `yum` вместо `apt`).

Установка Elasticsearch

Добавление репозитория Elastic:

# Импорт GPG-ключа Elastic
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo gpg --dearmor -o /usr/share/keyrings/elastic.gpg

# Добавление репозитория для Elasticsearch 8.x
echo "deb [signed-by=/usr/share/keyrings/elastic.gpg] https://artifacts.elastic.co/packages/8.x/apt stable main" | sudo tee /etc/apt/sources.list.d/elastic-8.x.list
sudo apt update

Установка Elasticsearch

sudo apt install elasticsearch

Базовая настройка

Отредактируйте файл конфигурации:

sudo nano /etc/elasticsearch/elasticsearch.yml

Добавление строк:

cluster.name: my-elk-cluster
network.host: 0.0.0.0 # Для доступа извне (не использовать в продукте!)
discovery.type: single-node # Режим для одного узла

Запуск и проверка

sudo systemctl daemon-reload
sudo systemctl enable elasticsearch
sudo systemctl start elasticsearch

# Проверка работы
curl -X GET "http://localhost:9200"
# Ответ должен содержать информацию о кластере, например:
# {
# "name" : "your-hostname",
# "cluster_name" : "my-elk-cluster",
# ...
# }

Установка Logstash

Установка пакета

sudo apt install logstash

Создание конфигурационного файла

Создайте файл /etc/logstash/conf.d/basic.conf:

sudo nano /etc/logstash/conf.d/basic.conf

Запуск Logstash

sudo systemctl enable logstash
sudo systemctl start logstash

Установка Kibana

Установка пакета

sudo apt install kibana

Настройка подключения к Elasticsearch

Откройте файл конфигурации:

sudo nano /etc/kibana/kibana.yml

Раскомментируйте/добавьте:

server.host: "0.0.0.0" # Доступ из браузера
elasticsearch.hosts: ["http://localhost:9200"]

Запуск Kibana

sudo systemctl enable kibana
sudo systemctl start kibana

Проверка доступа

Откройте в браузере:

http://<ваш-IP-адрес>:5601

Интерфейс Kibana должен загрузиться.

Проверка работы стека

Генерация тестовых логов

echo "Test log entry: ELK is working!" | sudo tee -a /var/log/syslog

Создание индекса в Kibana

  1. Перейдите в Management → Stack Management → Data Views → Create Data View.
  2. В поле Index pattern введите logstash-*.
  3. Нажмите Create Data View.

Просмотр данных

  1. Перейдите в Analytics → Discover.
  2. Выберите созданный Data View (logstash-*).
  3. В списке документов должны отображаться тестовые логи.
Оценка:
5 из 5
Аverage rating : 5
Оценок: 1
050000 г. Алматы пр. Сейфуллина, д. 502
+7 (777) 555-36-66
ООО «ИТГЛОБАЛКОМ ЛАБС»

Вам также может быть интересно...