在 Ubuntu 上使用 Filebeat 配置证书,通常出现在以下两种场景:
下面以最常见场景:Filebeat 向 Elasticsearch / Logstash 发送数据并使用 TLS 证书为例说明。
通常你会得到以下文件(名称可能不同):
ca.crt:CA 证书client.crt:Filebeat 客户端证书client.key:Filebeat 客户端私钥放到合适目录,例如:
sudo mkdir -p /etc/filebeat/certs
sudo cp ca.crt client.crt client.key /etc/filebeat/certs/
sudo chmod 600 /etc/filebeat/certs/client.key
sudo chown -R root:root /etc/filebeat/certs
编辑配置文件:
sudo vim /etc/filebeat/filebeat.yml
示例配置:
output.elasticsearch:
hosts: ["https://es-node1:9200"]
username: "filebeat_writer"
password: "your_password"
ssl:
enabled: true
certificate_authorities: ["/etc/filebeat/certs/ca.crt"]
certificate: "/etc/filebeat/certs/client.crt"
key: "/etc/filebeat/certs/client.key"
✅ 说明:
certificate_authorities:用于验证 ES 的证书certificate + key:Filebeat 自己的客户端证书(若 ES 开启双向 TLS)output.logstash:
hosts: ["logstash:5044"]
ssl:
enabled: true
certificate_authorities: ["/etc/filebeat/certs/ca.crt"]
certificate: "/etc/filebeat/certs/client.crt"
key: "/etc/filebeat/certs/client.key"
Logstash 端需对应开启 ssl => true。
如果只是自签名证书:
ssl:
enabled: true
verification_mode: "none"
⚠️ 不推荐生产环境使用
sudo filebeat test config
sudo filebeat test output
sudo systemctl restart filebeat
sudo systemctl status filebeat
sudo chmod 600 /etc/filebeat/certs/client.key
ssl:
enabled: true
certificate_authorities: ["/etc/filebeat/certs/ca.crt"]
如你是 Elastic Cloud / Kubernetes / 双向认证 / PKCS#12 场景,可以告诉我,我可以给你对应配置示例。