Filebeat 是一个轻量级的日志收集器,用于将日志数据从多个来源发送到如 Elasticsearch 或 Logstash 等后端服务。如果你想要通过 SSL 加密传输来保护 Filebeat 发送的数据,你需要对 Filebeat 和后端服务(如 Elasticsearch)进行相应的配置。
以下是配置 Filebeat 通过 SSL 加密传输到 Elasticsearch 的基本步骤:
生成或获取 SSL 证书:
配置 Elasticsearch:
elasticsearch.yml 配置文件中,启用 SSL 并配置相关路径。xpack.security.enabled: true
xpack.security.transport.ssl.enabled: true
xpack.security.transport.ssl.verification_mode: certificate
xpack.security.transport.ssl.keystore.path: "path/to/your/keystore.p12"
xpack.security.transport.ssl.truststore.path: "path/to/your/truststore.p12"
配置 Filebeat:
filebeat.yml 中,指定 Elasticsearch 的 HTTPS 地址并启用 SSL。filebeat.inputs:
- type: log
enabled: true
paths:
- /path/to/your/logfile.log
output.elasticsearch:
hosts: ["https://your-elasticsearch-host:9200"]
ssl.verification_mode: "certificate"
ssl.certificate_authorities: ["/path/to/your/ca.pem"]
ssl.certificate: "/path/to/your/client.pem"
ssl.key: "/path/to/your/client_key.pem"
ssl.verification_mode 设置为 "certificate",这意味着 Filebeat 将验证 Elasticsearch 服务器的证书。ssl.certificate_authorities 应该指向包含 Elasticsearch 服务器证书的 CA 证书文件。ssl.certificate 和 ssl.key 分别指向 Filebeat 客户端的证书和私钥文件。重启服务:
验证配置:
curl 或 Kibana 的 Dev Tools 来验证连接是否安全。请注意,具体的配置可能会根据你的环境和使用的证书类型有所不同。如果你使用的是云服务提供商的 Elasticsearch 服务,那么可能还需要在云服务的安全组或网络设置中允许相应的端口和协议。
此外,如果你使用的是 Logstash 作为中间件,你也需要在 Logstash 的配置中启用 SSL,并确保 Filebeat 能够安全地与 Logstash 通信。