温馨提示×

如何给debian filebeat加证书

小樊
44
2026-10-26 22:54:12
栏目: 智能运维

下面以 Debian 系统 + Elastic Filebeat 为例,说明如何为 Filebeat 配置证书(常用于 Filebeat → Elasticsearch / Logstash 的 TLS 加密通信)。


一、准备工作

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

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

示例目录(推荐):

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

设置权限(非常重要):

sudo chown -R root:root /etc/filebeat/certs
sudo chmod 600 /etc/filebeat/certs/client.key
sudo chmod 644 /etc/filebeat/certs/ca.crt
sudo chmod 644 /etc/filebeat/certs/client.crt

二、配置 Filebeat(以 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"]
    certificate: "/etc/filebeat/certs/client.crt"
    key: "/etc/filebeat/certs/client.key"

2. 输出到 Logstash(启用 TLS)

output.logstash:
  hosts: ["logs.example.com:5044"]

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

三、验证证书配置

1. 测试配置文件

sudo filebeat test config

2. 测试输出连接

sudo filebeat test output

看到 TLS connection ... OK 即说明证书配置正确。


四、启用并重启 Filebeat

sudo systemctl enable filebeat
sudo systemctl restart filebeat
sudo systemctl status filebeat

五、常见问题

1. 证书不匹配

错误示例:

x509: certificate is valid for ..., not es-node1

✅ 解决:确保证书 CN 或 SAN 包含 ES 主机名


2. 权限错误

failed to load SSL cert

✅ 解决:确认 client.key 权限为 600


3. 自签 CA 未信任

✅ 必须把 ca.crt 配置到 certificate_authorities


六、示例:使用 Elasticsearch 自带工具生成证书(可选)

在 ES 节点:

/usr/share/elasticsearch/bin/elasticsearch-certutil cert \
  --ca /etc/elasticsearch/certs/ca.p12 \
  --name filebeat \
  --out filebeat.p12

然后导出:

openssl pkcs12 -in filebeat.p12 -out client.crt -clcerts -nokeys
openssl pkcs12 -in filebeat.p12 -out client.key -nocerts

如果你能告诉我:

  • Filebeat 版本
  • 输出目标是 Elasticsearch 还是 Logstash
  • 是否使用 Elastic Stack 自带 TLS

我可以给你更精确的配置示例。

0 踩