【Linux】ElasticSearch6.0.1及Azkaban3.8部署
2019年5月21日,Elastic官方发布消息: Elastic Stack 新版本6.8.0 和7.1.0的核心安全功能现免费提供。
这意味着用户现在能够对网络流量进行加密、创建和管理用户、定义能够保护索引和集群级别访问权限的角色,并且使用 Spaces 为Kibana.至此,现今出现了一个问题,有些公司用的还是ElasticSearch6.0.1以及比较老的ElasticSearch版本,这写版本的一些基于端口加密的功能等都是要收费的,如果想要使用这些功能的话就需要付费,如果不想付费就需要破解。
Tips
该部署全程都是一步一步实践得来的,需要有一定的动手能力,踩了很多坑呜呜。
其中有两篇文章给了我很多启发:
部署ElasticSearch
安装ElasticSearch
- 上传(yum install lrzsz)
- 解压(tar -zxvf 包名 -C 路径)
- 如果想指定解压路径就必须加-C
- 修改配置文件(vim config/elasticsearch.yml)
- 注意这个配置文件并不是最新的,而后面还会修改。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33 cluster.name: logs_production # 集群名称,同名称为集群节点
node.name: node1 # 节点名称,默认会随机取名称
node.master: true # 是否为master节点
node.data: true # 是否为数据节点
path.data: /home/es/elasticsearch-6.0.1/data # 如果在path.data中写多个目录用“,”分隔,功能类似>于raid 0,而不是做备份
network.host: 192.168.88.161 # 监听主机
http.port: 9201 # 监听端口
transport.tcp.port: 9200 # 传输端口
transport.tcp.compress: true
# 设置集群中master节点的初始列表,可以通过这些节点来自动发现新加入集群的节点
discovery.zen.ping.unicast.hosts: ["192.168.88.161:9200", "192.168.88.162:9200","192.168.88.163:9200"]
cluster.routing.allocation.same_shard.host: true
# 另外一份配置文件
#配置es的集群名称,es会自动发现在同一网段下的es,如果在同一网段下有多个集群,就可以用这个属性来区分不同的集群。
cluster.name:bi-cluster
#节点名称
node.name:node-master
#存储数据的目录
path.data:/home/elasticsearch/data
#存储日志的目录
path.logs:/home/elasticsearch/logs
#设置绑定的ip地址还有其它节点和该节点交互的ip地址
network.host:0.0.0.0
#指定http端口,你使用head、kopf等相关插件使用的端口
http.port:9200
#设置节点间交互的tcp端口,默认是9300
transport.tcp.port:9300
#设置集群中master节点的初始列表,可以通过这些节点来自动发现新加入集群的节点。
discovery.zen.ping.unicast.hosts:["10.108.4.203:9300","10.108.4.204:9300","10.108.4.205:9300"]
#如果没有这种设置,遭受网络故障的集群就有可能将集群分成两个独立的集群-分裂的大脑-这将导致数据丢失
discovery.zen.minimum_master_nodes:3
创建es用户
1
2
3
4
5
6
7
8
9
10
11
12 在root用户下创建es用户并设置密码
useradd es
passwd es
创建es的home目录
mkdir /home/es
添加权限
visudo
:100
es ALL=(ALL) ALL
安装x-pack
1 | 离线安装:bin/elasticsearch-plugin install file:~/install/x-pack-6.0.1.zip |
破解
注意破解只是在主节点一处破解就行,但是jar包需要覆盖所有,添加证书这也是在主节点上进行的!
注意:在添加证书之前必须要设置xpack.security.enabled: false,并且重启集群,然后再执行命令。
如果不按上述方式执行,也就相当于你使用了x-pack,并且想破解x-pack,这个是不被允许的,必须关掉再破解。
1 | ###########1、 |
破解完成之后,别着急重启es
如果没有设置密码,要重设密码:
- bin/elasticsearch-setup-passwords interactive
修改elasticsearch.yml配置
1
2
3
4
5
6
7
8
9 添加如下2行,打开安全配置功能
xpack.security.enabled: true
xpack.security.transport.ssl.enabled: true
x-pack设置完毕后,head无法登陆的问题(无法登录再设置)
在elasticsearch.yml中添加如下三行配置
http.cors.enabled: true
http.cors.allow-origin: "*"
http.cors.allow-headers: Authorization,X-Requested-With,Content-Length,Content-Type
生成证书
破解完之后,你会发现哎,只能启动主节点,其他节点启动报错。
- 找到x-pack目录下的脚本(如果不在bin/x-pack/的目录下,就可能在bin目录下)
运行
elasticsearch-certgen
得到一个压缩包
解压后得到四个文件(ca文件夹有两个,elasticsearch文件夹(上面自己定义的名字嗷)有两个)
复制这两个文件夹到config目录下,同时分发到node2,node3相同的文件夹和目录下
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 [es@node1 elasticsearch-6.0.1]$ ll config/
总用量 20
drwxrwxr-x 2 es es 34 10月 30 15:07 ca
drwxrwxr-x 2 es es 58 10月 30 15:07 cert_directory
-rw-rw---- 1 es es 418 10月 30 14:01 elasticsearch.keystore
-rw-rw---- 1 es es 4070 10月 30 16:52 elasticsearch.yml
-rw-rw---- 1 es es 2672 12月 4 2017 jvm.options
-rw-rw---- 1 es es 5091 12月 4 2017 log4j2.properties
drwxr-x--- 2 es es 104 10月 30 14:01 x-pack
[es@node1 elasticsearch-6.0.1]$ ll config/ca
总用量 8
-rw-rw-r-- 1 es es 1310 10月 30 15:07 ca.crt
-rw-rw-r-- 1 es es 1675 10月 30 15:07 ca.key
[es@node1 elasticsearch-6.0.1]$ ll config/cert_directory/
总用量 8
-rw-rw-r-- 1 es es 1338 10月 30 15:07 cert_directory.crt
-rw-rw-r-- 1 es es 1679 10月 30 15:07 cert_directory.key
分发命令
scp *.crt *.key 192.168.0.162:/home/es/elasticsearch6.0.1/config/ca
scp *.crt *.key 192.168.0.163:/home/es/elasticsearch6.0.1/config/cert_directory
- 最终在配置文件中添加如下
1
2
3 xpack.ssl.key: cert_directory/cert_directory.key
xpack.ssl.certificate: cert_directory/cert_directory.crt
xpack.ssl.certificate_authorities: ca/ca.crt
- 最终的config/elasticsearch.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 cluster.name: logs_production # 集群名称,同名称为集群节点
node.name: node2 # 节点名称,默认会随机取名称
node.master: false # 是否为master节点
node.data: true # 是否为数据节点
path.data: /home/es/elasticsearch-6.0.1/data # 如果在path.data中写多个目录用“,”分隔,功能类似>于raid 0,而不是做备份
network.host: 192.168.88.162 # 监听主机
http.port: 9201 # 监听端口
transport.tcp.port: 9200 # 传输端口
transport.tcp.compress: true
设置集群中master节点的初始列表,可以通过这些节点来自动发现新加入集群的节点
discovery.zen.ping.unicast.hosts: ["192.168.88.161:9200", "192.168.88.162:9200","192.168.88.163:9200"]
cluster.routing.allocation.same_shard.host: true
xpack.security.enabled: true
xpack.security.transport.ssl.enabled: true
http.cors.enabled: true
http.cors.allow-origin: "*"
http.cors.allow-headers: Authorization,X-Requested-With,Content-Length,Content-Type
xpack.ssl.key: cert_directory/cert_directory.key
xpack.ssl.certificate: cert_directory/cert_directory.crt
xpack.ssl.certificate_authorities: ca/ca.crt
Azkaban部署
下载并上传到Linux
1 | 不能上传的话 |
安装
1 | 首先解压文件 |
All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.





