[6]部署Elasticsearch
安装前准备
安装JDK
下载地址:https://www.oracle.com/technetwork/java/javase/downloads/index.html
Elasticsearch 7.2支持JDK版本:1.8、11、12。这里使用了JDK1.8。
下载JDK压缩包,通过SFTP客户端(WinSCP)上传到CentOS7相应的目录下。
然后解压JDK,解压命令为:
sudo tar -zxvf jdk-1.8xxx_linux-x64_bin.tar.gz
移到/usr/local/jdk目录下
sudo mv jdk-1.8xxx /usr/local/jdk-1.8xxx
配置环境变量
输入命令:
sudo vi /etc/profile
在文件尾部加入如下内容:
export JAVA_HOME=/opt/jdk
export JRE_HOME=/$JAVA_HOME/jre
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
修改完成后,保存文件,退出。
通过source命令重新加载/etc/profile文件,使得修改后的内容生效,命令如下。
sudo source /etc/profile
输入java –version
查看jdk版本,输出成功,这代表安装成功。
安装Elasticsearch安装
Elasticsearch的下载地址为https://www.elastic.co/cn/downloads/elasticsearch,选择Linux版本,然后上传至CentOS服务器,进入压缩文件所在的目录,这里选择放在了/opt目录下,进入/opt目录,安装解压命令如下。
tar -zxvf elasticsearch-7.2.0-linux-86_64.tar.gz
同样为了后续使用方面将解压后的目录文件重命名为elasticsearch,重命名命令如下。
mv elasticsearch-7.2.0 /usr/local/elasticsearch
(2)修改系统参数
修改系统参数的目的是确保系统有足够的资源启动Elasticsearch。
a)设置内核参数
vi /etc/sysctl.conf
增加以下参数
vm.max_map_count=655360
b)执行以下命令确保配置生效。
sysctl -p
(3)添加启动用户,设置权限
因为启动Elasticsearch5.0版本及以上需要使用非root用户,需要新建一个用户来启动Elasticsearch,命令如下所示。
useradd elk #创建用户elk
groupadd elk #创建组elk
useradd elk -g elk #将用户添加到组
mkdir -pv /usr/local/elasticsearch/elk/{data,logs} # 创建数据和日志目录
修改文件所有者
chown -R elk:elk /usr/local/elasticsearch
(4)Elasticsearch配置
修改Elasticsearch的配置文件/usr/local/elasticsearch/config/elasticsearch.yml。
注意,设置参数的时候:后面要有空格!以下配置仅供参考。
(5)使用elk用户启动Elasticsearch服务,命令如下所示。
#切换用户
su elk
/usr/local/elasticsearch/bin/elasticsearch
如果要让Elasticsearch服务一直运行需要在上面命令后加&符号如下所示。
/usr/local/elasticsearch/bin/elasticsearch &
关闭Elasticsearch服务需要查看一下这个服务所占用的进程号,然后使用kill命令杀死这个进程。
kill -9 进程pid
然后可以通过浏览器访问到Elasticsearch,如下图所示,通过浏览器访问时需要将CentOS防火墙关闭或者在防火墙开启9200端口。
(6)集群配置
只需配置的cluster.name保持一致,elasticsearch节点即可自动形成集群。
另外添加集群内节点的所有IP,便于发现集群内的节点,如下:
discovery.seed_hosts:[“192.101.2.221”,“192.101.2.222“]
cluster_initial_master_nodes:[“192.101.2.221”,“192.101.2.222“]
如果该节点可以作为主节点:
node.master:true
否则
node.master:false
如果该节点作为数据采集节点,配置
node.data:false
否则
node.data:true