Пост

Elasticsearch + Kibana: кластер из 3 нод

Elasticsearch + Kibana: кластер из 3 нод

Приветcтвую 👋! Пошаговая инструкция по установке и настройке Elasticsearch и Kibana для кластера из трёх нод.

1. Предварительная подготовка

На каждом сервере:

1
2
sudo apt update && sudo apt upgrade -y   # Обновление пакетов
sudo apt install openjdk-11-jdk -y       # Установка Java (требуется для Elasticsearch)

2. Установка Elasticsearch

На каждом из трёх серверов:

  1. Добавьте ключ репозитория:
    1
    
    wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
    
  2. Добавьте репозиторий:
    1
    
    sudo sh -c 'echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" > /etc/apt/sources.list.d/elastic-7.x.list'
    
  3. Установите Elasticsearch:
    1
    2
    
    sudo apt update
    sudo apt install elasticsearch -y
    
  4. Настройте кластер: откройте /etc/elasticsearch/elasticsearch.yml и отредактируйте параметры:
    1
    2
    3
    4
    5
    6
    7
    
    cluster.name: my-cluster
    node.name: "node-1"           # Для второй ноды "node-2", для третьей "node-3"
    node.master: true
    node.data: true
    network.host: <IP-адрес_ноды>
    discovery.seed_hosts: ["<IP-адрес_нода_1>", "<IP-адрес_нода_2>", "<IP-адрес_нода_3>"]
    cluster.initial_master_nodes: ["node-1", "node-2", "node-3"]
    
  5. Запустите и настройте автозапуск:
    1
    2
    
    sudo systemctl enable elasticsearch
    sudo systemctl start elasticsearch
    
  6. Повторите эти шаги на всех трёх серверах, меняя node.name и network.host для каждой ноды.

Пример конфигурации для одной ноды:

1
2
3
4
5
6
7
cluster.name: gcek-cluster
node.name: gcEKnode1
path.data: /data2/elasticsearch
path.logs: /data2/elasticsearch/logs/
network.host: 10.10.4.61
discovery.seed_hosts: ["10.10.4.61", "10.10.4.62", "10.10.4.63"]
cluster.initial_master_nodes: ["gcEKnode1", "gcEKnode2", "gcEKnode3"]

Важно для Kibana:

  • Если не используете безопасность:
    1
    2
    3
    4
    
    xpack.security.enabled: false
    xpack.watcher.enabled: false
    xpack.ml.enabled: false
    xpack.monitoring.collection.enabled: false
    
  • Если используете безопасность:
    1
    2
    3
    4
    5
    6
    7
    8
    
    xpack.security.enabled: true
    xpack.security.enrollment.enabled: true
    xpack.security.http.ssl.enabled: false
    xpack.security.transport.ssl.enabled: true
    xpack.security.transport.ssl.verification_mode: certificate
    xpack.security.transport.ssl.client_authentication: required
    xpack.security.transport.ssl.keystore.path: elastic-certificates.p12
    xpack.security.transport.ssl.truststore.path: elastic-certificates.p12
    

3. Установка Kibana

Обычно на одном из серверов или отдельной машине:

1
sudo apt install kibana -y

Настройте /etc/kibana/kibana.yml:

1
2
3
4
5
server.port: 5601
server.ssl.enabled: false
elasticsearch.hosts: ["http://10.10.4.61:9200","http://10.10.4.62:9200","http://10.10.4.63:9200"]
elasticsearch.username: "kibana_system"
elasticsearch.password: "<ваш_пароль>"

Запустите и настройте автозапуск:

1
2
sudo systemctl enable kibana
sudo systemctl start kibana

Kibana будет доступна по адресу http://10.10.4.61:5601

4. Проверка состояния кластера

Проверьте состояние кластера:

1
curl -X GET "http://10.10.4.61:9200/_cluster/health?pretty"

Если статус green — все ноды работают корректно.

Итоговые параметры и доступность

  • Elasticsearch слушает на порту 9200
  • Kibana доступна на порту 5601
  • Откройте необходимые порты в фаерволе

Безопасность и пользователи

  • Защитить ноды: https://www.elastic.co/guide/en/elasticsearch/reference/8.15/security-basic-setup.html#encrypt-internode-communication
  • Создать пользователей: https://discuss.elastic.co/t/how-to-enable-kibana-system-user-for-kibana-application/263949/3

Используйте эти ссылки для настройки безопасности и пользователей.


Если потребуется актуализировать версии или команды — проверьте официальную документацию: