温馨提示×

ubuntu filebeat如何加密传输

小樊
38
2026-10-11 00:59:36
栏目: 网络安全

在 Ubuntu 上,Filebeat 加密传输通常是指在 Filebeat 与下游(Logstash / Elasticsearch / Kafka 等)之间使用 TLS/SSL 加密。下面按常见场景说明。


一、Filebeat → Logstash(最常用)

1. 准备证书

在 Logstash/ES 服务器端生成:

  • ca.crt
  • server.crt
  • server.key

将 ca.crt 拷贝到 Ubuntu Filebeat 所在机器,例如:

/etc/filebeat/certs/ca.crt

2. 配置 Logstash 接收端(示例)

logstash.conf

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

3. 配置 Filebeat(Ubuntu)

编辑:

sudo vim /etc/filebeat/filebeat.yml
output.logstash:
  hosts: ["logstash.example.com:5044"]
  ssl.enabled: true
  ssl.certificate_authorities: ["/etc/filebeat/certs/ca.crt"]
  ssl.verification_mode: full   # 或 certificate

ssl.verification_mode: none 不推荐(不安全)


4. 重启 Filebeat

sudo systemctl restart filebeat
sudo systemctl status filebeat

二、Filebeat → Elasticsearch(HTTPS)

Filebeat 配置

output.elasticsearch:
  hosts: ["https://es.example.com:9200"]
  username: "filebeat"
  password: "xxxx"
  ssl.enabled: true
  ssl.certificate_authorities: ["/etc/filebeat/certs/ca.crt"]

如果 ES 使用自签名证书:

sudo filebeat setup --dashboards

三、Filebeat → Kafka(SSL)

output.kafka:
  hosts: ["kafka1:9093"]
  topic: "logs"
  ssl.enabled: true
  ssl.certificate_authorities: ["/etc/filebeat/certs/ca.crt"]

四、可选:Filebeat 双向证书认证(mTLS)

Filebeat 端

ssl.certificate: "/etc/filebeat/certs/filebeat.crt"
ssl.key: "/etc/filebeat/certs/filebeat.key"

Logstash / ES 端

启用客户端证书校验。


五、验证加密是否生效

openssl s_client -connect logstash.example.com:5044

或查看 Filebeat 日志:

journalctl -u filebeat -f

六、小结

✅ 加密方式:TLS/SSL
✅ 核心配置:ssl.enabled: true + ca.crt
✅ 推荐:verification_mode: full

如果你愿意,可以告诉我:

  • Filebeat 输出到 Logstash / ES / Kafka
  • 是否使用 Elastic Stack 官方证书(elasticsearch-certutil)

我可以直接给你一套可复制的完整配置。

0 踩