elasticseach7.1.1集成opendistro,以https的方式访问elasticsearch

在很久很久以前,天地初开,万物都出现了。公司要上一个项目,需要用到elasticsearch,经过讨论,我们要使用带有用户密码的 es ,这也不是什么难事儿,现在版本的 es 本身默认启动的时候都需要设置用户密码。但是我们这次的项目是部署在某云上的,结果在某云上直接开了个 elasticsearch ,选择了带有用户密码的,结果开完以后,点了kibana连接,发现 kibana的页面和我做的不一样,仔细一看,是https 的,研发使用代码用 http 的方式连 es 也失败,提工单一问,访问 es 也需要 https 的方式访问。那就要自己在公司内网也部署一套这样的 es 了 ,于是乎,就发生了下面的故事。调研elasticsearch 如何加密传输…
经过老夫的询问,原来某云用的是 opendistro 做的 https,于是放狗搜一下,找到了这个github 项目的地址:github项目地址

废话不多说,以下是我总结的安装方式,希望能帮需要的哥们儿解决燃眉之急。(一下文档我顺手安装了些插件,需要的也可以安装)


一、服务器共三台

ip主机名部署服务安装路径
192.168.7.41elastic41elasticsearch自带jdk、elasticsearch7.1.1、opendistro相关插件、kibana/data/elasticsearch-7.1.1 和 /data/kibana-7.1.1-linux-x86_64
192.168.7.42elastic42elasticsearch自带jdk、elasticsearch7.1.1、opendistro相关插件/data/elasticsearch-7.1.1
192.168.7.43elastic43elasticsearch自带jdk、elasticsearch7.1.1、opendistro相关插件/data/elasticsearch-7.1.1

二、准备环境和所需文件
在每个节点执行

mkdir -p /data/pack
useradd elastic
chown elastic. /data
echo "vm.max_map_count=262144" >> /etc/sysctl.conf
sysctl -p
echo "* soft nofile 65535" >> /etc/security/limits.conf
echo "* hard nofile 65535" >> /etc/security/limits.conf

在elastic41 上下载文件
下载elasticsearch 和 kibana

su - elastic
cd /data/pack
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.1.1-linux-x86_64.tar.gz
wget https://artifacts.elastic.co/downloads/kibana/kibana-7.1.1-linux-x86_64.tar.gz

下载elasticsearch的 opendistro 加密相关插件

wget https://d3g5vo6xdbdb9a.cloudfront.net/downloads/elasticsearch-plugins/opendistro-alerting/opendistro_alerting-1.1.0.0.zip
wget https://d3g5vo6xdbdb9a.cloudfront.net/downloads/elasticsearch-plugins/opendistro-security/opendistro_security-1.1.0.0.zip 
wget https://d3g5vo6xdbdb9a.cloudfront.net/downloads/elasticsearch-plugins/opendistro-sql/opendistro_sql-1.1.0.0.zip

下载kibana 的 opendistro 加密相关插件

wget https://d3g5vo6xdbdb9a.cloudfront.net/downloads/kibana-plugins/opendistro-alerting/opendistro-alerting-1.1.0.0.zip
wget https://d3g5vo6xdbdb9a.cloudfront.net/downloads/kibana-plugins/opendistro-security/opendistro_security_kibana_plugin-1.1.0.0.zip

下载elasticsearch的常用插件

wget https://artifacts.elastic.co/downloads/elasticsearch-plugins/analysis-icu/analysis-icu-7.1.1.zip
wget https://artifacts.elastic.co/downloads/elasticsearch-plugins/analysis-kuromoji/analysis-kuromoji-7.1.1.zip
wget https://artifacts.elastic.co/downloads/elasticsearch-plugins/analysis-nori/analysis-nori-7.1.1.zip
wget https://artifacts.elastic.co/downloads/elasticsearch-plugins/ingest-attachment/ingest-attachment-7.1.1.zip
wget https://github.com/medcl/elasticsearch-analysis-pinyin/releases/download/v7.1.1/elasticsearch-analysis-pinyin-7.1.1.zip
wget https://github.com/medcl/elasticsearch-analysis-stconvert/releases/download/v7.1.1/elasticsearch-analysis-stconvert-7.1.1.zip
wget https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.1.1/elasticsearch-analysis-ik-7.1.1.zip

三、安装各插件到es和kibana

解压es和kibana文件到 /data 下

tar xvf elasticsearch-7.1.1-linux-x86_64.tar.gz -C ../
tar xvf kibana-7.1.1-linux-x86_64.tar.gz -C ../
chown -R elastic. /data/elasticsearch-7.1.1
chown -R elastic. /data/kibana-7.1.1-linux-x86_64

到es安装目录中安装 opendistro 加密插件

cd /data/elasticsearch-7.1.1
bin/elasticsearch-plugin install file:///data/pack/opendistro_sql-1.1.0.0.zip
bin/elasticsearch-plugin install file:///data/pack/opendistro_alerting-1.1.0.0.zip
bin/elasticsearch-plugin install file:///data/pack/opendistro_security-1.1.0.0.zip

到es安装目录中安装常用插件

bin/elasticsearch-plugin install file:///data/pack/analysis-icu-7.1.1.zip
bin/elasticsearch-plugin install file:///data/pack/analysis-kuromoji-7.1.1.zip
bin/elasticsearch-plugin install file:///data/pack/analysis-nori-7.1.1.zip
bin/elasticsearch-plugin install file:///data/pack/elasticsearch-analysis-ik-7.1.1.zip
bin/elasticsearch-plugin install file:///data/pack/ingest-attachment-7.1.1.zip
bin/elasticsearch-plugin install file:///data/pack/elasticsearch-analysis-pinyin-7.1.1.zip
bin/elasticsearch-plugin install file:///data/pack/elasticsearch-analysis-stconvert-7.1.1.zip

到kibana目录中安装opendistro 加密插件

cd /data/kibana-7.1.1-linux-x86_64
bin/kibana-plugin install file:///data/pack/opendistro-alerting-1.1.0.0.zip 
bin/kibana-plugin install file:///data/pack/opendistro_security_kibana_plugin-1.1.0.0.zip

四、修改配置文件

cd /data/elasticsearch-7.1.1
cat > config/elasticsearch.yml <<EOF
# ======================== Elasticsearch Configuration =========================
# Elasticsearch config
cluster.initial_master_nodes: ['192.168.7.41', '192.168.7.42', '192.168.7.43']
discovery.seed_hosts: ['192.168.7.41', '192.168.7.42', '192.168.7.43']
cluster.name: Es-dev
node.name: Es-dev41
network.host: 192.168.7.41
gateway.expected_nodes: 1
gateway.recover_after_time: 5m

# Elasticsearch opendistro
opendistro_security.disabled: False
opendistro_security.ssl.transport.pemcert_filepath: node.crt.pem
opendistro_security.ssl.transport.pemkey_filepath: node.key.pem
opendistro_security.ssl.transport.pemtrustedcas_filepath: root-ca.pem
opendistro_security.ssl.transport.enforce_hostname_verification: false
opendistro_security.ssl.http.enabled: true
opendistro_security.ssl.http.pemcert_filepath: node.crt.pem
opendistro_security.ssl.http.pemkey_filepath: node.key.pem
opendistro_security.ssl.http.pemtrustedcas_filepath: root-ca.pem
opendistro_security.allow_default_init_securityindex: true
opendistro_security.authcz.admin_dn:
  - CN=kirk,OU=client,O=client,L=Shenzhen,C=CN
opendistro_security.ssl.http.enabled_ciphers:
  - "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256"
  - "TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256"
  - "TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA"
  - "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA"
  - "TLS_RSA_WITH_AES_128_CBC_SHA256"
  - "TLS_RSA_WITH_AES_128_CBC_SHA"
  - "TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384"
  - "TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384"
  - "TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA"
  - "TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA"
  - "TLS_RSA_WITH_AES_256_CBC_SHA256"
  - "TLS_RSA_WITH_AES_256_CBC_SHA"
opendistro_security.ssl.http.enabled_protocols:
  - "TLSv1.2"
