【elasticsearch】elasticsearch8.0.1使用rpm包安装并启用TLS

背景

公司的业务需要在加密的情况下使用,为此,研究测试了一下es8是如何启用TLS的。以下是测试使用过程。

x-pack了解

在 Elasticsearch 7.11.0 版本及更高版本中,X-Pack 功能在默认情况下已经整合到 Elastic Stack 的各个组件中,并且具有不同的名称和许可证。以下是 Elastic Stack 中一些主要的 X-Pack 功能和对应的新名称:

  • 安全性(Security):提供了身份验证、授权、加密通信和安全审计等功能,用于保护 Elasticsearch 和 Kibana 的访问和数据安全。

  • 警报(Alerting):用于配置和管理警报规则,当符合特定条件时,发送通知、触发操作或运行自定义脚本。

  • 监控(Monitoring):提供了集群健康状况、节点性能和资源使用情况等实时监控指标,以及用于可视化和分析的监控仪表板。

  • 报告(Reporting):用于生成漂亮的报表和可视化图表,支持将报告导出为 PDF、CSV 或 PNG 格式,并支持计划定期生成和发送报告。

  • 图形探索(Graph Exploration):用于分析和可视化数据之间的关系,帮助发现隐藏的模式和连接。

  • 机器学习(Machine Learning):提供了强大的机器学习功能,用于自动检测异常、预测趋势和进行故障检测。

请注意,具体的功能和名称可能会随着 Elastic Stack 版本的更新而有所变化,请参考官方文档以获取最新的信息和功能详细说明。

基本知识

1、默认情况下,服务器将使用两个端口进行通讯,9200与9300:

  • 9200,用于http通讯,各类restful客户端,例如kibana,浏览器直接访问、agent等等需要通过该端口与服务器连接。
  • 9300,用于elasticsearch服务器集群内各服务器节点间的通讯。

2、如果首次使用yum或者rpm按装elasticsearch服务器,安装程序会自动进行安全配置,并生成几个安全配置需要的文件,如ca的keystore、用于http加密通讯的keystore(http.p12)等,这些最好保留下来,当然,我们也可以用它提供的证书工具在后面自行创建。注意,如果不是首次安装,而又希望系统再次自动生成安全配置,需要先把/var/lib/elasticsearch里的东西删除干净。

3、通过自动安全配置生成的几个文件会放在/usr/share/elasticsearch下:

  • elastic-stack-ca.p12 keystore文件,存储了ca的公共证书及用于签发其他证书的密钥。(默认没有这个文件,可以自己手动生成)
  • transport.p12 包含了传输层密钥和证书,用于elasticsearch节点间加密通讯。
  • http.p12 这个keystore存储着http加密通讯需要的证书和密钥。
  • http_ca.crt 证书文件,用于集群内的http通讯加密。

es安装

环境介绍

单台 centos7部署单节点elasticsearch8.0.1

下载安装

elasticsearch中文下载地址:https://elasticsearch.cn/download/
选择自己需要的版本(windows、Linux、mac等),但需要注意不同版本之间的区别,我此次使用es 8.0.1的rpm包进行测试。

