當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正在啟動,單擊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的配置說明。
https://www.cnblogs.com/xuezhigu/p/7660203.html
在上邊的地址找到了下邊的說明:
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,久違的界面又出現了
不錯,嗯,下次折騰kibana的supervisor守護進程。