opendistro_security.audit.type: internal_elasticsearch
opendistro_security.enable_snapshot_restore_privilege: true
opendistro_security.check_snapshot_restore_write_privileges: true
opendistro_security.restapi.roles_enabled: ["all_access", "security_rest_api_access"]
EOF

五、删除elasticsearch和kibana安装目录下的modules中的x-pack 相关插件,x-pack插件和opendistro插件有冲突,必须删除。也就是说,用了x-pack就不能用opendistro,蛋疼不蛋疼。。。

rm -fr /data/elasticsearch-7.1.1/modules/x-pack-security
rm -fr /data/kibana-7.1.1-linux-x86_64/node_modules/x-pack

六、生成pem文件到 /data/elasticsearch-7.1.1/config 目录下,将/data/elasticsearch-7.1.1传到其他两个节点,并修改文件中network.host和node.name 字段,并修改文件目录权限,然后启动
生成 pem 文件,可以使用github 中的方式生成,也可以直接用我这里已经合成好的,启动后把密码重新打入pem文件就可以了,文件下载地址:https://download.csdn.net/download/qq_31547771/11961047 ,下载好后解压到 config 路径下

chown -R elastic. /data
scp -r /data/elasticsearch-7.1.1 root@192.168.7.42:/data/
scp -r /data/elasticsearch-7.1.1 root@192.168.7.43:/data/

到192.168.7.42 和 192.168.7.43 上将配置文件中 network.host和node.name 字段改成 本机的

然后先在前台启动各节点的es,方便看报错。并查看日志是否有报错,是否选举了master

/data/elasticsearch-7.1.1/bin/elasticsearch

七、为https的elasticsearch创建用户密码

先生成internal_users_2019-Oct-25_15-55-25.yml文件,看自己生成的文件名是什么名字,我生成的是这个

cd plugins/opendistro_security/tools/
sh securityadmin.sh -r -h 192.168.7.41 -p 9300 -cd /tmp/es/ -icl -nhnv -cacert /data/elasticsearch-7.1.1/config/root-ca.pem -cert /data/elasticsearch-7.1.1/config/kirk.all.pem -key /data/elasticsearch-7.1.1/config/kirk.all.pem

然后使用 hash.sh 脚本生成elasticsearch 登录密码的哈希密文,写到 internal_users_2019-Oct-25_15-55-25.yml文件中,写入位置如下图所示。

bash hash.sh

在这里输入密码后,会返回 哈希值,然后将 hash 值贴到 internal_users_2019-Oct-25_15-55-25.yml文件中(想要不同用户使用不同密码,就多hash几个不同的密码)
在这里插入图片描述

vim /tmp/es/internal_users_2019-Oct-25_15-55-25.yml

在这里插入图片描述

sh securityadmin.sh -h 192.168.7.41 -p 9300 -f /tmp/es/internal_users_2019-Oct-25_15-55-25.yml -icl -nhnv -cacert /data/elasticsearch-7.1.1/config/root-ca.pem -cert /data/elasticsearch-7.1.1/config/kirk.all.pem -key /data/elasticsearch-7.1.1/config/kirk.all.pem -t internalusers

测试刚刚生成的密码,我的密码是 admin@123

curl -ik https://192.168.7.41:9200 -uadmin:admin@123

八、启动kibana

cd /data/kibana-7.1.1-linux-x86_64
cat > config/kibana.yml <<EOF
server.host: "192.168.7.41"
elasticsearch.username: "kibanaserver"
elasticsearch.password: "admin@123"
elasticsearch.ssl.verificationMode: none
server.ssl.enabled: false
server.ssl.certificate: /data/elasticsearch-7.1.1/config/node.crt.pem
server.ssl.key: /data/elasticsearch-7.1.1/config/node.key.pem
server.rewriteBasePath: false
elasticsearch.hosts: https://192.168.7.42:9200
EOF
nohup ./bin/kibana >> kibana.log &
评论 5 您还未登录,请先 登录 后发表或查看评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:书香水墨 设计师:CSDN官方博客 返回首页

打赏作者

运维攻城狮 Linke

哥不缺钱,给个赞就行

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值