20.05.2025

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

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

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

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

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

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

Установка Java

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

Установка на 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-стек использует следующие порты:

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

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

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

Важно:

Установка 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. В списке документов должны отображаться тестовые логи.