在 Debian 上,Filebeat 本身不负责“数据加密存储”,但可以从 传输加密(TLS) 和 日志内容加密 两个层面来做。下面按常见场景说明。
# 在 ES/Logstash 服务器端生成
openssl req -x509 -newkey rsa:4096 -nodes \
-keyout filebeat.key -out filebeat.crt -days 365
编辑 /etc/filebeat/filebeat.yml:
output.elasticsearch:
hosts: ["https://es.example.com:9200"]
ssl.certificate_authorities: ["/etc/filebeat/certs/filebeat.crt"]
username: "filebeat"
password: "password"
或输出到 Logstash:
output.logstash:
hosts: ["logstash.example.com:5044"]
ssl.certificate_authorities: ["/etc/filebeat/certs/filebeat.crt"]
sudo systemctl restart filebeat
Filebeat 不能直接加密本地日志文件,但你可以:
# 加密整个分区
cryptsetup luksFormat /dev/sdb1
cryptsetup open /dev/sdb1 secure_log
mkfs.ext4 /dev/mapper/secure_log
然后把 Filebeat 的 path.logs 或采集目录放到加密分区。
⚠️ Filebeat 不提供“字段级加密”功能
processors:
- dissect:
tokenizer: "%{timestamp} %{level} %{message}"
- drop_fields:
fields: ["password"]
或使用 script processor 做哈希:
processors:
- script:
lang: javascript
source: >
function process(event) {
event.Put("user", md5(event.Get("user")));
}
✅ 使用 HTTPS
✅ 限制 /etc/filebeat/ 权限
chmod 600 /etc/filebeat/filebeat.yml
chown root:root /etc/filebeat/filebeat.yml
✅ 启用 systemd 保护
[Service]
PrivateTmp=true
NoNewPrivileges=true
| 需求 | 推荐方式 |
|---|---|
| 防止网络窃听 | TLS(HTTPS / Logstash SSL) |
| 本地磁盘安全 | LUKS 加密 |
| 日志内容保密 | 应用层加密 |
| 防敏感泄露 | 脱敏 / 哈希 |
如果你能说明:
我可以给你一份 可直接用的 Debian 配置文件。