es-kibana集群搭建(7.3版本带x-pack)

一、前言
es因为版本迭代太快,网上的资料大多停留在6.x及之前的版本,但是6.x版本之前的es安全插件x-pack是收费的,如果不付费那es就是裸奔的状态。而从 6.8.0 和 7.1.0 版本开始,x-pack安全功能免费提供,但是网上关于x-pack的安装与使用确极少,本人最近恰好有用到所以记录一下(我这里使用的是7.3版本,我这里搭的是伪集群,搭建正式环境修改对应ip和端口就行)。
二、安装elasticSearch
角色划分:

node ip和端口 地址
node-1 172.31.10.148:9301
172.31.10.148:9201
/home/xdt/tools/es1
node-2 172.31.10.148:9302
172.31.10.148:9202
/home/xdt/tools/es2
node-3 172.31.10.148:9303
172.31.10.148:9203
/home/xdt/tools/es3
  1. 创建一个新用户(不能在root用户下安装,会报错,我这里创建了xdt用户)
  2. 准备系统环境
    设置允许xdt用户打开的最大文件数,要求最小65535
    在/etc/security/limits.conf 下面添加:

xdt soft nofile 65535
xdt hard nofile 65535

设置允许xdt用户打开可以打开的最大线程数,要求最小4096
在/etc/security/limits.conf 下面添加

xdt soft nproc 4096
xdt hard nproc 4096

设置允许的最大映射数,要求最小65530
在/etc/sysctl.conf 下面添加

vm.max_map_count=262144

  1. 切换到新用户下
  2. 切换到es安装包存放位置,我这里是 /home/xdt/tools
  3. 下载elasticSearch安装包
  wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.3.1-linux-x86_64.tar.gz
  1. 解压安装包
  2. 设置jvm.options配置文件
    (1)设置es的堆大小(默认是1g,最大堆大小和最小堆大小建议设置为相等),在jvm.options文件中修改,我这里修改为:

-Xms4g
-Xmx4g

(2)设置gc日志目录
默认: elasticsearch-7.3.1/logs
修改:在jvm.options文件下的8:-Xloggc:写目标地址
(3)设置jvm致命错误日志
默认: elasticsearch-7.3.1/logs
修改:在jvm.options文件下的8-XX:ErrorFile=写目标地址
8. 创建两个文件夹用来存放数据和日志(我这里用的路径是/home/xdt/tools/es1/data和/home/xdt/tools/es1/logs)
9. 打开安装目录,修改config下的elasticsearch.yml配置文件

# 集群中的名称
cluster.name: bk-es
# 该节点名称
node.name: node-1
#数据
path.data: /home/xdt/tools/es1/data
#日志
path.logs: /home/xdt/tools/es1/logs
#主节点
cluster.initial_master_nodes: ["172.31.10.148:9301","172.31.10.148:9302","172.31.10.148:9303"]
# 意思是该节点是否可选举为主节点
node.master: true
# 表示这是数据节点
node.data: true
# 监听全部ip,在实际环境中应为一个安全的ip
network.host: 172.31.10.148
# es服务的端口号
http.port: 9201
# 内部节点之间沟通端口
transport.tcp.port: 9301
http.cors.enabled: true
http.cors.allow-origin: "*"
# 配置自动发现
discovery.seed_hosts: ["172.31.10.148:9301","172.31.10.148:9302","172.31.10.148:9303"]
  1. 安装ik分词器
  2. 下载ik包:
 wget https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.3.1/elasticsearch-analysis-ik-7.3.1.zip
  1. 解压到ik文件夹
  2. 将ik文件夹移动到/home/xdt/tools/es1/elasticsearch-7.3.1/plugins下
  3. 将es1文件夹复制两份(分别为es2,es3)
    修改elasticsearch.yml配置文件
    es2的配置文件为:
# 集群中的名称
cluster.name: bk-es
# 该节点名称
node.name: node-2
#数据
path.data: /home/xdt/tools/es2/data
#日志
path.logs: /home/xdt/tools/es2/logs
#主节点
cluster.initial_master_nodes: ["172.31.10.148:9301","172.31.10.148:9302","172.31.10.148:9303"]
# 意思是该节点是否可选举为主节点
node.master: true
# 表示这是数据节点
node.data: true
# 监听全部ip,在实际环境中应为一个安全的ip
network.host: 172.31.10.148
# es服务的端口号
http.port: 9202
# 内部节点之间沟通端口
transport.tcp.port: 9302
http.cors.enabled: true
http.cors.allow-origin: "*"
# 配置自动发现
discovery.seed_hosts: ["172.31.10.148:9301","172.31.10.148:9302","172.31.10.148:9303"]

es3的配置文件为:

