创建用户
从5.0开始,ElasticSearch 安全级别提高了,不允许采用root帐号启动,所以我们要添加一个用户
1 创建 elasticsearch 用户组
1 |
|
2 创建用户 es 并设置密码为es
1 2 |
|
之后输入两次密码,完成密码修改
3 用户es 添加到 elasticsearch 用户组
1 |
|
4 设置sudo权限
[root
@localhost
~]# visudo
出现:visudo: command not found错误,原因是没有安装sudo,
执行命令安装: yum
install
sudo
其他原因请参考 https://blog.csdn.net/Zsigner/article/details/88863745
1 2 3 4 5 |
修改完生效命令 sudo visudo -c
|
1 2 |
|
下载安装包
在/usr/local/src 目录下 下载elasticsearch ,并解压 tar.gz
[es@localhost src]$ wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.3.2.tar.gz
出现:-bash: wget: command not found错误,原因是没有安装wget
执行命令 root下 yum -y install wget,es 用户下 sudo yum -y install wget
下载完成后解压(压缩命令是 tar -zcvf 生成的文件名 被压缩的文件/目录 eg: tar -zcvf filename.tar.gz ./filename)
[es
@localhost
src]$ sudo tar -zxvf elasticsearch-
6.3
.
2
.tar.gz
输入es 账号密码,如果想免密码执行命令在第四步补充:
在es ALL=(ALL) ALL下添加
ceph ALL=(es) NOPASSWD:ALL
在es用户下执行命令就不需要再输入密码了,如下
|
1 |
|
更改elasticsearch-6.3.2 文件夹以及内部文件的所属用户为es, 用户组组为elasticsearch,-R表示逐级
1 |
|
ElasticSearch 配置
elasticsearch.yml 修改
1 |
|
报错:sudo: vim: command not found ,原因没有安装vim
安装命令: yum install vim
安装完成修改yml文件命令:
vim config/elasticsearch.yml
修改内容(没有就添加):
cluster.name: my-application
node.name: node-1
network.host: 0.0.0.0
http.port: 9200
#因为Centos6不支持SecComp,而ES默认bootstrap.system_call_filter为true进行检测
bootstrap.memory_lock: false
bootstrap.system_call_filter: false
修改/etc/sysctl.conf
切换回root 用户 执行
1 |
|
在文件最后面添加内容:
vm.max_map_count=262144
保存退出后,使用sysctl -p 刷新生效
[root@localhost ~]# sysctl -p
net.ipv4.ip_forward = 0
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.default.accept_source_route = 0
kernel.sysrq = 0
kernel.core_uses_pid = 1
net.ipv4.tcp_syncookies = 1
kernel.msgmnb = 65536
kernel.msgmax = 65536
kernel.shmmax = 68719476736
kernel.shmall = 4294967296
vm.max_map_count = 262144
[root@localhost ~]#
修改文件/etc/security/limits.conf
1 |
|
添加如下内容:
1 2 3 4 5 |
|
启动elasticesearch 可能还会报如下错误
max number of threads [1024] for user [lish] likely too low, increase to at least [4096]
解决:切换到root用户,进入limits.d目录下修改配置文件。
vi /etc/security/limits.d/90-nproc.conf
修改如下内容:
* soft nproc 1024
#修改为
* soft nproc 4096
启动 elasticsearch
完成上面配置修改后,切换到es 用户,目录切换到 elasticsearch 安装目录下执行
1 |
|
在浏览器输入localhost:9200 验证是否启动成功,如果浏览器输出如下信息,代表安装启动成功
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
|
如果启动过程中出现异常信息,请根据信息百度相关问题,下面是我启动过程遇到的错误信息并附上解决方案
异常信息1:expecting token of type [START_OBJECT] but found [VALUE_STRING]];
错误原因:elasticsearch.yml 文件内部错误
解决办法:仔细检查yml文件中的配置项书写格式: (空格)name:(空格)value
---------------------------------------------------------------------------------
异常信息2:java.lang.UnsupportedOperationException: seccomp unavailable: CONFIG_SECCOMP not compiled into kernel, CONFIG_SECCOMP and CONFIG_SECCOMP_FILTER are needed
错误原因:Centos6不支持SecComp,而ES默认bootstrap.system_call_filter为true进行检测,所以导致检测失败,失败后直接导致ES不能启动
解决办法:修改elasticsearch.yml 添加一下内容 :
bootstrap.memory_lock: false
bootstrap.system_call_filter: false
---------------------------------------------------------------------------------
---------------------------------------------------------------------------------
异常信息3:BindTransportException[Failed to bind to [9300-9400]
解决办法 打开配置文件elasticsearch.yml 将 network.host: 192.168.0.1 修改为本机IP 0.0.0.0
--------------------------------------------------------------------------------------------
异常信息4:max number of threads [1024] for user [lish] likely too low, increase to at least [2048]
解决办法:切换到root用户,进入limits.d目录下修改配置文件。
vi /etc/security/limits.d/90-nproc.conf
修改如下内容:
* soft nproc 1024
#修改为
* soft nproc 2048
参考文章:
https://www.cnblogs.com/jingping/p/9448099.html