Я запускаю службы в локальном кластере через Docker Compose. Два докер-контейнера взяты из примера elasticsearch. Я получаю следующую ошибку в консоли от elasticsearch:
elasticsearch_instance |
{
"@timestamp":"2024-07-11T07:39:09.788Z",
"log.level": "WARN",
"message": "this node is locked into cluster UUID [fxwqYYLsTdy-C7AmpycuLA] but [cluster.initial_master_nodes] is set to [35794ba3f6c5]; remove this setting to avoid possible data loss caused by subsequent cluster bootstrap attempts",
"ecs.version": "1.2.0",
"service.name": "ES_ECS",
"event.dataset": "elasticsearch.server",
"process.thread.name": "main",
"log.logger": "org.elasticsearch.cluster.coordination.ClusterBootstrapService",
"elasticsearch.node.name": "35794ba3f6c5",
"elasticsearch.cluster.name": "docker-cluster"
}
Мой docker-compose.yml выглядит так:
elasticsearch:
container_name: "elasticsearch_instance"
image: elasticsearch:8.3.2
environment:
- discovery.type=single-node
- ES_JAVA_OPTS=-Xms1g -Xmx1g
- xpack.security.enabled=false
volumes:
- es_data:/usr/share/elasticsearch/data
- /home/xxx/configs/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml:ro
ports:
- 9200:9200
networks:
elastic-network:
aliases:
- myDb
kibana:
image: kibana:8.3.2
ports:
- target: 5601
published: 5601
depends_on:
- elasticsearch
networks:
elastic-network:
driver: bridge
Идентификатор «35794ba3f6c5» выше — это идентификатор докер-контейнера. Идентификатор «fxwqYYLsTdy-C7AmpycuLA», похоже, создается с помощью elasticsearch заново при каждом запуске. Предупреждение подразумевает, что для устранения этого предупреждения не следует устанавливать параметрuster.initial_master_nodes. Однако я нигде не устанавливал/не применял эту настройку.
Мой elasticsearch.yml выглядит так:
$ cat /usr/share/elasticsearch/config/elasticsearch.yml
cluster.name: "docker-cluster"
network.host: 0.0.0.0
xpack.security.enabled: false
Кто-нибудь знает, если решение состоит в том, чтобы отключить кластер.initial_master_nodes, или есть другое решение?
Эффект, который я вижу, заключается в том, что журналы не отображаются в elasticsearch, и я подозреваю, что это из-за этого предупреждения, поскольку оно предлагает удалить этот параметр, чтобы избежать возможной потери данных.
Решением было удалить все существующие докер-контейнеры, используя:
Докер-контейнер чернослив
Чтобы удалить содержимое папки данных в
/usr/доля/elasticsearch/данные
это можно сделать, изменив имя «es_data» на другое, например, «es_data1». В противном случае кажется, что данные сохраняются.