ES7.8集群部署
1.环境规划
IP地址 | 配置 | 服务 |
---|---|---|
192.166.166.121 | 8C 32G | ES7.8 cerebro |
192.166.166.122 | 8C 32G | ES7.8 kibana7.8 |
192.166.166.123 | 8C 32G | ES7.8 es_head |
2.系统参数配置
ES所有节点服务器都执行如下配置
代码语言:javascript复制[root@localhost tencent]# vim /etc/security/limits.conf
#然后添加以下内容:
* soft nofile 65535
* hard nofile 65535
* soft memlock unlimited
* hard memlock unlimited
[root@localhost tencent]# vim /etc/sysctl.conf
添加如下内容:
vm.max_map_count = 655300
vm.dirty_ratio=10
vm.dirty_background_ratio=5
vm.dirty_writeback_centisecs=200
vm.vfs_cache_pressure=200
vm.dirty_expire_centisecs=6000
vm.swappiness=0
保存后执行如下命令:
[root@localhost tencent]# sysctl -p
3.部署ES
ES所有节点服务器都执行如下配置:
代码语言:javascript复制创建目录以及es数据存储的目录
[root@localhost ~]# mkdir -p /tencent/data
上传部署包elasticsearch-7.8.0-linux-x86_64.tar.gz 到 /tencent目录下
解压部署包:
[root@localhost tencent]# tar -zxvf elasticsearch-7.8.0.tar.gz
4.修改配置文件
4.1 修改elasticsearch.yml
代码语言:javascript复制[root@localhost config]# pwd
/tencent/elasticsearch-7.8.0/config
[root@localhost config]# vim elasticsearch.yml
修改以下配置:(修改为当前121节点)
# 集群名称,三台集群名称保持一致
cluster.name: tencent_cms
# 节点名称,三台需要不同的名称
node.name: node-1
# 当前节点是否可以被选举为master节点,是:true、否:false
node.master: true
# 当前节点是否用于存储数据,是:true、否:false
node.data: true
# 数据存储地址
path.data: /tencent/data
# 日志存储地址
path.logs: /tencent/elasticsearch-7.8.0/logs
# 锁住物理内存,是:true、否:false
bootstrap.memory_lock: true
# 网关地址
network.host: 192.166.166.121
# 访问端口号
http.port: 9200
# es7.x 之后新增的配置,写入候选主节点的设备地址,在开启服务后可以被选为主节点
discovery.seed_hosts: ["192.166.166.121", "192.166.166.122", "192.166.166.123"]
# es7.x 之后新增的配置,初始化一个新的集群时需要此配置来选举master
cluster.initial_master_nodes: ["192.166.166.121", "192.166.166.122", "192.166.166.123"]
# 是否支持跨域,是:true,在使用head插件时需要此配置
http.cors.enabled: true
# "*" 表示支持所有域名
http.cors.allow-origin: "*"
然后复制elasticsearch.yml到122,123节点中覆盖原来的elasticsearch.yml
代码语言:javascript复制122节点的修改内容为:
# 节点名称,三台需要不同的名称
node.name: node-2
# 网关地址
network.host: 192.166.166.122
123节点修改内容为:
# 节点名称,三台需要不同的名称
node.name: node-3
# 网关地址
network.host: 192.166.166.123
4.2 修改 jvm.options
代码语言:javascript复制[root@localhost config]# pwd
/tencent/elasticsearch-7.8.0/config
[root@localhost config]# vim jvm.options
#按需修改内存即可:(经验为总内存的一半即可)
-Xms16g
-Xmx16g
5.启动ES
ES所有节点服务器都执行如下命令:
代码语言:javascript复制# 添加用户组、用户,设置密码
[root@localhost config]# groupadd es
[root@localhost config]# useradd es -g es -p es
[root@localhost config]# chown -R es:es /tencent/*
# 关闭防火墙(centos7)
[root@localhost elasticsearch-7.8.0]# systemctl stop firewalld
#启动服务
[root@localhost elasticsearch-7.8.0]# su es
[es@localhost elasticsearch-7.8.0]$ ./bin/elasticsearch -d
6.检查集群状态
代码语言:javascript复制[es@localhost elasticsearch-7.8.0]$ curl -X GET "http://192.166.166.121:9200/_cat/nodes?v"
ip heap.percent ram.percent cpu load_1m load_5m load_15m node.role master name
192.166.166.123 5 63 0 0.00 0.02 0.05 dilmrt - node-3
192.166.166.121 6 60 0 0.00 0.03 0.05 dilmrt - node-1
192.166.166.122 6 66 0 0.00 0.02 0.05 dilmrt * node-2
[es@localhost elasticsearch-7.8.0]$
7.cerebro安装
代码语言:javascript复制[root@localhost tencent]# tar -zxvf cerebro-0.9.2.tgz
[root@localhost tencent]# cd cerebro-0.9.2/
[root@localhost cerebro-0.9.2]# ll
total 16
drwxr-xr-x. 2 es es 40 Sep 14 18:48 bin
drwxr-xr-x. 3 es es 103 Sep 15 13:15 conf
drwxr-xr-x. 2 es es 8192 Sep 14 18:48 lib
-rw-r--r--. 1 es es 2932 Jun 18 07:49 README.md
[root@localhost cerebro-0.9.2]# cd conf/
[root@localhost conf]# ll
total 20
-rw-r--r--. 1 es es 2642 Sep 15 13:15 application.conf
drwxr-xr-x. 3 es es 21 Sep 14 18:48 evolutions
-rw-r--r--. 1 es es 1245 Jun 18 07:49 logback.xml
-rw-r--r--. 1 es es 512 Jun 18 07:49 reference.conf
-rw-r--r--. 1 es es 5903 Jun 18 07:49 routes
[root@localhost conf]# vim application.conf
修改以下内容:
# A list of known hosts
hosts = [
{
host = "http://192.166.166.121:9200"
name = "tencent_cms"
}
# Example of host with authentication
#{
# host = "http://some-authenticated-host:9200"
# name = "Secured Cluster"
# auth = {
# username = "username"
# password = "secret-password"
# }
#}
]
开放端口
sudo firewall-cmd --zone=public --add-port=9500/tcp --permanent
sudo firewall-cmd --reload
以后台服务启动
[root@localhost cerebro-0.9.2]# ./bin/cerebro -Dhttp.port=9500 &
[1] 7781
[root@localhost cerebro-0.9.2]# [info] play.api.Play - Application started (Prod) (no global state)
[info] p.c.s.AkkaHttpServer - Listening for HTTP on /0:0:0:0:0:0:0:0:9500
访问网址:http://192.166.166.121:9500/#/overview?host=tencent_cms
8.es_head 安装
代码语言:javascript复制[root@localhost tencent]# tar -zxvf node-v14.0.0-linux-x64.tar.gz -C /usr/local/
[root@localhost tencent]# vim /etc/profile
#添加以下内容:
export NODE_HOME=/usr/local/node-v14.0.0-linux-x64
export PATH=$NODE_HOME/bin:$PATH
export NODE_PATH=$NODE_HOME/lib/node_modules
#执行并验证
[root@localhost tencent]# source /etc/profile
[root@localhost tencent]# node -v
v14.0.0
[root@localhost tencent]# npm -v
6.14.4
[root@localhost tencent]# tar -zxvf elasticsearch-head.tar.gz
[root@localhost tencent]# cd elasticsearch-head/
[root@localhost elasticsearch-head]# vim _site/app.js
修改以下内容: 在4374行把"http://192.166.166.129:9200" 替换为你的机器IP地址("http://192.166.166.123:9200")
4367 app.App = ui.AbstractWidget.extend({
4368 defaults: {
4369 base_uri: null
4370 },
4371 init: function(parent) {
4372 this._super();
4373 this.prefs = services.Preferences.instance();
4374 this.base_uri = this.config.base_uri || this.prefs.get("app-base_uri") || "http://192.166.166.123:9200";
4375 if( this.base_uri.charAt( this.base_uri.length - 1 ) !== "/" ) {
4376 // XHR request fails if the URL is not ending with a "/"
4377 this.base_uri = "/";
4378 }
4379 if( this.config.auth_user ) {
4380 var credentials = window.btoa( this.config.auth_user ":" this.config.auth_password );
4381 $.ajaxSetup({
4382 headers: {
4383 "Authorization": "Basic " credentials
4384 }
4385 });
4386 }
执行启动脚本:
[root@localhost elasticsearch-head]# pwd
/tencent/elasticsearch-head
[root@localhost elasticsearch-head]# ./eshead.sh
客户端访问地址:http://192.166.166.123:9100/
9.kibana 安装
代码语言:javascript复制[root@localhost tencent]# tar -zxvf kibana-7.8.0-linux-x86_64.tar.gz
[root@localhost config]# pwd
/tencent/kibana-7.8.0-linux-x86_64/config
[root@localhost config]# vim kibana.yml
编辑文件config/kibana.yml ,配置属性:
server.port: 5601
server.host: "192.166.166.122"
elasticsearch.hosts: ["http://192.166.166.122:9200"]
开放端口
sudo firewall-cmd --zone=public --add-port=5601/tcp --permanent
sudo firewall-cmd --reload
启动:不能使用root用户
[root@localhost kibana-7.8.0-linux-x86_64]# su es
[es@localhost kibana-7.8.0-linux-x86_64]$ nohup bin/kibana >/dev/null 2>&1 &
访问地址:http://192.166.166.122:5601