Elasticsearch 的安装

#版本问题
####版本历史 1.x->2.x->5.x-6.x
####为什么版本从2.x一下子就跳到5.x呢?
由于ES是ELK(Elasticsearch+logstash+Kibana)技术栈的一员,2.x的时候各个组件之间的版本不统一,版本号管理比较乱,比如ES是2.x而Kibana对应的版本为4.x。因此在5.x中对各个中间件的版本号做了统一。
#单实例的安装
####前往官网网址
https://www.elastic.co/
####下载安装包
点击download,我选择下载最新的版本6.3.2,选择下载tar格式的安装包,下载完成后将安装包elasticsearch-6.3.2.tar.gz放在/opt目录下。
####解压安装包

cd /opt
tar -zxvf  elasticsearch-6.3.2.tar.gz

解压后进入elasticsearch-6.3.2目录
这里写图片描述
####启动ES
注意:要启动ES必须先安装jdk,该版本的ES要求jdk的版本在1.8以上。

sh ./bin/elasticsearch

######结果并没有启动成功,而是报错:can not run elasticsearch as root
因为安全为题,不能用root启动ES,因此需要创建新用户,作为elasticsearch-6.3.2目录的拥有者

第一步:liunx创建新用户 adduser XXX 然后给创建的用户加密码 passwd XXX 输入两次密码。

第二步:切换刚才创建的用户 su XXX 然后执行elasticsearch 会显示Permission denied 权限不足。

第三步:给新建的XXX赋权限,chmod 777 * 这个不行,因为这个用户本身就没有权限,肯定自己不能给自己付权限。所以要用root用户登录付权限。

第四步:root给XXX赋权限,chown -R XXX /你的elasticsearch安装目录。

先切换到普通用户

su XXX

然后再次输入启动命令

cd /opt
tar -zxvf  elasticsearch-6.3.2.tar.gz

这里写图片描述
启动日志中如果看到started说明ES已经启动成功啦!
######但是,这样的启动其他机器是无法访问的**
其他机器想要访问,需要修改配置文件/opt/elasticsearch-6.3.2/config/elasticsearch.yml添加

network.host: 0.0.0.0
http.port: 9200

保存配置后再次启动,又冒出新的问题:

1、安装出现的错误一: max file descriptors [4096] for XXX process likely too low, increase to at least [65536]

解决方法:切换到root用户,进入vi /etc/security/limits.conf ,增加配置(保存后注意切回XXX用户的时候才能生效,sudo 修改的不能立即生效):

启动ES的用户名 soft nofile 65536
启动ES的用户名 hard nofile 65536
2、安装错误二: max number of threads [1024] for user [XXX] likely too low, increase to at least [2048]

解决方法:进入limits.d下的配置文件:vi /etc/security/limits.d/90-nproc.conf ,修改配置如下:

  •      soft    nproc     1024
    

修改为:

  •      soft    nproc     2048
    

如果这样还没解决再加一行

  •      hard    nproc     2048
    

3、安装错误三: max virtual memory areas vm.max_map_count [65530] likely too low, increase to at least [262144]

解决方法:修改sysctl文件:vi /etc/sysctl.conf ,增加下面配置项:

增加该行配置:vm.max_map_count=655360
保存退出后,执行:
sysctl -p
4、安装错误四:
bootstrap checks failed
system call filters failed to install; check the logs and fix your configuration or disable system call filters at your own risk

解决方法:
在elasticsearch.yml中配置bootstrap.system_call_filter为false,注意要在Memory下面:
bootstrap.memory_lock: false
bootstrap.system_call_filter: false

######再次启动成功
这里写图片描述
最后提醒一下装在虚拟机中的朋友: 如果不关闭防火墙的话外机也是访问不了ES的,至于关闭防火墙的方法因操作系统不同而不同,可以自行搜索。
centos7 的关闭方法

//临时关闭
systemctl stop firewalld
//禁止开机启动
systemctl disable firewalld
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.

