elasticsearch安装及x-pack校验

​ 最近有地区要升级es版本,于是我在一台闲置的服务器上尝试了一下,小小的记录一下踩坑过程

简介

​ Elasticsearch是一个基于Lucene库的搜索引擎。它提供了一个分布式、支持多租户的全文搜索引擎,具有HTTP Web接口和无模式JSON文档。Elasticsearch是用Java开发的,并在Apache许可证下作为开源软件发布(from wiki)

安装步骤

本次安装环境为centos7,公司要求版本是Elasticsearch6.3.2,且需要启用x-pack进行加密访问

  1. 由于是指定安装6.3.2版本,直接搜索这个包,找到下载地址

在centos下安装的话,选择TAR包即可

  1. 下载下来后,上服务器,自行选终端连接器,我用的xshsell,从文件夹里选中直接往centos里边拖,如果提示要安装rz啥的,就安装一下
1
sudo yum install lrzsz -y

拖进去之后,解压

1
tar -zxvf elasticsearch-6.3.2.tar.gz
  1. 安装一下openjdk
1
sudo yum install java-openjdk-devel java-openjdk

如果这个有问题可以重新手动下载jdk1.8版本

  1. 如果你服务器是以root方式启动,请切换到附带sudo权限的普通用户操作,因为Elasticsearch不能以root用户启动,没有用户就新加一个,不会请自行搜索一下教程,es文件夹也建议放进/home/noRootUser下操作,并更改es文件夹所有者到该用户
1
sudo chown -R noRootUser:noRootUser /home/noRootUser/elasticsearch-6.3.2
  1. 更改配置文件,在config下有elasticsearch.yml
1
2
3
4
5
6
7
8
9
10
cluster.name: es
node.name: master
node.master: true
node.data: true
path.data: /home/user/elasticsearch-6.3.2/data
path.logs: /home/user/elasticsearch-6.3.2/logs
network.host: 0.0.0.0
http.port: 9200
transport.host: localhost
transport.tcp.port: 9300

这个是一个大概的配置,具体情况得具体分析,而且生产环境基本是集群配置,network.host那样设置以及设置transport.host是为了让其他机器可以直接访问,如果访问不了请关闭防火墙试试,具体部署应该不会关防火墙而是单独开放这个端口来访问(盲猜

  1. 随后可以尝试启动,上面步骤没问题的话,应该是可以正常启动的,直接在bin目录下执行./elasticsearch ,在物理机上访问一下ip加对应端口应该就可以看到一串json,这样就表示es开启成功了
  2. 如果要开启x-park,在配置文件中加入如下配置即可
1
2
xpack.security.enabled: true
xpack.security.transport.ssl.enabled: true

这里要注意一个问题,6.3+的版本,是自带x-park插件的,不需要安装,低于这个版本需要手动安装,但低于6.8的版本,x-park是需要购买的,直接这样配置只能试用30天,而且免费版本的功能并不全,如果需要全部功能依旧需要付费购买,开启之后,重新启动,访问服务就需要用户名和密码验证了

  1. 在bin目录下,执行
1
./elasticsearch-setup-password interactive

可以设置4个账户(模糊记得有elastic和kibana_system,其他的忘了,这个是6.3.2的账户,7.9有7个)的密码,每个要输入两次,请记住密码,随后可以用这四个账户和对应密码通过x-park的验证,如果是集群的话,应该需要为每个节点配置

注意事项

  1. 推荐一款Linux必备工具——终端复用神器-tmux,很容易上手,操作效率更高
  2. 尽量看elasticsearch官网的步骤和配置说明,很多都写的很详细,甚至具体到了linux的发行版本(公司现场用的话大概率是centos7或者6.5吧),唯一不太友好的估计是语言,但这个问题不大,毕竟我这种辣鸡英文水平都能看懂
  3. 如果可以,请尽量装最新的稳定版本,我在自己本地尝试了最新的7.9,感觉良好
  4. 这只是安装尝试一下,现场真升级时估计够呛吧,还要跟client端匹配,而且以前没用过x-pack来加密= =,这坑有点深