Linux: CentOS 7.9 64位
Jdk: 1.8.0_11
ElasticSearch: elasticsearch-7.16.2
下载地址:https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.16.2-x86_64.rpm
Ik-Analysis: elasticsearch-analysis-ik-7.16.2
下载地址:https://github.com/medcl/elasticsearch-analysis-ik/releases
analysis-pinyin: elasticsearch-analysis-pinyin-7.16.2
下载地址:https://github.com/medcl/elasticsearch-analysis-pinyin/releases
elasticsearch-head: elasticsearch-head5.0.0
下载地址:https://codeload.github.com/mobz/elasticsearch-head/tar.gz/refs/tags/v5.0.0
Elasticsearch与jdk版本对应关系

主机规划:
192.168.100.181 es01
192.168.100.182 es02
192.168.100.183 es03
配置:
2 VCPU、2G内存、20G硬盘
修改服务器名称:
hostnamectl set-hostname es01
hostnamectl set-hostname es02
hostnamectl set-hostname es03
之前已经配置好了三节点集群,现在要给集群配置TLS安全通信。
在任一节点上使用elasticsearch-certutil为集群生成CA文件
cd /usr/share/elasticsearch/
./bin/elasticsearch-certutil ca
1、出现提示时,接受默认文件名,即elastic-stack-ca.p12。该文件包含CA的公共证书和用于为每个节点签署证书的私钥。
2、输入你的CA密码。如果不部署到生产环境,您可以选择将密码留空。
在此节点上为集群中的节点生成证书和私钥。包括了elastic-stack-ca.p12,在上一步中生成的输出文件。
./bin/elasticsearch-certutil cert --ca elastic-stack-ca.p12
--ca 用于签署证书的CA文件的名称,默认文件名elastic-stack-ca.p12
1、输入你的CA的密码,或按进入如果在上一步中没有配置。
2、为证书创建一个密码,并接受默认文件名。
输出文件是一个名为elastic-certificates.p12。该文件包含节点证书、节点密钥和CA证书。
3、将elastic-certificates.p12拷贝到每一节点的/etc/elasticsearch/目录下。
4、在每个节点上,给elastic-certificates.p12修改权限,让elasticsearch用户可以读取这个文件。
chmod 660 /etc/elasticsearch/elastic-certificates.p12
传输网络层用于集群中节点之间的内部通信。启用安全功能时,必须使用TLS来确保节点之间的通信是加密的。
现在已经生成了证书颁发机构和证书,现在更新您的集群以使用这些文件。
Elasticsearch监视所有配置为TLS相关节点设置值的文件,如证书、密钥、密钥库或信任库。如果您更新这些文件中的任何一个,比如当您的主机名改变或者您的证书到期时,Elasticsearch会重新加载它们。按照全局弹性搜索确定的频率轮询文件是否有更改resource.reload.interval.high设置,默认为5秒。
1、在集群的所有节点上执行以下操作,
vim /etc/elasticsearch/elasticsearch.yml
添加以下配置
xpack.security.transport.ssl.enabled: true
xpack.security.transport.ssl.verification_mode: certificate
#因为你正在使用相同的elastic-certificates.p12文件,将验证模式设置为证书:
xpack.security.transport.ssl.client_authentication: required
xpack.security.transport.ssl.keystore.path: elastic-certificates.p12
xpack.security.transport.ssl.truststore.path: elastic-certificates.p12
保存后退出;
完整的配置文件
egrep -v "^$|^#" /etc/elasticsearch/elasticsearch.yml
cluster.name: my-els
node.name: es01
path.data: /var/lib/elasticsearch
path.logs: /var/log/elasticsearch
bootstrap.memory_lock: true
xpack.security.transport.ssl.enabled: true
xpack.security.transport.ssl.verification_mode: certificate
xpack.security.transport.ssl.client_authentication: required
xpack.security.transport.ssl.keystore.path: elastic-certificates.p12
xpack.security.transport.ssl.truststore.path: elastic-certificates.p12
network.host: 0.0.0.0
http.port: 9200
http.cors.enabled: true
http.cors.allow-origin: "*"
bootstrap.system_call_filter: false
discovery.seed_hosts: ["192.168.100.181", "192.168.100.182","192.168.100.183"]
cluster.initial_master_nodes: ["192.168.100.181", "192.168.100.182","192.168.100.183"]
2、如果在创建节点证书时输入了密码,需要运行以下命令将密码存储在Elasticsearch密钥库中:
cd /usr/share/elasticsearch/
# ./bin/elasticsearch-keystore add xpack.security.transport.ssl.keystore.secure_password
warning: usage of JAVA_HOME is deprecated, use ES_JAVA_HOME
Future versions of Elasticsearch will require Java 11; your Java version from [/usr/local/jdk1.8.0_11/jre] does not meet this requirement. Consider switching to a distribution of Elasticsearch with a bundled JDK. If you are already using a distribution with a bundled JDK, ensure the JAVA_HOME environment variable is not set.
Enter value for xpack.security.transport.ssl.keystore.secure_password:
[root@es01 elasticsearch]# ./bin/elasticsearch-keystore add xpack.security.transport.ssl.truststore.secure_password
warning: usage of JAVA_HOME is deprecated, use ES_JAVA_HOME
Future versions of Elasticsearch will require Java 11; your Java version from [/usr/local/jdk1.8.0_11/jre] does not meet this requirement. Consider switching to a distribution of Elasticsearch with a bundled JDK. If you are already using a distribution with a bundled JDK, ensure the JAVA_HOME environment variable is not set.
Enter value for xpack.security.transport.ssl.truststore.secure_password:
在三个节点上都存储了证书密码后,并且确认已经给/etc/elasticsearch/elastic-certificates.p12 授予660权限后。
须执行完整的集群重启。配置为使用TLS进行传输的节点无法与使用未加密传输连接的节点通信(反之亦然)。
启动elasticsearch服务
systemctl start elasticsearch.service
我构建了两个需要相互通信和发送文件的Rails应用程序。例如,一个Rails应用程序会发送请求以查看其他应用程序数据库中的表。然后另一个应用程序将呈现该表的json并将其发回。我还希望一个应用程序将存储在其公共(public)目录中的文本文件发送到另一个应用程序的公共(public)目录。我从来没有做过这样的事情,所以我什至不知道从哪里开始。任何帮助,将不胜感激。谢谢! 最佳答案 无论Rails是什么,几乎所有Web应用程序都有您的要求,大多数现代Web应用程序都需要相互通信。但是有一个小小的理解需要你坚持下去,网站不应直接访问彼此
我正在编写一个小脚本来定位aws存储桶中的特定文件,并创建一个临时验证的url以发送给同事。(理想情况下,这将创建类似于在控制台上右键单击存储桶中的文件并复制链接地址的结果)。我研究过回形针,它似乎不符合这个标准,但我可能只是不知道它的全部功能。我尝试了以下方法:defauthenticated_url(file_name,bucket)AWS::S3::S3Object.url_for(file_name,bucket,:secure=>true,:expires=>20*60)end产生这种类型的结果:...-1.amazonaws.com/file_path/file.zip.A
我有一个在Linux服务器上运行的ruby脚本。它不使用rails或任何东西。它基本上是一个命令行ruby脚本,可以像这样传递参数:./ruby_script.rbarg1arg2如何将参数抽象到配置文件(例如yaml文件或其他文件)中?您能否举例说明如何做到这一点?提前谢谢你。 最佳答案 首先,您可以运行一个写入YAML配置文件的独立脚本:require"yaml"File.write("path_to_yaml_file",[arg1,arg2].to_yaml)然后,在您的应用中阅读它:require"yaml"arg
我已经在Sinatra上创建了应用程序,它代表了一个简单的API。我想在生产和开发上进行部署。我想在部署时选择,是开发还是生产,一些方法的逻辑应该改变,这取决于部署类型。是否有任何想法,如何完成以及解决此问题的一些示例。例子:我有代码get'/api/test'doreturn"Itisdev"end但是在部署到生产环境之后我想在运行/api/test之后看到ItisPROD如何实现? 最佳答案 根据SinatraDocumentation:EnvironmentscanbesetthroughtheRACK_ENVenvironm
在Ruby中是否有Gem或安全删除文件的方法?我想避免系统上可能不存在的外部程序。“安全删除”指的是覆盖文件内容。 最佳答案 如果您使用的是*nix,一个很好的方法是使用exec/open3/open4调用shred:`shred-fxuz#{filename}`http://www.gnu.org/s/coreutils/manual/html_node/shred-invocation.html检查这个类似的帖子:Writingafileshredderinpythonorruby?
之前在培训新生的时候,windows环境下配置opencv环境一直教的都是网上主流的vsstudio配置属性表,但是这个似乎对新生来说难度略高(虽然个人觉得完全是他们自己的问题),加之暑假之后对cmake实在是爱不释手,且这样配置确实十分简单(其实都不需要配置),故斗胆妄言vscode下配置CV之法。其实极为简单,图比较多所以很长。如果你看此文还配不好,你应该思考一下是不是自己的问题。闲话少说,直接开始。0.CMkae简介有的人到大二了都不知道cmake是什么,我不说是谁。CMake是一个开源免费并且跨平台的构建工具,可以用简单的语句来描述所有平台的编译过程。它能够根据当前所在平台输出对应的m
MIMO技术的优缺点优点通过下面三个增益来总体概括:阵列增益。阵列增益是指由于接收机通过对接收信号的相干合并而活得的平均SNR的提高。在发射机不知道信道信息的情况下,MIMO系统可以获得的阵列增益与接收天线数成正比复用增益。在采用空间复用方案的MIMO系统中,可以获得复用增益,即信道容量成倍增加。信道容量的增加与min(Nt,Nr)成正比分集增益。在采用空间分集方案的MIMO系统中,可以获得分集增益,即可靠性性能的改善。分集增益用独立衰落支路数来描述,即分集指数。在使用了空时编码的MIMO系统中,由于接收天线或发射天线之间的间距较远,可认为它们各自的大尺度衰落是相互独立的,因此分布式MIMO
注意:本文主要掌握DCN自研无线产品的基本配置方法和注意事项,能够进行一般的项目实施、调试与运维AP基本配置命令AP登录用户名和密码均为:adminAP默认IP地址为:192.168.1.10AP默认情况下DHCP开启AP静态地址配置:setmanagementstatic-ip192.168.10.1AP开启/关闭DHCP功能:setmanagementdhcp-statusup/downAP设置默认网关:setstatic-ip-routegeteway192.168.10.254查看AP基本信息:getsystemgetmanagementgetmanaged-apgetrouteAP配
1.1.1 YARN的介绍 为克服Hadoop1.0中HDFS和MapReduce存在的各种问题⽽提出的,针对Hadoop1.0中的MapReduce在扩展性和多框架⽀持⽅⾯的不⾜,提出了全新的资源管理框架YARN. ApacheYARN(YetanotherResourceNegotiator的缩写)是Hadoop集群的资源管理系统,负责为计算程序提供服务器计算资源,相当于⼀个分布式的操作系统平台,⽽MapReduce等计算程序则相当于运⾏于操作系统之上的应⽤程序。 YARN被引⼊Hadoop2,最初是为了改善MapReduce的实现,但是因为具有⾜够的通⽤性,同样可以⽀持其他的分布式计算模
我正在使用ruby2.1.0我有一个json文件。例如:test.json{"item":[{"apple":1},{"banana":2}]}用YAML.load加载这个文件安全吗?YAML.load(File.read('test.json'))我正在尝试加载一个json或yaml格式的文件。 最佳答案 YAML可以加载JSONYAML.load('{"something":"test","other":4}')=>{"something"=>"test","other"=>4}JSON将无法加载YAML。JSON.load("