错误示例1
# tailf es.info.log
could not find java; set JAVA_HOME or ensure java is in PATH
could not find java; set JAVA_HOME or ensure java is in PATH
could not find java; set JAVA_HOME or ensure java is in PATH
could not find java; set JAVA_HOME or ensure java is in PATH
# tailf es.error.log
which: no java in (/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin)
supervisord管理
# cat /etc/supervisord.d/es.ini
[program:es]
command=/usr/local/es/bin/elasticsearch
autostart=true
startsecs=5
autorestart=true
startretries=3
user=elastic
stdout_logfile=/var/log/supervisord/es.info.log
stderr_logfile=/var/log/supervisord/es.error.log
stdout_logfile_maxbytes=10MB
stdout_logfile_backups=10
stdout_capture_maxbytes=1MB
stdout_events_enabled=false
loglevel=info
priority=1100
解决:
# which java
/usr/local/jdk1.8.0_181/bin/java
# ln -s /usr/local/jdk1.8.0_181/bin/java /usr/bin/java
错误二 用supervisrod启动es报错
ERROR: [2] bootstrap checks failed
[1]: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]\
ElasticSearch进程的最大文件描述符[4096]太低,请至少增加到[65536]
[2]: max number of threads [3818] for user [elastic] is too low, increase to at least [4096]
用户[弹性]的最大线程数[3818]太低,请至少增加到[4096]
注:elasticsearch 使用普通用户在命令行可以正常启动
$ /usr/local/es/bin/elasticsearch
解决一:由于我使用虚拟机做实验,内存给的小,跑的服务还比较多,增加内存后es正常启动
参考:https://blog.51cto.com/xpleaf/2327317?source=dra
解决二:出现上面的问题还是与supervisord有关,查看有关资料发现supervisord有自己的文件描述符配置
minfds=1024 ; 这个是最少系统空闲的文件描述符,低于这个值supervisor将不会启动。 系统的文件描述符在这里设置cat /proc/sys/fs/file-max 默认情况下为1024。。。非必须设置
minprocs=200 ; 最小可用的进程描述符,低于这个值supervisor也将不会正常启动。 ulimit -u这个命令,可以查看linux下面用户的最大进程数 默认为200。。。非必须设置
在supervisord.conf 添加
[supervisord]
minfds=65536
minprocs=4096
重启supervisord服务
网友评论