6. Logstash8.1 链接Elasticsearch

Elasticsearch 从8.0开始, 默认开启了SSL安全验证。因此我们需要为 Logstash 配置身份验证凭据才能建立与 Elasticsearch 集群的通信。

SSL安全通信
  1. 当一个新的 Elasticsearch 集群在 没有专用证书 的情况下启动时,它会在启动时生成自己的默认自签名证书颁发机构。

  2. Logstash 必须具有签署 Elasticsearch 集群证书的证书颁发机构 (CA) 的副本, 才能建立安全套接字层 (SSL) 连接到安全的 Elasticsearch 集群。

如果您在自己的硬件上运行 Elasticsearch 并使用 Elasticsearch 集群的默认自签名证书,则需要完成更多步骤以在 Logstash 和 Elasticsearch 之间建立安全通信。

  • 从 Elasticsearch 复制自签名 CA 证书并将其保存到 Logstash。
  • 配置 elasticsearch-output 插件以使用证书。

如果您的集群使用公共可信证书,则无需执行这些步骤。

复制ca证书 和 配置elasticsearch 插件
  • 从 Elasticsearch 的 $Elasticsearch_HOME$/config/certs 目录下复制ca证书到 Logstash 的目录$Logstash_HOME$/config/certs
  • 配置elasticsearch 插件
      output {
          elasticsearch {
              index => "test1-index"
              hosts => [ "https://localhost:9200" ]
              cacert => "config/certs/http_ca.crt"
              user => "elastic"
              password => "${ES_PWD}"
          }
      }
    
为Logstash配置专用的角色和授权
  • 创建 logstash_writer 角色
    使用Kibana中的 Management > Roles UI方式 或 API方式 创建 logstash_writer 角色。对于集群权限,添加manage_index_templatesmonitor 。对于索引权限,添加writecreatecreate_index

      POST _security/role/logstash_writer
      {
        "cluster": ["manage_index_templates", "monitor"], 
        "indices": [
          {
            "names": [ "logstash-*" ], 
            "privileges": ["write","create","create_index"]  
          }
        ]
      }
    
  • 创建一个 logstash_internal 用户并为其分配 logstash_writer 角色。
    可以从Kibana 中的 Management > Users UI 或 通过API 创建用户。

      POST _security/user/logstash_internal
      {
        "password" : "x-pack-test-password",
        "roles" : [ "logstash_writer"],
        "full_name" : "Internal Logstash User"
      }
    
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容