1. 环境规划:
主机名 | IP地址 | 角色 |
node1 | 192.168.56.111 | ElasticSearch(master) Zookeeper Kafka |
node2 | 192.168.56.112 | ElasticSearch(slave) Kibana Zookeeper Kafka |
node3 | 192.168.56.113 | ElasticSearch(slave) Zookeeper Kafka |
node4 | 192.168.56.114 | Logstash Filebeat |
2. 所有节点设置hosts解析:
[root@node1 ~]# vim /etc/hosts
192.168.56.111 node1
192.168.56.112 node2
192.168.56.113 node3
192.168.56.114 node4
3. 所有节点配置节点时间同步:
[root@node1 ~]# yum install ntp -y
[root@node1 ~]# vim /etc/ntp.conf
##添加三行,向阿里云时间服务器同步
server ntp1.aliyun.com
server ntp2.aliyun.com
server ntp3.aliyun.com
##将原来的四行注释掉
#server 0.centos.pool.ntp.org iburst
#server 1.centos.pool.ntp.org iburst
#server 2.centos.pool.ntp.org iburst
#server 3.centos.pool.ntp.org iburst
[root@node1 ~]# systemctl enable --now ntpd
##强制手动同步
[root@node1 ~]# ntpdate -u ntp1.aliyun.com
4. 四个节点都部署jdk:
[root@node1 ~]# rpm -ivh jdk-8u202-linux-x64.rpm
[root@node1 ~]# java -version
java version "1.8.0_202"
Java(TM) SE Runtime Environment (build 1.8.0_202-b08)
Java HotSpot(TM) 64-Bit Server VM (build 25.202-b08, mixed mode)
5. node1,node2,node3部署ElasticSearch:
1>. 安装ElasticSearch:
[root@node1 ~]# yum localinstall -y elasticsearch-7.2.0-x86_64.rpm
2>. 修改主节点node1的ElasticSearch配置文件:
[root@node1 ~]# vim /etc/elasticsearch/elasticsearch.yml
cluster.name: my-elk ##集群名称
node.name: node1 ##当前节点名称
path.data: /var/lib/elasticsearch ##elasticsearch数据文件位置
path.logs: /var/log/elasticsearch ##elasticsearch日志文件位置
network.host: 192.168.56.111 ##主机地址
http.port: 9200 ##elasticsearch监听端口
discovery.seed_hosts: ["node1", "node2", "node3"] ##集群所有节点
cluster.initial_master_nodes: ["node1"] ##设置主节点,只在主节点上配置
node.master: true ##配置是否为主节点
node.data: false ##配置该节点是否存储数据,主节点不存储数据
node.ingest: false
node.ml: false
cluster.remote.connect: false
3>. 从节点配置文件配置:
[root@node2 ~]# vim /etc/elasticsearch/elasticsearch.yml
cluster.name: my-elk
node.name: node2 ##自身节点名
path.data: /var/lib/elasticsearch
path.logs: /var/log/elasticsearch
network.host: 192.168.56.112 ##自身节点地址
http.port: 9200
discovery.seed_hosts: ["node1", "node2", "node3"]
node.master: false ##不是master节点
node.data: true ##该节点存储数据
node.ingest: false
node.ml: false
cluster.remote.connect: false
4>. 安装head插件:在5.0版本之后不支持直接把插件包放入es安装目录的plugin目录下,需要单独安装。该步之后三个节点都要配置,且操作类似。
##安装环境支持
[root@node1 ~]# yum install -y nodejs npm
[root@node1 ~]# mv master.zip /var/lib/elasticsearch/
[root@node1 ~]# cd /var/lib/elasticsearch/
[root@node1 elasticsearch]# yum install openssl bzip2 unzip -y
##解压head插件压缩包
[root@node1 elasticsearch]# unzip master.zip
[root@node1 elasticsearch]# cd elasticsearch-head-master/
##直接使用npm安装时间久,依赖网络,因此替换为淘宝的cnpm
[root@node1 elasticsearch-head-master]# npm install -g cnpm --registry=https://registry.npm.taobao.org
##安装依赖
[root@node1 elasticsearch-head-master]# cnpm install
5>. 修改配置文件:
##修改的地方:在该文件中添加如下,如果不是最后一行务必注意不要漏了添加","号
[root@node1 elasticsearch-head-master]# vim Gruntfile.js
connect: {
server: {
options: {
port: 9100,
hostname: '*', ##添加该行,表示允许所有IP可以访问
base: '.',
keepalive: true
}
}
}
6>. 修改elasticsearch-head默认连接地址,将"http://localhost:9200"改为"http://本机IP:9200":
[root@node1 elasticsearch-head-master]# vim _site/app.js
this.base_uri = this.config.base_uri || this.prefs.get("app-base_uri") || "http://192.168.56.111:9200";
7>. 修改elasticSearch配置文件:
##在配置文件末尾添加,以允许跨域访问
[root@node1 ~]# vim /etc/elasticsearch/elasticsearch.yml
http.cors.enabled: true
http.cors.allow-origin: "*"
8>. 启动elasticSearch和head插件:
[root@node1 ~]# systemctl enable elasticsearch --now
[root@node1 ~]# cd /var/lib/elasticsearch/elasticsearch-head-master/
[root@node1 elasticsearch-head-master]# nohup ./node_modules/grunt/bin/grunt server &
6. 访问ElasticSearch集群: