具体情况
这个错误一般是ubuntu中使用 apt-get install
安装的elastic search 有可能出现这种问题
现象是,直接运行 /usr/share/elasticsearch/bin/elasticsearch
是可以正常启动的,但是systemctl start elasticsearch.service
无效,/var/log/elasticsearch
下没有任何log
原因
ubuntu 的apt 库打包的运行配置文件是有问题的,
/etc/default/elasticsearch
# Run Elasticsearch as this user ID and group ID
# ES_USER=elasticsearch
# ES_GROUP=elasticsearch
解 1
- 一个方法是,把 elasticsearch 改为root (不推荐,会有安全问题)
/etc/default/elasticsearch
# Start Elasticsearch automatically
# START_DAEMON=true
# Run Elasticsearch as this user ID and group ID
ES_USER=root
ES_GROUP=root
- 另外一个方法是,把
/usr/share/elasticsearch/
这个目录的owner 和 group改成elasticsearch
sudo chown -R elasticsearch:elasticsearch /usr/share/elasticsearch/
由于默认user和 group 都是 elasticsearch ,所以不用改 /etc/default/elasticsearch
验证
curl localhost:9200
相关
/etc/default/elasticsearch
文件中
# Start Elasticsearch automatically
START_DAEMON=true #这句看起来像是开机启动,所以我自己的情况改不改影响不太大
# Heap Size (defaults to 256m min, 1g max)
ES_HEAP_SIZE=2g # 如果机器内存只有2g,建议改成1g吧。。。喂喂,上面的注释明明说最大1g