一、背景与目标
1.1 目标与范围
在 CentOS 环境下使用 Filebeat 实现日志传输安全传输的目标,是通过 TLS/SSL 加密确保日志数据在网络中传输时的机密性与完整性。本文聚焦在 CentOS 系统上,以实现 Filebeat 与输出端(如 Logstash 或 Elasticsearch)之间的端到端加密。
通过本实操,将覆盖证书准备、Filebeat 安装、配置项调整以及验证步骤,确保在实际运维中能够快速落地。核心要点是“加密传输”和“身份验证”,以防止数据泄露与篡改风险。
1.2 适用场景与约束
当日志数据需要跨网络传输至日志聚合平台时,开启 TLS 加密是最佳实践。本指南适用于 Filebeat 收集本地日志并发送到 Logstash(5044 端口)或 Elasticsearch(https 端口)的场景。请确保网络连通性与证书信任链的正确配置。
注意:生产环境通常使用受信 CA 签发的证书,而非自签证书,以提升信任度与合规性。在正式上线前完成证书轮转与吊销策略的制定,避免长期使用易失效证书。
二、准备工作与证书
2.1 证书角色与信任链
实现日志传输加密,首先要确定信任链的组成:CA 证书、服务器证书(Filebeat 客户端证书)、可能的服务器证书(Logstash/Elasticsearch 的证书)。CA 证书用于验证对端身份,服务器证书用于确证服务器端的身份,密钥用于签名与解密。
在 CentOS 上,常见做法是自建 CA(测试场景)或使用企业 CA(生产场景)。确保 CA 证书放置在受信任的位置,并在 Filebeat 配置中正确引用。
2.2 证书生成与管理步骤
以下步骤演示如何生成自签证书以实现测试环境中的 TLS 加密,生产环境请替换为受信 CA 签发的证书。操作前请备份原有证书与私钥,并确保路径权限合理。

