在 Debian 上,Filebeat 本身不负责“加密存储”,而是负责“加密传输”和“落盘数据的保护”。常见需求一般分三种,下面分别说明做法。
Filebeat → ES/Logstash 走 HTTPS(TLS)
output.elasticsearch:
hosts: ["https://es.example.com:9200"]
username: "filebeat"
password: "xxxx"
ssl.certificate_authorities: ["/etc/filebeat/certs/ca.crt"]
ssl.certificate: "/etc/filebeat/certs/filebeat.crt"
ssl.key: "/etc/filebeat/certs/filebeat.key"
output.logstash:
hosts: ["logs.example.com:5044"]
ssl.certificate_authorities: ["/etc/filebeat/certs/ca.crt"]
ssl.certificate: "/etc/filebeat/certs/filebeat.crt"
ssl.key: "/etc/filebeat/certs/filebeat.key"
✅ 这是生产环境推荐方式
Filebeat 默认把未发送的数据存在:
/var/lib/filebeat/registry
/var/lib/filebeat/data
Filebeat 不支持“自带加密磁盘”
/var/lib/filebeat示例(LUKS):
cryptsetup luksFormat /dev/sdb1
cryptsetup open /dev/sdb1 filebeat
mkfs.ext4 /dev/mapper/filebeat
mount /dev/mapper/filebeat /var/lib/filebeat
如果日志本身含敏感信息:
processors:
- dissect:
tokenizer: "%{ts} %{level} %{msg}"
- drop_fields:
fields: ["msg"]
sudo systemctl restart filebeat
sudo filebeat test output
sudo filebeat test config
| 需求 | 做法 |
|---|---|
| 传输加密 | TLS(必须) |
| 本地加密 | LUKS / fscrypt |
| 内容加密 | 应用层或脱敏 |
如果你是 “Filebeat 发到 Elastic”还是“发到 Kafka/Logstash”,我可以给你一份完整配置文件。