温馨提示×

centos filebeat怎么配证书

小樊
43
2026-09-02 22:06:22
栏目: 智能运维

在 CentOS 上配置 Filebeat 使用证书,通常是指 Filebeat 与 Elasticsearch / Logstash 之间启用 TLS 加密(最常见场景)。下面按最常用场景给你一个完整、可落地的配置示例。


一、准备证书文件(常见三种)

一般你会有以下文件(名字可能不同):

  • ca.crt:CA 证书(必须)
  • client.crt:Filebeat 客户端证书(可选,双向认证时需要)
  • client.key:Filebeat 客户端私钥(可选)

假设放在:

/etc/filebeat/certs/
├── ca.crt
├── client.crt
├── client.key

设置权限(非常重要):

chmod 600 /etc/filebeat/certs/*
chown root:root /etc/filebeat/certs/*

二、Filebeat 连接 Elasticsearch(TLS 示例)

1️⃣ 单向 TLS(只验证服务端)

编辑:

vi /etc/filebeat/filebeat.yml
output.elasticsearch:
  hosts: ["https://es-node1:9200"]
  username: "filebeat_writer"
  password: "yourpassword"

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

✅ 适用于:Elasticsearch 开了 HTTPS,但不要求客户端证书


2️⃣ 双向 TLS(服务端 + 客户端证书)

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

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

三、Filebeat 连接 Logstash(TLS 示例)

output.logstash:
  hosts: ["logstash:5044"]

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

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

四、验证证书配置

1️⃣ 测试配置文件

filebeat test config

2️⃣ 测试输出连接

filebeat test output

✅ 成功示例:

elasticsearch: https://es-node1:9200...
  parse connection... OK
  TLS... OK

3️⃣ 启动 Filebeat

systemctl restart filebeat
systemctl status filebeat

五、常见问题排查

❌ x509: certificate signed by unknown authority

ca.crt 路径错误或未配置

❌ permission denied

✅ key 文件权限不是 600

❌ Cannot load certificate

✅ crt / key 不匹配


六、如果你用的是 Elastic Stack 自带证书

/usr/share/elasticsearch/bin/elasticsearch-certutil

生成后:

  • ca/ca.crt
  • instances/filebeat/filebeat.crt
  • instances/filebeat/filebeat.key

直接拷到 /etc/filebeat/certs/ 即可。


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

  • ✅ 是 ES 还是 Logstash
  • ✅ 单向还是双向认证
  • ✅ CentOS 版本 & Filebeat 版本

我可以直接帮你写一份 完全匹配你环境的 filebeat.yml

0