#head插件的安装
####打开github
https://github.com/
####搜索head插件
在搜索框中输入elasticsearch-head,点击回车
####下载head插件
选择mobz/elasticsearch-head
这里写图片描述
下载它的zip安装包,elasticsearch-head-master.zip
####解压

unzip elasticsearch-head-master.zip
cd elasticsearch-head-master/

####安装
head的安装前提是已经安装node,且版本大于6.0,node的安装参考 linux安装node环境

npm install

安装成功后,启动head

npm run start

这里写图片描述
启动成功,head的默认端口是9100
####打开界面
浏览器访问localhost:9100 看到如下界面
这里写图片描述
发现状态还是未连接,这是因为es的配置中还有参数需要添加,打开/opt/elasticsearch-6.3.2/config/elasticsearch.yml添加

http.cors.enabled: true //如果启用了 HTTP 端口,那么此属性会指定是否允许跨源 REST 请求。
http.cors.allow-origin: "*" //如果 http.cors.enabled 的值为 true,那么该属性会指定允许 REST 请求来自何处。

再次重启ES和head
这里写图片描述
#分布式安装
####配置master节点
将之前已经安装的节点配置为集群中的master点

cluster.name: wei //指定集群名称
node.name: master  //指定节点名称
node.master: true  //是否为master节点

重启es

[weiliangwei@localhost config]$ ps -ef|grep elasticsearch
root      2941  2920  0 07:53 tty1     00:00:00 vi elasticsearch.yml
weilian+  2997  2814  0 08:02 pts/0    00:00:00 vi elasticsearch.yml
weilian+  3576     1  0 08:51 pts/0    00:01:23 /opt/jdk1.8.0_171/bin/java -Xms1g -Xmx1g -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=75 -XX:+UseCMSInitiatingOccupancyOnly -XX:+AlwaysPreTouch -Xss1m -Djava.awt.headless=true -Dfile.encoding=UTF-8 -Djna.nosys=true -XX:-OmitStackTraceInFastThrow -Dio.netty.noUnsafe=true -Dio.netty.noKeySetOptimization=true -Dio.netty.recycler.maxCapacityPerThread=0 -Dlog4j.shutdownHookEnabled=false -Dlog4j2.disable.jmx=true -Djava.io.tmpdir=/tmp/elasticsearch.sDwXls1H -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=data -XX:ErrorFile=logs/hs_err_pid%p.log -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintTenuringDistribution -XX:+PrintGCApplicationStoppedTime -Xloggc:logs/gc.log -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=32 -XX:GCLogFileSize=64m -Des.path.home=/opt/elasticsearch-6.3.2 -Des.path.conf=/opt/elasticsearch-6.3.2/config -Des.distribution.flavor=default -Des.distribution.type=tar -cp /opt/elasticsearch-6.3.2/lib/* org.elasticsearch.bootstrap.Elasticsearch -d
weilian+  3606  3576  0 08:52 pts/0    00:00:00 /opt/elasticsearch-6.3.2/modules/x-pack/x-pack-ml/platform/linux-x86_64/bin/controller
weilian+  4036  3242  0 12:09 pts/0    00:00:00 grep --color=auto elasticsearch
[weiliangwei@localhost config]$ kill -9 3576
[weiliangwei@localhost config]$ ps -ef|grep elasticsearch
root      2941  2920  0 07:53 tty1     00:00:00 vi elasticsearch.yml
weilian+  2997  2814  0 08:02 pts/0    00:00:00 vi elasticsearch.yml
weilian+  4038  3242  0 12:09 pts/0    00:00:00 grep --color=auto elasticsearch
[weiliangwei@localhost config]$ cd ..
[weiliangwei@localhost elasticsearch-6.3.2]$ ./bin/elasticsearch -d

重启后head界面的集群名称和节点名称改变了
这里写图片描述

####配置两个slave节点
安装slave节点的ES跟安装master节点是一样的,不加赘述。
需要注意的配置:

cluster.name: wei // 集群名称
node.name: slave2 //节点名称
discovery.zen.ping.unicast.hosts: ["192.168.237.130"] //master节点的ip

配置好后把两个slave节点也启动
这里写图片描述

就这样一个ES集群就完成了

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值