在 CentOS 上,Filebeat 本身不负责“数据加密存储”,但它的传输过程可以加密,也可以配合系统/外部手段对配置文件或日志做加密。下面按常见使用场景说明。
适用于直接发往 ES。
xpack.security.http.ssl)ca.crt)/etc/filebeat/filebeat.yml)output.elasticsearch:
hosts: ["https://es-host:9200"]
username: "filebeat_user"
password: "xxxxxx"
ssl.certificate_authorities: ["/etc/filebeat/ca.crt"]
ssl.verification_mode: full
✅ 效果:Filebeat 到 ES 的通信是 TLS 加密
适用于 Logstash 架构。
input {
beats {
port => 5044
ssl => true
ssl_certificate => "/etc/logstash/server.crt"
ssl_key => "/etc/logstash/server.key"
ssl_certificate_authorities => ["/etc/logstash/ca.crt"]
}
}
output.logstash:
hosts: ["logstash-host:5044"]
ssl.certificate_authorities: ["/etc/filebeat/ca.crt"]
ssl.certificate: "/etc/filebeat/client.crt"
ssl.key: "/etc/filebeat/client.key"
✅ 效果:Beats 协议 + TLS 加密
Filebeat 自带加密 keystore
filebeat keystore create
filebeat keystore add ES_PASSWORD
配置中引用:
output.elasticsearch:
password: "${ES_PASSWORD}"
✅ 密码不会明文出现在 yml 中
Filebeat 读取的日志文件本身可加密:
cryptsetup luksFormat /dev/sdb
cryptsetup open /dev/sdb secure_log
mkfs.xfs /dev/mapper/secure_log
挂载到日志目录:
/var/log -> 加密分区
yum install ecryptfs-utils
mount -t ecryptfs /var/log /var/log
Filebeat 本地数据:
/var/lib/filebeat/可:
# 放入加密分区或
chmod 600 -R /var/lib/filebeat
⚠️ Filebeat 不加密自身数据文件
| 需求 | 方法 |
|---|---|
| 传输加密 | TLS(ES / Logstash)✅ |
| 密码不明文 | Filebeat Keystore ✅ |
| 日志文件加密 | LUKS / eCryptfs |
| 内部数据加密 | 系统级加密 |
如果你能说明:
我可以给你一份可直接用的配置示例。