在 CentOS 上,Filebeat 加密传输通常有两种常见场景:
下面分别说明,最常用的是 Filebeat 到 Logstash/ES 的 TLS 加密。
# 安装 openssl
yum install -y openssl
# 生成 CA
openssl req -x509 -nodes -days 3650 -newkey rsa:2048 \
-keyout /etc/pki/tls/private/logstash-ca.key \
-out /etc/pki/tls/certs/logstash-ca.crt
# 生成 Logstash 证书
openssl req -newkey rsa:2048 -nodes \
-keyout /etc/pki/tls/private/logstash.key \
-out /etc/pki/tls/logstash.csr
openssl x509 -req -in /etc/pki/tls/logstash.csr \
-CA /etc/pki/tls/certs/logstash-ca.crt \
-CAkey /etc/pki/tls/private/logstash-ca.key \
-CAcreateserial -out /etc/pki/tls/certs/logstash.crt -days 3650
/etc/logstash/conf.d/input.conf
input {
beats {
port => 5044
ssl => true
ssl_certificate => "/etc/pki/tls/certs/logstash.crt"
ssl_key => "/etc/pki/tls/private/logstash.key"
ssl_certificate_authorities => ["/etc/pki/tls/certs/logstash-ca.crt"]
}
}
编辑 /etc/filebeat/filebeat.yml
output.logstash:
hosts: ["logstash_ip:5044"]
ssl.enabled: true
ssl.certificate_authorities: ["/etc/filebeat/logstash-ca.crt"]
将 logstash-ca.crt 拷贝到 Filebeat 机器:
scp logstash-ca.crt /etc/filebeat/
systemctl restart filebeat
systemctl status filebeat
xpack.security.enabled: true
xpack.security.http.ssl.enabled: true
xpack.security.http.ssl.certificate: certs/elasticsearch.crt
xpack.security.http.ssl.key: certs/elasticsearch.key
xpack.security.http.ssl.certificate_authorities: certs/ca.crt
output.elasticsearch:
hosts: ["https://es_ip:9200"]
username: "filebeat"
password: "password"
ssl.enabled: true
ssl.certificate_authorities: ["/etc/filebeat/ca.crt"]
# 查看端口
netstat -tnlp | grep 5044
# 抓包验证(应看不到明文)
tcpdump -i any port 5044
✅ 只加密不认证:ssl.certificate_authorities 可省略
✅ 双向认证:Filebeat 也配置 ssl.certificate + ssl.key
✅ 证书过期:建议 3–5 年
如果你用的是 Filebeat 版本(7.x / 8.x) 或 具体架构(Filebeat→Kafka?),可以告诉我,我可以给你精确配置示例。