手动安装版
一. 安装es
- es安装包下载 官网下载链接
-
使用rz命令上传到服务器
-
解压
tar -xvf elasticsearch-7.15.0-linux-x86_64.tar.gz
- 配置jdk 因为解压的es中自带了jdk,所以不需要单独下载jdk,只需要在linux服务配置好java环境即可
修改文件vim /etc/profile
JAVA_HOME=/data/elasticsearch-7.15.0/jdk
PATH=$PATH:./:$JAVA_HOME/bin
export PATH JAVA_HOME
生效配置文件source /etc/profile
- 创建用户 因为es不能在root用户下运行
groupadd te
useradd te -g te
chown -R te:te /data/elasticsearch-7.15.0/
- 启动es
切换用户到te
su te,然后到解压的es目录下面运行./bin/elasticsearch
二. 搭建集群
-
首先需要准备三台服务器
-
安装第一个环节中上传包,并且配置jdk环境
-
修改运行所需要的配置文件
修改文件vim /etc/security/limits.conf 在最后一行添加如下:
* soft nofile 65536
* hard nofile 131072
* soft nproc 4096
* hard nproc 4096
修改文件vim /etc/sysctl.conf,添加如下:
vm.max_map_count=655360
生效文件sysctl -p
- 修改es配置文件
修改主节点配置文件如下:vim config/elasticsearch.yml:
cluster.name: es-cluster
node.name: es01
path.data: /data/elasticsearch-7.15.0/data
path.logs: /data/elasticsearch-7.15.0/logs
bootstrap.memory_lock: false
bootstrap.system_call_filter: false
network.host: 0.0.0.0
http.port: 9200
transport.tcp.port: 9300
discovery.seed_hosts: ["192.168.64.129", "192.168.64.130","192.168.64.131"]
cluster.initial_master_nodes: ["es01"]
http.cors.enabled: true
http.cors.allow-origin: "*"
其他节点子配置文件需要修改node.name 就行
如果运行的过程中保证几台机子能互通,并且关闭了防火墙
- 访问
三. 安装header插件
- 下载 elasticsearch-head-master.zip 下载地址:github.com/mobz/elasti…
git clone git://github.com/mobz/elasticsearch-head.git
- 复制该包到到es的插件目录
mv elasticsearch-head /data/elasticsearch-7.15.0/plugins/
cd /data/elasticsearch-7.15.0/plugins/elasticsearch-head
- 下载node.js
elasticsearch-head-master]# curl --silent --location https://rpm.nodesource.com/setup_10.x | bash -
elasticsearch-head-master]# yum install -y nodejs
- 查看是否安装成功:
elasticsearch-head-master]# node -v
v10.16.0
elasticsearch-head-master]# npm -v
6.9.0
- 安装grunt
elasticsearch-head-master]# npm install -g grunt-cli
elasticsearch-head-master]# npm install
- 修改es配置,加入如下内容
http.cors.enabled: true
http.cors.allow-origin: "*"
- 修改head配置 打开elasticsearch-head-master/Gruntfile.js,找到connect属性
server: {
options: {
hostname: '127.0.0.1',
port: 9100,
base: '.',
keepalive: true
}
}
- 启动Head插件
grunt server
- 访问
四. 安装kibana
- 上传并解压
tar -xvf kibana-7.15.0-linux-x86_64.tar.gz -C /data/
- 修改配置文件
vim config/kibana.yml修改下面两项
- 启动
./bin/kibana --allow-root
docker安装版
一、拉取镜像
主要拉取如下的docker镜像
docker pull elasticsearch:7.6.2
docker pull mobz/elasticsearch-head:5
docker pull kibana:7.6.2
二、创建配置文件
这里搭建的es集群
- 主节点配置文件 准备es1.yml 文件
cluster.name: elasticsearch-cluster
node.name: es-node1
network.bind_host: 0.0.0.0
network.publish_host: _eth0_
http.port: 9200
transport.tcp.port: 9300
http.cors.enabled: true
http.cors.allow-origin: "*"
node.master: true
node.data: true
discovery.seed_hosts: ["ES01:9300","ES02:9301","ES03:9302"]
cluster.initial_master_nodes: ["es-node1","es-node2","es-node3"]
discovery.zen.minimum_master_nodes: 1
- 从节点
从节点的配置文件和主节点一样,只是有一个不一样node.name: 响应的节点名称
三、写docker-compose.yml文件
version: '3.7'
services:
es1:
image: elasticsearch:7.6.2
container_name: ES01
environment:
- ES_JAVA_OPTS=-Xms256m -Xmx256m
ports:
- "9200:9200"
- "9300:9300"
volumes:
- D:/es/config/es1.yml:/usr/share/elasticsearch/config/elasticsearch.yml
- D:/es/data1:/usr/share/elasticsearch/data
networks:
- es-net
es2:
image: elasticsearch:7.6.2
container_name: ES02
environment:
- ES_JAVA_OPTS=-Xms256m -Xmx256m
ports:
- "9201:9200"
- "9301:9300"
volumes:
- D:/es/config/es2.yml:/usr/share/elasticsearch/config/elasticsearch.yml
- D:/es/data2:/usr/share/elasticsearch/data
networks:
- es-net
es3:
image: elasticsearch:7.6.2
container_name: ES03
environment:
- ES_JAVA_OPTS=-Xms256m -Xmx256m
ports:
- "9202:9200"
- "9302:9300"
volumes:
- D:/es/config/es3.yml:/usr/share/elasticsearch/config/elasticsearch.yml
- D:/es/data3:/usr/share/elasticsearch/data
networks:
- es-net
es-head:
image: mobz/elasticsearch-head:5
ports:
- "9100:9100"
kibana:
image: kibana:7.6.2
container_name: kibana
environment:
- SERVER_NAME=kibana
- ELASTICSEARCH_URL=http://es1:9200
- ELASTICSEARCH_HOSTS=http://es1:9200
- XPACK_MONITORING_ENABLED=true
ports:
- 5601:5601
networks:
- es-net
depends_on:
- es1
external_links:
- es1
networks:
es-net:
driver: bridge
解释:es的挂载目录需要关注,最好抱持一直
四、运行构建
docker-composer up -d
ES集群配置访问权限
1.1 生成密钥
# 生成密钥
bin/elasticsearch-certutil cert -out config/elastic-certificates.p12 -pass ""
# 将密钥复制到其他两台主机上
scp config/elastic-certificates.p12 wenfeng@192.168.64.130:/data/elasticsearch-7.15.0/config
scp config/elastic-certificates.p12 wenfeng@192.168.64.131:/data/elasticsearch-7.15.0/config
1.2 修改es配置文件
修改三台主机es的配置文件中添加如下内容
# 这个是为了header插件访问时带密码时使用
http.cors.allow-headers: Authorization,X-Requested-With,Content-Length,Content-Type
# 配置访问密钥
xpack.security.enabled: true
xpack.security.transport.ssl.enabled: true
xpack.security.transport.ssl.verification_mode: certificate
xpack.security.transport.ssl.keystore.path: /data/elasticsearch-7.15.0/config/elastic-certificates.p12
xpack.security.transport.ssl.truststore.path: /data/elasticsearch-7.15.0/config/elastic-certificates.p12
1.3 初始化密码
bin/elasticsearch-setup-passwords interactive
该命令需要自己手动设置几个初始化密码
1.3 配置kibana访问
修改kibana的配置文件
elasticsearch.username: "elastic"
elasticsearch.password: "elastic"
这个地方的密码就是使用的上面步骤中初始化的密码
1.4 header插件访问
http://192.168.64.129:9100/?auth_user=elastic&auth_password=elastic
其中访问header插件的时候就必须在请求的后面加上用户名和密码