3.8 Кластеризация

Кластеризация Сервера безопасности реализуется путем кластеризации БД Elasticsearch.

Настройка выполнена на примере 3-х узлов, при этом настроен кворум: 2 узла минимум.

3.8.1 Настройка Elasticsearch

Файл /etc/elasticsearch/elasticsearch.yml содержащий настройки для узла es-c1:

path.data: /data/elastic/data
path.logs: /data/elastic/logs
network.host: 0.0.0.0
http.port: 11111
cluster.name: cluster-tvdis
network.publish_host: es-c1
node.name: es-c1
node.master: true
node.data: true
discovery.zen.minimum_master_nodes: 2
discovery.zen.ping.unicast.hosts: ["es-c1", "es-c2", "es-c3"]

При этом об IP-адресах всех узлов es-c[123] должны быть записи в DNS или в файле /etc/hosts.

Далее выполнить команду:

service elasticsearch restart

Далее необходимо развернуть базу с помощью tvdisa-init, действуя по инструкции как для одиночной инсталяции tvdis, например, начиная с init data.json в Build, install and configure TVDIS.

3.8.2 Диагностика

Диагностика, позволяющая выявить источник проблем, проводится в следующей последовательности:

  1. Если ранее на машине была другая база es (например, некластерная), то её необходимо удалить:

    service elasticsearch stop
    rm -rf /data/elastic/data/
    mkdir /data/elastic/data/
    chown elasticsearch /data/elastic/data/
    service elasticsearch restart
    
  2. Java имеет свойство переходить на ipv6.

Если с этим возникают проблемы, то необходимо указать принудительное использование IPv4. В файле /etc/elasticsearch/jvm.options пропишите:

-Djava.net.preferIPv4Stack=true
  1. Проверить, какой протокол «слушает» Elasticsearch:

    `netstat -tunlp | grep java`
    
  2. Проверить статус кластера:

    **`curl -XGET 'http://localhost:11111/_cluster/health?pretty`**
    
  3. Для успешной кластеризации должны отображаться пакеты на порту 9300 (обмен между серверами).