Elasticsearch 安装 X-pack

这篇具有很好参考价值的文章主要介绍了Elasticsearch 安装 X-pack。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

X-Pack是Elastic Stack扩展功能,提供安全性,警报,监视,报告,机器学习和许多其他功能。 ES7.0+之后,默认情况下,当安装Elasticsearch时,会安装X-Pack,无需单独再安装。

1. ES集群配置(非集群可以跳过1.1生成证书步骤)

1.1 生成证书

以3台服务器的集群为例。在服务器1(任选一台服务器生成证书就行)bin目录下执行以下命令生成两个证书:

./elasticsearch-certutil ca
./elasticsearch-certutil cert --ca elastic-stack-ca.p12

两条命令一路回车即可,不需要给秘钥再添加密码。执行完以后会生成两个证书,证书在安装目录bin目录的上一级;es xpack,elasticsearch,大数据,搜索引擎

将两个证书移动到安装目录的config目录下(非config目录会报错);

将服务器1上的两个证书复制到另外两个ES服务器的config目录下;

其实生成证书这个步骤很好理解,ES集群之间需要进行数据同步,当给ES集群设置密码以后,ES集群的各服务器之间互相认可对方,证书就是这个作用。

1.2 修改elasticsearch.yml(位于安装目录config下)

在elasticsearch.yml中新增如下配置:

xpack.security.enabled: true
xpack.license.self_generated.type: basic
xpack.security.transport.ssl.enabled: true
# 非集群不用增加下面三行
xpack.security.transport.ssl.verification_mode: certificate
xpack.security.transport.ssl.keystore.path: /usr/local/elasticsearch-7.6.2/config/elastic-certificates.p12
xpack.security.transport.ssl.truststore.path: /usr/local/elasticsearch-7.6.2/config/elastic-certificates.p12
  • xpack.security.enabled:表示开启xpack认证机制。
  • xpack.security.transport.ssl.enabled:这条如果不配,es将起不来,会报如下错误:Transport SSL must be enabled if security is enabled on a [basic] license. Please set [xpack.security.transport.ssl.enabled] to [true] or disable security by setting [xpack.security.enabled] to [false]

1.3 重启ES服务器

依次重启3台服务器,生产环境ES集群不能停止服务,所以我们采用每次重启一台,切不可全部停止。

步骤1.3重启服务器一定要在步骤1.4设置ES账号密码之前。要不然1.4设置密码会失败。

1.4为ES内置账号设置密码

在服务器1(挑一台服务器执行即可,不需要每台服务器都执行)上ES的bin目录下执行如下命令设置密码:

ES内置elastic、apm_system、logstash_system、kibana等内置用户,需要分别为这些账户设置密码,密码中不要包含@符号,有坑。需要记住自己设置的密码,后续过程需要使用。

# interactiv手动设置密码
./elasticsearch-setup-passwords interactive

我这里把所有内置用户的密码全部设置成了:123456 

 也可使用以下命令设置(自动生成密码):

# 自动生成密码
./elasticsearch-setup-passwords auto

如果在设置密码的过程中报错,重新执行此命令再设置一次即可,不可跳过报错。

设置完账号密码以后,在命令行中执行如下命令验证一下账号密码是否设置成功:

curl -XGET -u elastic 'http://192.168.31.104:9200/_xpack/security/user?pretty'

若出现提示输入elastic账户的密码,则账号密码设置成功。

可使用如下方式测试密码是否设置成功:

curl 192.168.31.104:9200 -u elastic

2. 配置kibana连接

开启了安全认证之后,kibana连接es以及访问es都需要认证。

变更kibana的配置,一共有两种方法,一种明文的,一种密文的。

2.1 明文配置

在kibana.yml文件中新增配置:

server.port: 5601
server.host: "0.0.0.0"
server.name: "192.168.31.105"
elasticsearch.hosts: ["http://192.168.31.104:9200"]
kibana.index: ".kibana"
i18n.locale: "zh-CN"
elasticsearch.username: "elastic"
elasticsearch.password: "123456"
xpack.reporting.encryptionKey: "a_random_string"
xpack.security.encryptionKey: "something_at_least_32_characters"

由于加入了下面两行,表示是明文配置。但是建议使用密文配置,可参考步骤2.2
elasticsearch.username: "kibana"
elasticseacr.password: "kibana_passwd" 

  • elasticsearch.username:连接es的用户名。
  • elasticsearch.password:连接es的密码。
  • xpack.reporting.encryptionKey:如果不添加这条配置,将会报错 Generating a random key for xpack.reporting.encryptionKey. To prevent pending reports from failing on restart, please set xpack.reporting.encryptionKey in kibana.yml
  • xpack.security.encryptionKey:如果不配置这条,将会报错 Generating a random key for xpack.security.encryptionKey. To prevent sessions from being invalidated on restart, please set xpack.security.encryptionKey in kibana.yml

