欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

supervisor 启动ElasticSearch报错问题

程序员文章站 2022-03-31 18:00:22
当elastic遇到supervisor ERROR: [2] bootstrap checks failed [1]: max file descriptors [4096] for elasticsearch process is too low, increase to at least [6... ......

在/etc/elasticsearch/conf.d/新建一个es的配置文件,elasticsearch.conf,这里碰到一个小坑,网上很多文章介绍的是elasticsearch.ini,启动发现找不到elasticsearch,打开/etc/supervisor/supervisor.conf发现引用的是conf.d/*.conf

赶紧改过了。

下边是elasticsearch.conf的内容

 

[program:elasticsearch]
command=/opt/elasticsearch-6.8.1/bin/elasticsearch
directory=/opt/elasticsearch-6.8.1/bin/
autorestart=true
autostart=true
stderr_logfile=/var/log/supervisor/elasticsearch_err.log
stdout_logfile=/var/log/supervisor/elasticsearch_out.log
environment=java_home=/usr/lib/jvm/java-8-openjdk-amd64
user=es
password=espassword
stopsignal=int
startsecs=10

修改后继续启动

supervisorctl elasticsearch start

发现可以启动了,过了一会儿在浏览器输入http://localhost:9200,发现无法访问。

# ps -a|grep elas

也找不到任何进程(这里有一个坑,elasticsearch启动后的进程是java,而不是elasticsearch,即使启动了上边的命令也找不到名称为elasticsearch的进程)

将supervisor的配置文件,添加下面的配置,开启supervisor的web管理界面

[inet_http_server]
port=*:9001
username=user
password=password

然后重新启动supervisor

#service restart supervisor

然后在浏览器里输入:http://localhost:9201,在鉴权窗口输入上边设置的用户名密码,登录进入supervisor的web管理界面

supervisor 启动ElasticSearch报错问题

显示supervisor正在启动,单击action下的tail -f,可以显示实时的启动信息,在里边找到了两个错误

error: [2] bootstrap checks failed
[1]: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65535]
[2]: max number of threads [3300] for user [es] is too low, increase to at least [4096]

 这个错误在刚安装elasticsearch时遇到过,是limit设置的访问文件数和进程数限制导致的,把/etc/security/limits.conf设置值为:


* hard nofile 65536
* soft nofile 65536
* soft nproc 4096
* hard nproc 4096

文件数为65536,进程数为5096,使用es用户启动就不再报错了。但是现在又出现了这个错误,肯定是跟supervisor配置有关系,于是开始查找supervisor的配置说明。

在上边的地址找到了下边的说明:


minfds=1024 ; 这个是最少系统空闲的文件描述符,低于这个值supervisor将不会启动。 系统的文件描述符在这里设置cat /proc/sys/fs/file-max 默认情况下为1024。。。非必须设置

minprocs=200 ; 最小可用的进程描述符,低于这个值supervisor也将不会正常启动。 ulimit -u这个命令,可以查看linux下面用户的最大进程数 默认为200。。。非必须设置

十分的可疑,当前supervisor的配置没有此项,果断在配置文件的[supervisord]节上填上,并把相应值分别改为65535和4096,然后重新启动supervisor。

稍等片刻,浏览器访问http://localhost:9200,久违的界面又出现了

supervisor 启动ElasticSearch报错问题

不错,嗯,下次折腾kibana的supervisor守护进程。