问题描述:
之前在一个服务器上用docker-compose部署了elasticsearch和kibana,使用正常,近期要将服务迁移到另外一台服务器上。
在新的服务器上启动ElasticSearch,报错如下:
max virtual memory areas vm.max_map_count [65530] is too low
接着启动kibana,拨错如下:
Unable to retrieve version information from Elasticsearch nodes.
问题定位和解决:
ES和Kibana都有报错,很明显kibana报错是因为ES没有启动成功。那么首先解决ES问题,根据报错,网上搜索答案。很快可以得到解决。
错误解释:
这个错误通常出现在Linux系统中,与Elasticsearch有关。Elasticsearch在启动时会检查操作系统的配置,如果发现vm.max_map_count
的值太低,就会报错。
vm.max_map_count
是Linux系统中一个内核参数,它限制了每个进程可以拥有的内存区域(memory areas)数量。Elasticsearch可能需要比默认更多的内存区域,如果这个值太低,Elasticsearch就会报错。
解决方案:
1、临时修改(不会在重启后保留):
sudo sysctl -w vm.max_map_count=262144
2、永久修改
编辑/etc/sysctl.conf
文件,添加以下行:
vm.max_map_count=262144
然后运行以下命令来使改动立即生效:
sudo sysctl -p
请注意,这里设置的值262144
是一个常用的值,你可能需要根据自己的需求调整它。修改系统配置应该谨慎进行,并确保了解可能对系统稳定性造成的影响。
最后:
以上操作下来,elaticsearch服务正常启动了,重新部署下kibana,报错消失了。到此,问题解决。