在 Debian 上使用 Filebeat 配置证书,通常是为了:
下面按常见场景说明。
通常你会拿到或自己生成以下文件:
ca.crt:CA 证书(用来验证服务端)client.crt:客户端证书(可选,mTLS 用)client.key:客户端私钥(可选,mTLS 用)建议放到:
/etc/filebeat/certs/
并设置权限:
sudo chown -R root:root /etc/filebeat/certs
sudo chmod 600 /etc/filebeat/certs/*
编辑配置文件:
sudo nano /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"]
verification_mode: "full"
如果 Elasticsearch 启用了客户端证书认证:
ssl:
enabled: true
certificate_authorities: ["/etc/filebeat/certs/ca.crt"]
certificate: "/etc/filebeat/certs/client.crt"
key: "/etc/filebeat/certs/client.key"
如果你的架构是 Filebeat → Logstash:
output.logstash:
hosts: ["logstash.example.com:5044"]
ssl:
enabled: true
certificate_authorities: ["/etc/filebeat/certs/ca.crt"]
verification_mode: "full"
Logstash 侧需开启:
input {
beats {
port => 5044
ssl => true
ssl_certificate => "/etc/logstash/certs/server.crt"
ssl_key => "/etc/logstash/certs/server.key"
ssl_certificate_authorities => ["/etc/logstash/certs/ca.crt"]
}
}
| 模式 | 说明 |
|---|---|
full |
验证证书 + 主机名(推荐) |
certificate |
只验证证书 |
none |
不验证(不安全,仅测试) |
⚠️ 生产环境不要使用 none
sudo filebeat test config
sudo filebeat test output
看到 Connection OK 就说明证书配置正确。
sudo systemctl restart filebeat
sudo systemctl status filebeat
ca.crt 路径错了verification_mode 太严格client.key 权限不是 600如果你愿意,可以告诉我:
我可以直接帮你写一份 完整 filebeat.yml。