2.2 设置账户密码(密文配置)

使用这种密文的方式进行认证,认证之前,需要首先将用户名密码保存到内置的ketstore里。在bin目录下执行:

   ./kibana-keystore --allow-root create
   # 输入1.4中设置的账户:elastic
   ./kibana-keystore --allow-root add elasticsearch.username
   # 输入1.4中设置的elastic账户的密码
   ./kibana-keystore --allow-root add elasticsearch.password

执行如上三条命令,用户名输入时填写 elastic,密码输入时填写对应密码,接着调整kibana的配置,删除elasticsearch.username和elasticsearch.password:

server.port: 5601
server.host: "0.0.0.0"
server.name: "192.168.31.105"
elasticsearch.hosts: ["http://192.168.31.104:9200"]
kibana.index: ".kibana"
i18n.locale: "zh-CN"
xpack.reporting.encryptionKey: "a_random_string"
xpack.security.encryptionKey: "something_at_least_32_characters"

2.3 重启Kibana

然后重启kibana即可访问,访问的时候使用elastic的用户密码登入,将是全局管理权限,如果需要创建kibana的只读用户,则可以通过管理–用户–新建用户,对用户进行角色授权即可。  

kibana进程查找命令:netstat -tunlp|grep 5601,找到进程号之后 kill 掉。

启动命令:./kibana --allow-root &

3.Logstash配置

3.1 修改logstash.yml

logstash.yml(位于安装目录的 config/ 下)文件中新增如下配置:

xpack.monitoring.enabled: true
# 步骤1.4中设置的账户logstash_system为ES的内置账户
xpack.monitoring.elasticsearch.username: "logstash_system"
# logstash_system 账号对应的密码
xpack.monitoring.elasticsearch.password: "123456"
# elasticsearch 主机ip
xpack.monitoring.elasticsearch.hosts: ["http://192.168.31.104:9200"]

logstash_system为ES的内置账户,只有监控权限,用于心跳检测ES服务器的状态。此账户权限非常小,所以这里密码采用明文写在配置文件也不要紧。 

3.2设置账户密码

在bin目录下执行:

# 执行后 选Y
./logstash-keystore create
# 输入1.4中设置的账户:elastic,这里不要使用logstash_system这个账号,这个账号没有增删改索引的权限
./logstash-keystore add ES_USER 
# 输入1.4中设置的elastic账户的密码
./logstash-keystore add ES_PWD

3.3修改conf文件

修改logstash的配置文件,一般是自己新增的配置文件,位于config文件夹下。

在output模块中新增账号,密码

output {
    elasticsearch {
      action => "%{[@metadata][action]}"
      hosts => ["ip1:9200", "ip2:9200", "ip3:9200"]
      index => "demo_index"
      document_id => "%{id}"
      # 新增如下两行:采用密文配置,要使用明文可自行查看官方文档
      user => "${ES_USER}"
      password => "${ES_PWD}"
    }
}

3.4重启Logstash

重启后观察启动日志,有无ERROR报错,无ERROR即正常。或者验证数据有没有通过Logstash同步到ES上面。到这里ELK就全部配置完成~

4.验证集群状态

在服务器中执行如下命令,验证ES集群状态:

# curl -XGET -u ${username}:${pwd} http://${ip}:9200/_cluster/health?pretty
 curl -XGET -u elastic:123456 http://192.168.31.104:9200/_cluster/health?pretty

集群状态为green就大功告成。如果为yellow就稍等一会,说明有副本分片还未恢复。如果集群状态为red,说明有主分片未恢复,需要去查看是否有ES服务器还未重启成功。

5.Java代码修改配置

5.1 RestHighClient配置

final CredentialsProvider credentialsProvider = new BasicCredentialsProvider();
/*设置账号密码*/
credentialsProvider.setCredentials(AuthScope.ANY, new UsernamePasswordCredentials("username","password"));
/*创建rest client对象*/
RestClientBuilder builder = RestClient.builder(new HttpHost(127.0.0.1, 9200))
                .setHttpClientConfigCallback(new RestClientBuilder.HttpClientConfigCallback() {
                    @Override
                    public HttpAsyncClientBuilder customizeHttpClient(HttpAsyncClientBuilder httpAsyncClientBuilder) {
                        return httpAsyncClientBuilder.setDefaultCredentialsProvider(credentialsProvider);
                    }
                });
        client = new RestHighLevelClient(builder);

5.2 SpringBoot自带的ES连接客户端

在项目配置文件中ES直接配置上username,password即可。

参考文档:Elasticsearch7.x配置xpack实战_elasticsearch xpack_普通网友的博客-CSDN博客文章来源地址https://www.toymoban.com/news/detail-597892.html