# 集群中的名称
cluster.name: bk-es
# 该节点名称
node.name: node-3
#数据
path.data: /home/xdt/tools/es3/data
#日志
path.logs: /home/xdt/tools/es3/logs
#主节点
cluster.initial_master_nodes: ["172.31.10.148:9301","172.31.10.148:9302","172.31.10.148:9303"]
# 意思是该节点是否可选举为主节点
node.master: true
# 表示这是数据节点
node.data: true
# 监听全部ip,在实际环境中应为一个安全的ip
network.host: 172.31.10.148
# es服务的端口号
http.port: 9203
# 内部节点之间沟通端口
transport.tcp.port: 9303
http.cors.enabled: true
http.cors.allow-origin: "*"
# 配置自动发现
discovery.seed_hosts: ["172.31.10.148:9301","172.31.10.148:9302","172.31.10.148:9303"]
  1. 启动es
  ./bin/elasticsearch -d

#查看集群的健康信息

 curl '172.31.10.148:9201/_cluster/health?pretty'

#查看集群的详细信息

 curl '172.31.10.148:9201/_cluster/state?pretty'

三、X-pack安全配置
生成节点证书

  1. 生成证书颁发机构:执行bin/elasticsearch-certutil ca命令,会提示输入文件目录和密码,我这里没有输入直接回车了,然后生成elastic-stack-ca.p12文件。
  2. 生成证书和私钥:执行bin/elasticsearch-certutil cert --ca elastic-stack-ca.p12(elastic-stack-ca.p12 是前面生成的证书),会提示输入证书颁发机构密码,证书生成目录和证书密码,我这里都没有设置。生成文件elastic-certificates.p12。
    加密集群中的节点之间的通信和账户验证
  3. 在/home/xdt/tools/es1/elasticsearch-7.3.1/config目录下面创建certs目录,并将前面生成的elastic-certificates.p12证书移进去。并将证书复制给其他节点。
  4. 配置elasticsearch.yml配置文件(其他节点配置一样),添加:
xpack.security.enabled: true
xpack.security.transport.ssl.enabled: true
xpack.security.transport.ssl.verification_mode: certificate
xpack.security.transport.ssl.keystore.path: certs/elastic-certificates.p12
xpack.security.transport.ssl.truststore.path: certs/elastic-certificates.p12
  1. 如果生成生成证书和私钥的时候设置了密码,则还需要进行下面操作(每个节点都要)添加密码:
bin/elasticsearch-keystore add xpack.security.transport.ssl.keystore.secure_password
bin/elasticsearch-keystore add xpack.security.transport.ssl.truststore.secure_password
  1. 运行elasticsearch
  2. 设置密码(账号默认为elastic)
    在elasticsearch-7.3.1/bin/目录下运行:
    ./elasticsearch-setup-passwords interactive
    它会不止是设置elasticsearch,其他的kibana、logstash也会一起设置了,密码最好全设置同一个,也可以用下面命令自动生成密码:
./elasticsearch-setup-passwords auto
  1. 修改密码方式
curl -H "Content-Type:application/json" -XPOST -u elastic 'http://172.31.10.148:9201/_xpack/security/user/elastic/_password' -d '{ "password" : "123456" }'
  1. 添加xdt账户并添加至admin角色操作方法
curl -XPOST -H 'Content-type: application/json' -u elastic:elastic 'http://10.59.30.96:9200/_xpack/security/user/xdt?pretty' -d '{
   "password" : "123456",
   "full_name" : "xdt",
   "roles" : ["admin"],
   "email" : "[email protected]"
 }'
  1. 访问发现有了账号密码验证:

es-kibana集群搭建(7.3版本带x-pack)_第1张图片

加密HTTP客户端通信
该配置可配可不配

  1. 配置elasticsearch.yml配置文件(其他节点配置一样),添加:
xpack.security.http.ssl.enabled: true
xpack.security.http.ssl.keystore.path: certs/elastic-certificates.p12
xpack.security.http.ssl.truststore.path: certs/elastic-certificates.p12
  1. 通过https访问:
    es-kibana集群搭建(7.3版本带x-pack)_第2张图片

四、安装kibana

  1. 下载kibana包:
wget https://artifacts.elastic.co/downloads/kibana/kibana-7.3.1-linux-x86_64.tar.gz
  1. 解压安装包
  2. 创建
  3. 打开安装目录,修改config下的kibana.yml配置文件
server.port: 5601 # 配置kibana的端口
server.host: 172.31.10.148 #设置本地ip  
elasticsearch.hosts:["http://:172.31.10.148:9201","http://172.31.10.148:9202","http://172.31.10.148:9203"] # 配置es服务器的ip
i18n.locale: "zh-CN" #配置中文语言
  1. Kibana的配置x-pack:
    修改kibana.yml配置文件,添加es的用户名和密码,添加如下:
elasticsearch.username: "elastic"
elasticsearch.password: "123456"
  1. 启动kibana

你可能感兴趣的:(es,搜索引擎,elasticsearch,java)