温馨提示×

debian filebeat怎么配证书

小樊
36
2026-10-20 23:57:01
栏目: 智能运维

在 Debian 上使用 Filebeat 配置证书,通常是为了:

  • 向 Elasticsearch / Logstash 发送数据时使用 TLS 加密
  • 验证服务器证书(防止中间人)
  • (可选)使用客户端证书做双向认证(mTLS)

下面按常见场景说明。


一、准备工作(证书文件)

通常你会拿到或自己生成以下文件:

  • ca.crt:CA 证书(用来验证服务端)
  • client.crt:客户端证书(可选,mTLS 用)
  • client.key:客户端私钥(可选,mTLS 用)

建议放到:

/etc/filebeat/certs/

并设置权限:

sudo chown -R root:root /etc/filebeat/certs
sudo chmod 600 /etc/filebeat/certs/*

二、配置 Filebeat(TLS → Elasticsearch)

编辑配置文件:

sudo nano /etc/filebeat/filebeat.yml

1️⃣ 输出到 Elasticsearch(带 TLS)

output.elasticsearch:
  hosts: ["https://es-node1:9200"]
  username: "filebeat_writer"
  password: "your_password"

  ssl:
    enabled: true
    certificate_authorities: ["/etc/filebeat/certs/ca.crt"]
    verification_mode: "full"

如果 Elasticsearch 启用了客户端证书认证:

  ssl:
    enabled: true
    certificate_authorities: ["/etc/filebeat/certs/ca.crt"]
    certificate: "/etc/filebeat/certs/client.crt"
    key: "/etc/filebeat/certs/client.key"

三、配置 Filebeat(TLS → Logstash)

如果你的架构是 Filebeat → Logstash:

output.logstash:
  hosts: ["logstash.example.com:5044"]
  ssl:
    enabled: true
    certificate_authorities: ["/etc/filebeat/certs/ca.crt"]
    verification_mode: "full"

Logstash 侧需开启:

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

四、验证模式说明(verification_mode)

模式 说明
full 验证证书 + 主机名(推荐)
certificate 只验证证书
none 不验证(不安全,仅测试)

⚠️ 生产环境不要使用 none


五、测试配置

sudo filebeat test config
sudo filebeat test output

看到 Connection OK 就说明证书配置正确。


六、重启 Filebeat

sudo systemctl restart filebeat
sudo systemctl status filebeat

七、常见问题

❌ x509: certificate signed by unknown authority

  • ca.crt 路径错了
  • CA 证书不匹配

❌ cannot validate certificate for IP

  • 证书里没有该 IP / 域名
  • 或 verification_mode 太严格

❌ permission denied

  • client.key 权限不是 600
  • filebeat 用户无读取权限

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

  • ✅ Filebeat → Elasticsearch 还是 Logstash?
  • ✅ 用的是 Elastic 官方证书还是自签?
  • ✅ 是否启用用户名密码 / API Key?

我可以直接帮你写一份 完整 filebeat.yml。

0 踩