我在docker环境中运行的elasticsearch节点有问题。我用docker compose启动它们,几分钟后它们告诉我:超过了flood stage磁盘水印[95%]
我在一个具有相当高存储容量的集群上运行它,并且我已经尝试增加elasticsearch.yml文件中的水印设置,但是仍然得到错误。也许这和码头集装箱的大小有关。
有人知道问题出在哪里吗?非常感谢您的帮助。
docker-compose.yml供参考:
version: '3.4'
services:
es01:
image: docker.elastic.co/elasticsearch/elasticsearch:7.8.1
container_name: es01
environment:
#- discovery.type=single-node
- node.name=es01
- cluster.name=es-docker-cluster
- discovery.seed_hosts=es02,es03
- cluster.initial_master_nodes=es01,es02,es03
- bootstrap.memory_lock=true
- xpack.security.enabled=false
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
ulimits:
memlock:
soft: -1
hard: -1
volumes:
- data01:/usr/share/elasticsearch/data
ports:
- 9200:9200
networks:
- elastic
es02:
image: docker.elastic.co/elasticsearch/elasticsearch:7.8.1
container_name: es02
environment:
- node.name=es02
- cluster.name=es-docker-cluster
- discovery.seed_hosts=es01,es03
- cluster.initial_master_nodes=es01,es02,es03
- bootstrap.memory_lock=true
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
ulimits:
memlock:
soft: -1
hard: -1
volumes:
- data02:/usr/share/elasticsearch/data
networks:
- elastic
es03:
image: docker.elastic.co/elasticsearch/elasticsearch:7.8.1
container_name: es03
environment:
- node.name=es03
- cluster.name=es-docker-cluster
- discovery.seed_hosts=es01,es02
- cluster.initial_master_nodes=es01,es02,es03
- bootstrap.memory_lock=true
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
ulimits:
memlock:
soft: -1
hard: -1
volumes:
- data03:/usr/share/elasticsearch/data
networks:
- elastic
kib01:
image: docker.elastic.co/kibana/kibana:7.8.1
container_name: kib01
depends_on:
- es01
- es02
- es03
ports:
- 5601:5601
environment:
ELASTICSEARCH_URL: http://es01:9200
ELASTICSEARCH_HOSTS: http://es01:9200
networks:
- elastic
client:
image: appropriate/curl:latest
depends_on:
- es01
- es02
- es03
networks:
- elastic
command: sh -c "curl es01:9200 && curl kib01:5601"
dash_app:
build: .
ports:
- 0.0.0.0:8050:8050
depends_on:
- es01
- es02
- es03
- kib01
networks:
- elastic
# mapping:
# image: appropriate/curl:latest
# depends_on:
# - es01
# - es02
# - es03
# networks:
# - elastic
# command: "curl -v -XPUT 'es01:9200/urteile' -H 'Content-Type: application/json' -d '
# {
# 'mappings': {
# 'properties': {
# 'date': {
# 'type': 'date'
# }
# }
# }
# }
# '"
#web:
# build: .
# ports:
# - 8000:8000
#depends_on:
# - es01
# - es02
# - es03
#networks:
# - elastic
volumes:
data01:
driver: local
data02:
driver: local
data03:
driver: local
networks:
elastic:
driver: bridge
Docker 信息:
Server:
Containers: 6
Running: 3
Paused: 0
Stopped: 3
Images: 185
Server Version: 19.03.12
Storage Driver: overlay
Backing Filesystem: extfs
Supports d_type: true
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
Volume: local
Network: bridge host ipvlan macvlan null overlay
Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog
Swarm: inactive
Runtimes: runc nvidia
Default Runtime: runc
Init Binary: docker-init
containerd version: 7ad184331fa3e55e52b890ea95e65ba581ae3429
runc version: dc9208a3303feef5b3839f4323d9beb36df0a9dd
init version: fec3683
Security Options:
seccomp
Profile: default
Kernel Version: 5.7.2-kd-cluster
Operating System: Debian GNU/Linux 9 (stretch)
OSType: linux
Architecture: x86_64
CPUs: 32
Total Memory: 125.8GiB
Name: dpl01
ID: KBGO:2E6L:NIHR:UQAL:K5CN:XWBI:R7TK:WWZF:MZBT:BCHE:HUQW:UKKM
Docker Root Dir: /data/docker
Debug Mode: false
Registry: https://index.docker.io/v1/
Labels:
Experimental: false
Insecure Registries:
127.0.0.0/8
Live Restore Enabled: false
1条答案
按热度按时间jgovgodb1#
我找到了解决办法。这个问题与sastorsl的答案中描述的磁盘总使用量有关:超过了低磁盘水印[??%]
我在一个集群上工作,它的存储使用率为98%,还有400gb的可用空间,但elasticsearch只查看百分比,因此关闭了索引的任何写入权限。
解决方案是在节点启动后手动设置水印(在elasticsearch.yml中设置水印由于某些原因不起作用):
当然,你必须输入索引名。之后,它们将再次可写。