Elasticsearch 批量添加数据
首先我们先构造一个 json文件,内容参考如下(批量请求必须通过换行符[\n]终止):
在json文件所在文件夹执行以下命令:
插入数据的时候他会有一段时间去执行,你需要立即让他去执行添加
ElasticSearch版本7.6.2
1、验证当前版本是否支持安全功能
2、是否打开安全设置
3、基于FIPS的一些验证
4、配置节点间通讯传输的安全性
5、配置内置用户的密码/
6、选择用户验证用户身份的领域类型
7、设置角色和用户以控制对Elasticsearch的访问
8、启用审核以跟踪与Elasticsearch集群的尝试和成功的交互
1、验证当前版本是否支持安全功能
2、是否打开安全设置
3、配置节点间通讯传输的安全性
4、设置ssl的keystore、truststore的密码
5、重启ES集群是配置生效
6、配置内置用户的密码
7、修改kibana的配置
具体步骤:
Elasticsearch的安全策略需要X-Pack插件的支持,不过对于7.X以上版本X-Pack已经内置,所以不需要额外的 *** 作。
xpack.security.enabled控制安全配置的开启,在默认情况下此参数被设置为false。要想开启安全策略需要在所有集群中讲此参数进行设置
仅仅开启安全设置再启动服务的时候会抛出错误
这是因为传输网络层用于集群中节点之间的内部通信。启用安全功能后,必须使用TLS来确保节点之间的通信已加密。为节点间通讯配置安全策略需要两个步骤:
在Elasticsearch集群中验证证书真实性的推荐方法是信任签署证书的证书颁发机构(CA)。这样,将节点添加到群集后,它们只需要使用由同一CA签名的证书,即可自动允许该节点加入群集。另外证书中可以包含与节点的IP地址和DNS名称相对应的主题备用名称,以便可以执行主机名验证。
* 为Elasticsearch集群创建发证机构 ,使用下面的步骤为集群创建一个CA授权证书
整个创建过程是这样的。在输入命令后控制台会输出此命令的信息描述,然后你需要先执行{①}的 *** 作然后执行{②}的 *** 作
①:此位置设置文档输出地址和名称。默认名称为elastic-stack-ca.p12。这个文件是PKCS#12密钥存储库,它包含您的CA的公共证书和用于为每个节点签署证书的私有密钥。
(也可以无需输入,直接回车,则会再当前目录,elasticsearch-7.6.2目录下, 和bin同级目录,生成文件elastic-certificates.p12,
然后在elasticsearch-7.6.2/config目录下,新建一个文件夹certs, 把文件elastic-certificates.p12复制到certs文件夹下即可。)
②:此位置设置证书的密码。计划将来向集群添加更多的节点,请记住其密码。
为Elasticsearch集群中的节点生成证书
使用下面的名称生成集群使用的生成节点证书。elastic-stack-ca.p12为上一步生成CA证书。
整个创建过程是这样的,类似之前的内容,在输入命令后控制台会输出此命令的信息描述,
输入elastic-stack-ca.p12的密码后,在elasticsearch-7.6.2文件夹下执行命令:
然后你需要先执行{①}的 *** 作然后执行{②}的 *** 作,最后执行{③}的 *** 作
① : 此位置需要输入elastic-stack-ca.p12 CA授权证书的密码。
② : 此位置为需要输出证书位置。
③ : 此位置为证书的密码。使用空密码可以直接回车结束。
默认情况下,elasticsearch-certutil生成的证书中没有主机名信息。这意味着可以为集群中的任意节点使用此证书,但是必须关闭主机名验证。
将elastic-certificates.p12文件(只需要此文件)复制到每个节点上的Elasticsearch配置目录中的一个目录中。比如我是放到了每个节点的config/certs目录下。
然后修改每个节点的elasticsearch.yml配置。添加下面的参数:
xpack.security.transport.ssl.verification_mode
如果在elasticsearch-certutil cert命令中使用—dns或—ip选项,并且希望启用严格的主机名检查,此参数需要设置为full。而之前的例子证书中并没有输入ip以及dns等信息,所以我们没有使用严格的主机检查。
如果你在创建证书时没有输入密码,则这个时候重启集群后,如果elastic用户没有密码,则使用默认的引导密码。引导密码是一个临时密码,它允许您运行设置所有内置用户密码的工具。
如果你在创建证书时输入了密码,那可以通过下面的方法设置:
安全重启步骤:
1、暂停数据写入程序
2、关闭集群shard allocation,手动执行POST /_flush/synced
3、查看进程和杀死进程
4、重启节点
5、.确认进程是否启动,
6、并重新开启集群shard allocation
7、等待recovery完成,集群health status变成green
将写入es的程序暂停
curl -XPUT ‘ http://10.3.14.154:9200/_cluster/settings?pretty ’ -d ‘{“transient”:{“cluster.routing.allocation.disable_allocation”: true}}’
cd ~/bin
./elasticsearch -d
ps -ef | grep elasticsearch
curl -XPUT ‘ http://10.3.14.155:9200/_cluster/settings?pretty ’ -d ‘{“transient”:{“cluster.routing.allocation.disable_allocation”: false}}’
{
“error” : “Content-Type header [application/x-www-form-urlencoded] is not supported”,
“status” : 406
}
curl 10.3.14.154:9200/_cluster/health?pretty
重启完成后,我们需要为所有的内置用户设置密码。设置密码使用命令:
上面过程中我们需要设置多个默认用户的信息,每个内置用户负责不同的内容。
为以下用户分别设置密码:
elastic
kibana
logstash_system
beats_system
apm_system
remote_monitoring_user
截止到目前Elasticsearch的部分已经修改完毕,下面修改kibana配置以便于让其和Elasticsearch完成连接。
修改配置文件
修改kibana的配置文件config/kibana.yml在配置文件中添加下面内容:
kibana 使用ps -ef|grep kibana是查不到进程的,因为其实运行在node里面。但是我们也不能关闭所有node里面的软件,所以我们需要查询kibana监听端口5601的进程。
使用下面命令关闭kibana:
然后重启Kibana
此时访问kibana( http://localhost:5601 )会提示需要输入账号密码。
注意此时需要输入的是elasticsearch的用户密码。
到此为止ES最基础的安全策略已经添加进来了。
参考文章: https://blog.csdn.net/qq330983778/article/details/103537252
https://www.tianmingxing.com/2019/06/20/%E5%9C%A8ElasticSearch6.8%E5%8F%8A%E4%BB%A5%E4%B8%8A%E7%89%88%E6%9C%AC%E5%BC%80%E5%90%AF%E5%AE%89%E5%85%A8%E8%AE%A4%E8%AF%81%E5%8A%9F%E8%83%BD/
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)