#rpm包下载
[root@k8s-m2 ~]# wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-8.0.1-x86_64.rpm
#直接使用rpm安装
warning: elasticsearch-8.0.1-x86_64.rpm: Header V4 RSA/SHA512 Signature, key ID d88e42b4: NOKEY
Preparing...                          ################################# [100%]
Creating elasticsearch group... OK
Creating elasticsearch user... OK
Updating / installing...1:elasticsearch-0:8.0.1-1          ################################# [100%]
warning: ignoring JAVA_HOME=/opt/jdk1.8.0_65; using bundled JDK
warning: ignoring JAVA_HOME=/opt/jdk1.8.0_65; using bundled JDK
--------------------------- Security autoconfiguration information ------------------------------Authentication and authorization are enabled.
TLS for the transport and HTTP layers is enabled and configured.The generated password for the elastic built-in superuser is : =GAe2y2Rqi0mvxjFMDZkIf this node should join an existing cluster, you can reconfigure this with
'/usr/share/elasticsearch/bin/elasticsearch-reconfigure-node --enrollment-token <token-here>'
after creating an enrollment token on your existing cluster.You can complete the following actions at any time:Reset the password of the elastic built-in superuser with 
'/usr/share/elasticsearch/bin/elasticsearch-reset-password -u elastic'.Generate an enrollment token for Kibana instances with '/usr/share/elasticsearch/bin/elasticsearch-create-enrollment-token -s kibana'.Generate an enrollment token for Elasticsearch nodes with 
'/usr/share/elasticsearch/bin/elasticsearch-create-enrollment-token -s node'.-------------------------------------------------------------------------------------------------
### NOT starting on installation, please execute the following statements to configure elasticsearch service to start automatically using systemdsudo systemctl daemon-reloadsudo systemctl enable elasticsearch.service
### You can start elasticsearch service by executingsudo systemctl start elasticsearch.service
warning: ignoring JAVA_HOME=/opt/jdk1.8.0_65; using bundled JDK
warning: ignoring JAVA_HOME=/opt/jdk1.8.0_65; using bundled JDK```

正常情况下,该版本的安装会出现以上的一些信息,如果没有,可能是由于不是第一次安装有之前遗留下的一些文件。仔细查看上面的输出信息说明,默认情况下认证已经启用并配置好,节点的加入方式,密码重置,token的生成等。

环境调整
由于es服务需要服务器调整连接数,修改limits.conf文件,如下:

vim /etc/security/limits.conf  
* soft nofile 655350
* hard nofile 655350

调整vm.max_map_coun,检查当前的 vm.max_map_count 值:如果当前的值小于 262144,需要调整。否则,如果当前的值已经达到或超过 262144,那么可以不进行任何更改,当然也可以适量调大一点。

[root@k8s-m2 ~]# sysctl vm.max_map_count
[root@k8s-m2 ~]# echo "vm.max_map_count=655360" >> /etc/sysctl.conf 
[root@k8s-m2 ~]# sysctl -p

jvm使用内存大小调整,默认情况下,es配置使用的是-Xms4g和-Xmx4g,可以按照自己所需进行调整。

启动

[root@k8s-m2 opt]# systemctl start elasticsearch.service
[root@k8s-m2 opt]# systemctl status  elasticsearch
● elasticsearch.service - ElasticsearchLoaded: loaded (/usr/lib/systemd/system/elasticsearch.service; disabled; vendor preset: disabled)Active: active (running) since Mon 2023-10-09 10:44:39 CST; 20min agoDocs: https://www.elastic.coMain PID: 24259 (java)Tasks: 96Memory: 4.4GCGroup: /system.slice/elasticsearch.service├─24259 /usr/share/elasticsearch/jdk/bin/java -Xshare:auto -Des.networkaddress.cache.ttl=60 -Des.networkaddress.cache.negative.ttl=10 -Djava.security.manager=allow -XX:+AlwaysPreTouch -Xss1m -Djava.awt.headless=true -Dfile...└─24694 /usr/share/elasticsearch/modules/x-pack-ml/platform/linux-x86_64/bin/controllerOct 09 10:44:12 k8s-m2 systemd[1]: Starting Elasticsearch...
Oct 09 10:44:39 k8s-m2 systemd[1]: Started Elasticsearch.
[root@k8s-m2 opt]# 

常用命令说明

使用yum或者rpm安装时,和es相关的命令存放在/usr/share/elasticsearch/bin目录

#elastic用户命令重置,其他用户类似指定
[root@k8s-m2 opt]# /usr/share/elasticsearch/bin/elasticsearch-reset-password -u elastic 
#默认生成证书时配置的密码等信息
[root@k8s-m2 opt]# /usr/share/elasticsearch/bin/elasticsearch-keystore list
warning: ignoring JAVA_HOME=/opt/jdk1.8.0_65; using bundled JDK
autoconfiguration.password_hash
keystore.seed
xpack.security.http.ssl.keystore.secure_password
xpack.security.transport.ssl.keystore.secure_password
xpack.security.transport.ssl.truststore.secure_password
#查看具体某项配置的密码
[root@k8s-m2 opt]# /usr/share/elasticsearch/bin/elasticsearch-keystore show xpack.security.http.ssl.keystore.secure_password
warning: ignoring JAVA_HOME=/opt/jdk1.8.0_65; using bundled JDK
0w9Z7YiEQG2rMWprA-8rYQ
#修改具体某项的密码,如果之前已经设置,可以覆盖
[root@k8s-m2 opt]# /usr/share/elasticsearch/bin/elasticsearch-keystore add xpack.security.http.ssl.keystore.secure_password#命令行检查
[root@k8s-m2 certs]# curl --cacert http_ca.crt -u elastic:=GAe2y2Rqi0mvxjFMDZk  -XGET "https://192.168.2.141:9200/"
{"name" : "k8s-m2","cluster_name" : "elasticsearch","cluster_uuid" : "v5HBM6ACRiy31DBZmSa58g","version" : {"number" : "8.0.1","build_flavor" : "default","build_type" : "rpm","build_hash" : "801d9ccc7c2ee0f2cb121bbe22ab5af77a902372","build_date" : "2022-02-24T13:55:40.601285296Z","build_snapshot" : false,"lucene_version" : "9.0.0","minimum_wire_compatibility_version" : "7.17.0","minimum_index_compatibility_version" : "7.0.0"},"tagline" : "You Know, for Search"
}#更多选项查看,按自己所需查看
[root@k8s-m2 certs]# curl --cacert http_ca.crt -u elastic:=GAe2y2Rqi0mvxjFMDZk  -XGET "https://192.168.2.141:9200/_cat"
=^.^=
/_cat/allocation
/_cat/shards
/_cat/shards/{index}
/_cat/master
/_cat/nodes
/_cat/tasks
/_cat/indices
/_cat/indices/{index}
/_cat/segments
/_cat/segments/{index}
/_cat/count
/_cat/count/{index}
/_cat/recovery
/_cat/recovery/{index}
/_cat/health
/_cat/pending_tasks
/_cat/aliases
/_cat/aliases/{alias}
/_cat/thread_pool
/_cat/thread_pool/{thread_pools}
/_cat/plugins
/_cat/fielddata
/_cat/fielddata/{fields}
/_cat/nodeattrs
/_cat/repositories
/_cat/snapshots/{repository}
/_cat/templates
/_cat/ml/anomaly_detectors
/_cat/ml/anomaly_detectors/{job_id}
/_cat/ml/trained_models
/_cat/ml/trained_models/{model_id}
/_cat/ml/datafeeds
/_cat/ml/datafeeds/{datafeed_id}
/_cat/ml/data_frame/analytics
/_cat/ml/data_frame/analytics/{id}
/_cat/transforms
/_cat/transforms/{transform_id}

kibana连接加密的es

kibana下载安装

[root@k8s-m2 opt]# wget https://artifacts.elastic.co/downloads/kibana/kibana-8.0.1-x86_64.rpm
[root@k8s-m2 opt]# rpm -ivh kibana-8.0.1-x86_64.rpm

生成kibana需要的相关证书

注意在这过程中要输入密码,具体密码为上面/usr/share/elasticsearch/bin/elasticsearch-keystore show xpack.security.http.ssl.keystore.secure_password查看到的密码。

[root@k8s-m2 certs]# pwd
/etc/elasticsearch/certs
[root@k8s-m2 certs]# ll
-rw-rw---- 1 root elasticsearch 1915 Oct  9 09:57 http_ca.crt
-rw-rw---- 1 root elasticsearch 9981 Oct  9 09:57 http.p12
-rw-rw---- 1 root elasticsearch 5822 Oct  9 09:57 transport.p12# Private Key 私钥
[root@k8s-m2 certs]# openssl pkcs12 -in http.p12 -nocerts -nodes > client.key
# Public Certificate 公共证书
[root@k8s-m2 certs]# openssl pkcs12 -in http.p12 -clcerts -nokeys > client.cer
# CA Certificate 签署公共证书的CA
[root@k8s-m2 certs]# openssl pkcs12 -in http.p12 -cacerts -nokeys -chain > client-ca.cer[root@k8s-m2 certs]# mkdir /etc/kibana/config/
[root@k8s-m2 certs]# cp /etc/elasticsearch/certs/client* /etc/kibana/config/

主要配置修改

注意:使用的是kibana账户,密码不知道可以用elasticsearch-reset-password(/usr/share/elasticsearch/bin/elasticsearch-reset-password -u kibana)命令进行重置。

server.port: 5601
server.host: "192.168.2.141"
server.publicBaseUrl: "http://192.168.2.141:5601" #最好添加上
elasticsearch.username: "kibana"
elasticsearch.password: "THR__INXYkH_lLCO3vV1"
elasticsearch.ssl.certificate: /etc/kibana/config/client.cer   #相关路径最好写绝对路径
elasticsearch.ssl.key: /etc/kibana/config/client.key
elasticsearch.ssl.certificateAuthorities: /etc/kibana/config/client-ca.cer
elasticsearch.ssl.verificationMode: certificate

kibana启动并检查

[root@k8s-m2 opt]# systemctl start kibana
[root@k8s-m2 opt]# systemctl status kibana -l
#如果kibana异常,可以查看日志进行排查
[root@k8s-m2 opt]# tail -f  /var/log/kibana/kibana.log

kibana访问

使用上面配置的服务器IP+5601地址进行访问。
在这里插入图片描述
账号为elastic,密码为es启动时输出到界面的密码。当然不记得也可以进行修改。

更多关于elasticsearch的知识分享,请前往博客主页。编写过程中,难免出现差错,敬请指出

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/103821.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Element-UI的使用——表格el-table组件去除边框、滚动条设置、隔行变色、去除鼠标悬停变色效果(基于less)

// Element-ui table表格去掉所有边框,如下&#xff1a; // 备注&#xff1a;若去掉所有边框&#xff0c;可自行将头部边框注释掉即可 // 该样式写在style scoped外面在el-table 中添加class"customer-table"类名 //去掉每行的下边框/deep/ .el-table td.el-table__c…

LCR 161.连续天数最高销售额

​​题目来源&#xff1a; leetcode题目&#xff0c;网址&#xff1a;LCR 161. 连续天数的最高销售额 - 力扣&#xff08;LeetCode&#xff09; 解题思路&#xff1a; 动态规划。对于第 i 个元素 sales[i]&#xff0c;若以第 i-1 个元素 sales[i-1] 为结尾的最大连续和 f(n-2)…

使用js怎么设置视频背景

要使用JavaScript设置网页的视频背景&#xff0c;你需要将视频元素添加到你的HTML文档中&#xff0c;然后使用JavaScript来控制它 首先&#xff0c;在你的HTML文件中添加一个 <video> 元素 <video id"video-background" autoplay muted loop><sourc…

勒索病毒最新变种.Malloxx勒索病毒来袭,如何恢复受感染的数据?

导言&#xff1a; 勒索病毒已经成为网络威胁的一个突出问题。其中&#xff0c;.Malloxx勒索病毒是一个危险的勒索软件&#xff0c;它能够加密你的数据文件&#xff0c;使其无法访问。本文91数据恢复将向您介绍.Malloxx勒索病毒的特点&#xff0c;以及如何恢复被其加密的数据文…

【MySQL】表的内连和外连

文章目录 一. 内连接二. 外连接1. 左外连接2. 右外连接 一. 内连接 利用where子句对两种表形成的笛卡尔积进行筛选&#xff0c;其实就是内连接的一种方式 另一种方式是inner join select 字段 from 表1 inner join 表2 on 连接条件 and 其他条件现在有如下表 mysql> desc…

M2芯片的Mac上安装Linux虚拟机——提前帮你踩坑

M2芯片的Mac上安装Linux虚拟机——提前帮你踩坑 1. 前言1.1 系统说明1.2 Linux系统选择——提前避坑1.3 下载vmware_fusion1.3.1 官网下载1.3.2 注册 CAPTCHA验证码问题1.3.3 产品说明 1.4 下载操作系统镜像1.4.1 下载centos&#xff08;如果版本合适的&#xff09;1.4.2 下载…

c 几种父进程主动终止子进程的方法

1.如子进程是循环状态 子进程循环等待键盘的输入&#xff0c;如父进程模拟键盘输入一个字符&#xff0c;子进程收到就跳出scanf&#xff08;&#xff09;。同理&#xff0c;如是socket 的accept&#xff08;&#xff09;等待&#xff0c;也可以发送一字符&#xff0c;让子进程…

Excel 自动提取某一列不重复值

IFERROR(INDEX($A$1:$A$14,MATCH(0,COUNTIF($C$1:C1,$A$1:$A$14),0)),"")注意&#xff1a;C1要空置&#xff0c;从C2输入公式 参考&#xff1a; https://blog.csdn.net/STR_Liang/article/details/105182654 https://zhuanlan.zhihu.com/p/55219017?utm_id0

c++视觉处理---直方图均衡化

直方图均衡化 直方图均衡化是一种用于增强图像对比度的图像处理技术。它通过重新分布图像的像素值&#xff0c;以使图像的直方图变得更均匀&#xff0c;从而提高图像的视觉质量。在OpenCV中&#xff0c;您可以使用 cv::equalizeHist 函数来执行直方图均衡化。以下是 cv::equal…

06-Zookeeper选举Leader源码剖析

上一篇&#xff1a;05-Zookeeper典型使用场景实战 一、为什么要看源码 提升技术功底&#xff1a;学习源码里的优秀设计思想&#xff0c;比如一些疑难问题的解决思路&#xff0c;还有一些优秀的设计模式&#xff0c;整体提升自己的技术功底深度掌握技术框架&#xff1a;源码看多…

Jenkins更换主目录

Jenkins储存所有的数据文件在这个目录下. 你可以通过以下几种方式更改&#xff1a; 使用你Web容器的管理工具设置JENKINS_HOME环境参数.在启动Web容器之前设置JENKINS_HOME环境变量.(不推荐)更改Jenkins.war(或者在展开的Web容器)内的web.xml配置文件. 这个值在Jenkins运行时…

ExcelBDD Python指南

在Python里面支持BDD Excel BDD Tool Specification By ExcelBDD Method This tool is to get BDD test data from an excel file, its requirement specification is below The Essential of this approach is obtaining multiple sets of test data, so when combined with…

【【萌新的SOC学习之自定义IP核 AXI4接口】】

萌新的SOC学习之自定义IP核 AXI4接口 自定义IP核-AXI4接口 AXI接口时序 对于一个读数据信号 AXI突发读 不要忘记 最后还有拉高RLAST 表示信号的中止 实验任务 &#xff1a; 通过自定义一个AXI4接口的IP核 &#xff0c;通过AXI_HP接口对PS端 DDR3 进行读写测试 。 S_AXI…

软件设计之抽象工厂模式

抽象工厂模式指把一个产品变成一个接口&#xff0c;它的子产品作为接口的实现&#xff0c;所以还需要一个总抽象工厂和它的分抽象工厂。 下面我们用一个案例去说明抽象工厂模式。 在class中可以选择super类和medium类&#xff0c;即选择一个产品的子类。在type中可以选择产品的…

c++处理图像---绘制物体的凸包:cv::convexHull

绘制物体的凸包&#xff1a;cv::convexHull cv::convexHull 是OpenCV中用于计算点集的凸包&#xff08;convex hull&#xff09;的函数。凸包是包围点集的最小凸多边形&#xff0c;该多边形的所有内部角都小于或等于 180 度。 cv::convexHull 函数的基本用法如下&#xff1a;…

用idea工具scala 和 Java开发 spark案例:WordCount

目录 一 环境准备 二 scala代码编写 三 java 代码编写 一 环境准备 创建一个 maven 工程 添加下列依赖 <dependency><groupId>org.apache.spark</groupId><artifactId>spark-core_2.12</artifactId><version>${spark.version}</vers…

Android Studio for Platform (ASfP) 使用教程

文章目录 编写脚本下载源代码lunch 查看版本 归纳的很清楚&#xff0c;下载Repo并下载源码->可以参考我的 Framework入门のPiex 6P源码(下载/编译/刷机) 启动图标&#xff08;重启生效&#xff09; [Desktop Entry] EncodingUTF-8 NameAndroidStudio …

大模型微调学习

用好大模型的层次&#xff1a;1. 提示词工程(prompt engineering); 2. 大模型微调(fine tuning)为什么要对大模型微调&#xff1a; 1. 大模型预训练成本非常高&#xff1b; 2. 如果prompt engineering的效果达不到要求&#xff0c;企业又有比较好的自有数据&#xff0c;能够通过…

C++使用两个栈实现双端队列——F1 B1 B2 B3 B4 B5 PF PF PB PB

用两个栈v1,v2分别表示左栈和右栈&#xff0c;即可实现双端队列。 当从前面插入元素时&#xff0c;v1.push() 当从后面插入元素时&#xff0c;v2.push() 当两个栈都不空的时候&#xff0c;不管前面后面出栈&#xff0c;都直接Pop 当有一个栈空&#xff0c;比如左栈v1空了&am…

scapy构造ND报文

控制报文之&#xff1a;找邻居报文 什么是ND报文 ND报文是指网络中的 Neighbor Discovery&#xff08;ND&#xff09;控制报文。Neighbor Discovery 是 IPv6 网络中的一种协议&#xff0c;它用于管理网络节点之间的邻居关系、地址解析、路由缓存维护和自动配置等任务。ND 协议…