elasticsearch的安装很简单,下载源码包:点击这里!
elasticsearch需要以普通的用户方式去执行,原因是:elasticsearch非常强大,可以接收和执行用户的脚本文件,所以为了安全考虑,只允许普通用户启动!这里简单了解下
下面创建普通用户
groupadd elsearch
useradd -g elsearch -p elsearch
将下载的包解压缩
tar -zxf elasticsearch-7.3.1-linux-x86_64.tar.gz
更换目录的所有者
chown -R elsearch.elsearch elasticsearch-7.3.1
进入elasticsearch-7.3.1/config目录:vi elasticsearch.yml文件中55和59行去掉注释改为如图:
到此基本已经安装完成,如图:
elasticsearch 的启动很简单:进入elasticsearch-7.3.1/bin目录下,有个elasticsearch可执行文件,直接
./elasticsearch即可;
想要在后台执行:
./elasticsearch &
下面将一下遇到的坑:
1、max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]
每个进程最大同时打开文件数太小,可通过下面2个命令查看当前数量
ulimit -Hn ulimit -Sn或者 ulimit -a
修改/etc/security/limits.conf文件,增加配置,用户退出后重新登录生效
* soft nofile 65536 * hard nofile 65536
2、max number of threads [3818] for user [es] is too low, increase to at least [4096]
问题同上,最大线程个数太低。修改配置文件/etc/security/limits.conf,增加配置
soft nproc 4096
hard nproc 4096
可通过命令查看
ulimit -Hu ulimit -Su
特别注意:如何上述在limits.conf中的配置不生效,可以在/etc/security/limits.d/下修改20-nproc.conf,具体修改如下图:
3、max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
修改/etc/sysctl.conf文件,增加配置vm.max_map_count=262144
vi /etc/sysctl.conf
sysctl -p
执行命令sysctl -p生效
正确的limits.conf
处理bootstrap checks failed问题
[1]: the default discovery settings are unsuitable for production use; at least one of [discovery.seed_hosts, discovery.seed_providers, cluster.initial_master_nodes] must be configured
这时候继续编辑elasticsearch.yml文件,将 #cluster.initial_master_nodes: ["node-1", "node-2"] 修改为 cluster.initial_master_nodes: ["node-1"],
另一种解决办法:
报错:ERROR: bootstrap checks failed
解决:在elasticsearch.yml中配置bootstrap.system_call_filter为false,要在Memory下面:
bootstrap.memory_lock: false
bootstrap.system_call_filter: false
最后,附带一个我写的elasticsearch.sh启动脚本:将脚本复制到/usr/local/bin里面即可,脚本需要执行权限!
#!/bin/bash
var=$1
elarchsearch=/mnt/elasticsearch-7.3.1/bin #这个是elarchsearch的安装目录记得改成自己的
case $var in
start )
sh ${elarchsearch}/elasticsearch -d &
[ $? == "0" ] && { echo -e "\e[1;32m Starting:[OK]...! \e[0m"; } || { echo -e "\e[1;31m Starting Failed...! \e[0m";exit 1; }
;;
stop )
elsearpid=$(ps -ef| grep -v grep | grep elasticsearch | awk '{print $2}')
kill -9 $elsearpid
;;
restart )
sh $0 stop
sh $0 start
;;
* )
echo -e "\e[1;31m Usage:Error argument! \e[0m"
exit 2
;;
esac
对了,如何测试elasticsearch。可以浏览器中如何elasticsearchsh服务器的ip:9200如出现如下图:
说明安装已经成功了!