温馨提示×

centos filebeat如何设证书

小樊
34
2026-10-26 11:31:59
栏目: 智能运维

在 CentOS 上配置 Filebeat 使用证书,通常出现在以下两种场景:

  1. Filebeat → Elasticsearch(HTTPS / TLS)
  2. Filebeat → Logstash(TLS)

下面分别说明,以 CentOS 7/8 通用为例。


一、准备证书文件

通常你需要以下文件(由 Elasticsearch / CA 签发):

  • ca.crt:CA 证书
  • client.crt:Filebeat 客户端证书
  • client.key:Filebeat 私钥

建议放到:

/etc/filebeat/certs/

设置权限:

chmod 600 /etc/filebeat/certs/client.key
chmod 644 /etc/filebeat/certs/ca.crt
chmod 644 /etc/filebeat/certs/client.crt

二、Filebeat → Elasticsearch(TLS)

1️⃣ 修改配置文件

vi /etc/filebeat/filebeat.yml

2️⃣ 配置 output.elasticsearch

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

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

如果是自签 CA,ca.crt 必须配置


三、Filebeat → Logstash(TLS)

1️⃣ filebeat.yml 配置

output.logstash:
  hosts: ["logstash-host:5044"]
  ssl.certificate_authorities: ["/etc/filebeat/certs/ca.crt"]
  ssl.certificate: "/etc/filebeat/certs/client.crt"
  ssl.key: "/etc/filebeat/certs/client.key"

2️⃣ 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"]
  }
}

四、验证配置

filebeat test config
filebeat test output

启动 / 重启:

systemctl restart filebeat
systemctl status filebeat

五、常见问题

❌ x509: certificate signed by unknown authority

  • 没配 ca.crt
  • CA 文件路径错误

❌ permission denied

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

❌ TLS handshake timeout

  • 端口不对
  • ES/Logstash 没开 HTTPS

六、示例目录结构

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

如果你能告诉我:

  • ✅ Filebeat 版本
  • ✅ 输出到 ES 还是 Logstash
  • ✅ 是否有现成证书

我可以给你完全对应的配置模板。

0 踩