生成 CA、服务器证书与密钥的基本流程如下,您可以按需调整域名、有效期等参数。证书有效期应与运维策略匹配。
# 以 root 身份执行以下示例命令,仅用于演示
# 1. 生成 CA 私钥与自签证书(根 CA)
openssl genrsa -out /etc/pki/tls/private/ca.key 4096
openssl req -x509 -new -nodes -key /etc/pki/tls/private/ca.key -days 3650 -out /etc/pki/tls/certs/ca.crt -subj "/C=CN/ST=Zhejiang/L=Hangzhou/O=Example/OU=IT/CN=Filebeat-CA"# 2. 生成 Filebeat 客户端证书(用于签名)
openssl genrsa -out /etc/pki/tls/private/filebeat.key 2048
openssl req -new -key /etc/pki/tls/private/filebeat.key -out /etc/pki/tls/private/filebeat.csr -subj "/C=CN/ST=Zhejiang/L=Hangzhou/O=Example/OU=IT/CN=filebeat.local"# 3. 用 CA 签署文件beat 的证书
openssl x509 -req -in /etc/pki/tls/private/filebeat.csr -CA /etc/pki/tls/certs/ca.crt -CAkey /etc/pki/tls/private/ca.key -CAcreateserial -out /etc/pki/tls/certs/filebeat.crt -days 3650 -sha256
若采用自建 CA,需将 CA 证书 (/etc/pki/tls/certs/ca.crt) 放置到信任目录中,并在 Filebeat 配置中指定 ssl.certificate_authorities。务必妥善管理私钥,避免泄露。
三、在 CentOS 上安装与配置 Filebeat
3.1 安装前准备与仓库配置
在 CentOS 上安装 Filebeat,推荐先配置 Elastic 官方仓库,以便获得稳定且可维护的版本。确保系统时间正确,以避免证书验证出现时钟偏差。
准备阶段需要打开防火墙端口,确保 Filebeat 与输出端之间的 TLS 流量可达。对 5044(Logstash Beats 输入) 或 5043/9200(Elasticsearch TLS) 端口进行放行,避免网络阻塞影响日志传输。
3.2 安装与初始配置步骤
通过以下步骤在 CentOS 系统中安装 Filebeat,并对必要目录与权限进行设置,确保后续配置生效。持续关注日志目录的权限,避免 Filebeat 读取日志失败。
安装完成后需要启用并启动 Filebeat 服务,以确保开机自启与运行状态正确。
# 以 root 身份执行
# 1) 配置 Elastic 官方仓库(以 CentOS 7/8 为例)
cat > /etc/yum.repos.d/elastic.repo <四、配置输出目标的 TLS 加密参数
4.1 TLS 参数含义与配置要点
Filebeat 通过输出配置来实现与日志聚合端的 TLS 加密。核心参数包括 ssl.certificate_authorities、ssl.certificate、ssl.key、ssl.verification_mode,用于指定信任链、客户端证书与行为。
在生产环境中,若输出端使用 Logstash,建议将 TLS 与认证结合,确保所有传输的日志都经过加密且对端身份可验证。禁用未加密传输、限制不安全协议,以降低中间人攻击风险。
4.2 示例配置:Logstash 作为输出端
以下示例展示了 Filebeat 发送到 Logstash(Beats 输入端口 5044)的 TLS 配置,以及证书路径的引用方式。请将 host 与证书路径替换为实际环境中的值。
# 文件: /etc/filebeat/filebeat.yml
filebeat.inputs:
- type: logenabled: truepaths:- /var/log/*.logoutput.logstash:hosts: ["logstash.internal:5044"]ssl.certificate_authorities: ["/etc/pki/tls/certs/ca.crt"]ssl.certificate: "/etc/pki/tls/certs/filebeat.crt"ssl.key: "/etc/pki/tls/private/filebeat.key"ssl.verification_mode: full
4.3 示例配置:Elasticsearch 作为输出端(HTTPS)
如果日志直接发送到 Elasticsearch,且 Elasticsearch 暴露的是 HTTPS 端口,配置示例如下,需确保 CA 证书链正确无误,且认证信息符合您的环境策略。
# 文件: /etc/filebeat/filebeat.yml
filebeat.inputs:
- type: logenabled: truepaths:- /var/log/*.logoutput.elasticsearch:hosts: ["https://es.cluster.local:9200"]ssl.certificate_authorities: ["/etc/pki/tls/certs/ca.crt"]ssl.certificate: "/etc/pki/tls/certs/filebeat.crt"ssl.key: "/etc/pki/tls/private/filebeat.key"protocol: "https"
配置完成后,重载 Filebeat 配置并重启服务,确保新设置生效。日志聚合端证书的变更需要协同更新 Filebeat 端证书,以避免信任链中断。
五、验证与排错
5.1 验证加密通道是否建立
开启 Filebeat 的调试日志或使用系统日志查看连接状态,可以确认 TLS 通道是否就绪。关注日志中的 TLS 握手错误、证书信任错误,以快速定位问题。
您也可以在输出端查看 Beats 输入日志,确认接收到经过 TLS 的日志,并且未出现连接中断。请确保时间同步与证书有效期一致。
5.2 常见故障排查要点
若遇到“无法建立 TLS 连接”之类的错误,首先检查证书路径、权限以及 Filebeat 用户是否能读取证书和密钥文件。默认情況下,证书和密钥应归属 root,Filebeat 进程需要有读取权限。
同时核对防火墙设置、SELinux 策略(如需要,设置适当的布尔值或策略),以及输出端是否允许来自 Filebeat 的 TLS 连接。确保 5044(Logstash)或 9200/443(Elasticsearch)端口在防火墙中开放。
六、运维与安全要点
6.1 证书轮转与管理
为避免证书到期导致的中断,请在合适的时间窗口内执行证书轮转。自动化证书轮转流程有助于降低运维成本,并在轮转后记得重启 Filebeat 服务以加载新证书。
在轮转过程中,请确保新的证书与旧证书的信任链保持一致,避免新旧证书混用时引发连接失败。记录证书到期时间与替换策略,以便审计与合规审查。
6.2 安全要点与最佳实践
尽量使用受信任的 CA 证书,而非长期依赖自签名证书。对传输数据的完整性和身份鉴别进行双重保护,提升整体安全性。
定期检查 Filebeat 以及输出端的版本与补丁,确保 TLS 实现遵循最新的安全标准。开启最小权限原则,限制 Filebeat 对日志目录的访问权限,降低潜在风险。


