docker-elasticsearch6-with-ik

docker-elasticsearch6-with-ik

ERROR:

1
max virtual memory areas vm.max_map_count [65530] likely too low, increase to at least [262144]
解决方法:
1
sudo sysctl -w vm.max_map_count=262144

ERROR:

1
bootstrap checks failed memory locking requested for elasticsearch process but memory is not locked
永久解决方法:

root权限编辑/etc/security/limits.conf

1
sudo vim /etc/security/limits.conf

添加如下内容,保存退出

1
2
* soft memlock unlimited
* hard memlock unlimited

这里的*代表的是所有用户名称,可以更换为指定用户名
另:这里有个坑就是如果/etc/security/limits.d文件夹下的有配置文件,那么会覆盖刚才修改的文件,所以请确保该目录没有其它文件,如有请联系运维人员确认删除

修改/etc/sysctl.conf

1
sudo echo "vm.swappiness=0" >> /etc/sysctl.conf

这个参数的作用是告诉Linux内核尽少的使用swap分区,不等于禁用swap,通过少使用swap来提高性能。
如果想立即生效而不是重启之后让sysctl.conf生效,请使用sysctl -p

重新登录或重启服务器方可生效

全局生效方式:
1
sudo vim /etc/systemd/system.conf

最下方添加

1
2
3
DefaultLimitNOFILE=65536
DefaultLimitNPROC=32000
DefaultLimitMEMLOCK=infinity

保存, 重启系统

docker-compose最终yml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
elasticsearch:
image: bolingcavalry/elasticsearch-with-ik:6.5.0
environment:
- cluster.name=elasticsearch
- bootstrap.memory_lock=true
- http.cors.enabled=true
- http.cors.allow-origin=*
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
volumes:
- /home/elasticsearch/data:/usr/share/elasticsearch/data/nodes
ports:
- 9200:9200
networks:
- *default-network

监控检查

1
2
3
curl -XGET 'http://172.18.107.249:9200/_cluster/health?pretty'

curl -i http://172.18.107.249:9200/item/itemList/_search?q=productName:a
-------------本文结束-------------
0%