温馨提示×

centos filebeat如何加密

小樊
44
2026-09-11 20:53:10
栏目: 网络安全

在 CentOS 上,Filebeat 本身不负责“数据加密存储”,但它的传输过程可以加密,也可以配合系统/外部手段对配置文件或日志做加密。下面按常见使用场景说明。


一、Filebeat 传输加密(最常用 ✅)

1️⃣ Filebeat → Elasticsearch(TLS 加密)

适用于直接发往 ES。

Elasticsearch 端

  • 开启 HTTPS(ES 已配置 xpack.security.http.ssl)
  • 获取 CA 证书(如 ca.crt)

Filebeat 配置(/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 加密


2️⃣ Filebeat → Logstash(TLS 加密)

适用于 Logstash 架构。

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"]
  }
}

Filebeat 配置

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 配置文件中密码加密(不要明文)

方式 1:使用 keystore(推荐 ✅)

Filebeat 自带加密 keystore

filebeat keystore create
filebeat keystore add ES_PASSWORD

配置中引用:

output.elasticsearch:
  password: "${ES_PASSWORD}"

✅ 密码不会明文出现在 yml 中


三、磁盘日志文件加密(可选)

Filebeat 读取的日志文件本身可加密:

方式 1:LUKS 磁盘加密

cryptsetup luksFormat /dev/sdb
cryptsetup open /dev/sdb secure_log
mkfs.xfs /dev/mapper/secure_log

挂载到日志目录:

/var/log -> 加密分区

方式 2:eCryptfs(目录级)

yum install ecryptfs-utils
mount -t ecryptfs /var/log /var/log

四、Filebeat 数据目录加密(queue / registry)

Filebeat 本地数据:

  • /var/lib/filebeat/
  • 包含 registry(采集位置)

可:

# 放入加密分区或
chmod 600 -R /var/lib/filebeat

⚠️ Filebeat 不加密自身数据文件


五、总结对照表

需求 方法
传输加密 TLS(ES / Logstash)✅
密码不明文 Filebeat Keystore ✅
日志文件加密 LUKS / eCryptfs
内部数据加密 系统级加密

如果你能说明:

  • Filebeat 发往 ES / Logstash / Kafka
  • CentOS 版本(7 / 8 / Stream)
  • 是否启用了 X-Pack

我可以给你一份可直接用的配置示例。

0 踩