到了这里,关于Elasticsearch 安装 X-pack的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 在不安全的集群上启用 Elasticsearch Xpack 安全性

    本博文详细描述如何把一个没有启动安全的 Elasticsearch 集群升级为一个带有 HTTPS 访问的启用 Elasticsearch xpack 安全的集群。 为了增强 Elasticsearch 集群的安全性,你需要执行完全集群重启,并在客户端进行一些更改。 启用身份验证后,所有索引和搜索数据的请求都将需要用户名

    2024年02月07日
    浏览(36)
  • SpringBoot+ElasticSearch+X-pack

    ElasticSearch开启X-pack权限认证后,连接es就存在用户名和密码的校验,如果连接时没有设置账号及密码,则会出现无权限的情况。本文就讲述spring boot如何在连接es时设置用户名密码,主要是RestHighLevelClient配置信息的修改。

    2024年02月11日
    浏览(30)
  • ElasticSearch破解x-pack 6

    XPackBuild 中 最后一个静态代码块中 try的部分全部删除,这部分会验证jar包是否被修改 `package org.elasticsearch.xpack.core; import org.elasticsearch.common.io.*; import java.net.*; import org.elasticsearch.common.*; import java.nio.file.*; import java.io.*; import java.util.jar.*; public class XPackBuild { public static final XPac

    2024年04月17日
    浏览(27)
  • elasticsearch-5.6.15集群部署,如何部署x-pack并添加安全认证

    目录 一、环境 1、JDK、映射、域名、三墙 2、三台服务器创建用户、并为用户授权 二、配置elasticsearch-5.6.15实例 1、官网获取elasticsearch-5.6.15.tar.gz,拉取到三台服务器 2、elas环境准备 3、修改elasticsearch.yml配置 4、修改软、硬件线程数 5、修改最大连接  6、修改jvm内存 7、所有节

    2024年01月22日
    浏览(37)
  • k8s部署Elasticsearch集群+Kibana方案--开启X-Pack 安全认证

    本文中使用 StatefulSet 方式部署 Elasticsearch 集群,并且开启X-Pack 安全认证,存储使用的是NFS,属于一个初学者自己探索的方案,如果有比较好的方案,还请不吝评论赐教。 版本说明: Kubernetes v1.25.6 – v1.26.4 Elasticsearch, Kibana 7.13.3 NFS Subdir External Provisioner 前置环境 需要安装好

    2024年02月11日
    浏览(47)
  • elasticsearch 安装 (es数据库安装详细)

    以下操作在debian11下,其它linux版本相同 安装的是8.6.2版本(2023.3),可以直接复制使用 以下操作默认在root下进行,如果切换用户会说明 1.下载安装包 注意:如果要安装kibana,版本尽量要一致 主体程序从这里下载 链接: es 2.创建es的用户 3.创建es存储位置 存放在/var/es(根据自

    2024年02月05日
    浏览(45)
  • elasticsearch|大数据|elasticsearch低版本集群的部署安装和安全增强---密码设置问题

    elasticsearch的高低版本划分标准为6.3,该版本之前的为低版本,6.3版本之后的包括6.3为高版本,这么划分主要是在安全性方面也就是x-pack插件的使用部署方面,低版本需要手动安装该安全插件,而高版本无需安装。另一方面,高版本的es漏洞会少一些,而本例中使用的是低版本

    2024年02月03日
    浏览(51)
  • 离线安装elasticdump导出elasticsearch数据

    项目需要导出知识库博客文章数据,格式为json; 知识库系统部署在内网,没有node和 elasticdump 数据导出工具,需要离线安装node和elasticdump,方法是找一台与内网配置一样的外网机器在线安装node和elasticdump环境,再把安装包导入内网安装。 备注: 使用的机器是x86+银行麒麟V4桌

    2024年02月03日
    浏览(35)
  • 【ES数据库】Elasticsearch安装使用

    Elasticsearch 和 MongoDB/Redis 类似,是非关系型数据库,从索引文档到文档能被搜索到只有一个轻微的延迟,是采用Restful API标准的可扩展和高可用的实时数据分析的全文搜索工具 Elastic Search 的实现原理是,利用内置分词器(Analyzer)对数据库文本进行分词,将解析出的和数据

    2024年02月04日
    浏览(38)
  • elasticsearch|大数据|kibana的安装(https+密码)

    前言: kibana是比较好安装的,但https+密码就比较麻烦一些了,下面将就如何安装一个可在生产使用的kibana做一个简单的讲述 一, kibana版本和下载地址 这里我想还是强调一下,kibana的版本需要和elasticsearch的版本一致,小版本都不能差,否则,kibana将不能正确连接到elasticsea

    2024年04月16日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包