在CentOS系统中为Filebeat配置SSL/TLS加密日志传输,看似复杂,实际上只需掌握几个核心步骤即可完成。本文将详细介绍具体操作流程,帮助您快速实现安全日志传输。
1. 安装Filebeat
第一步,确保Filebeat已正确安装。若尚未安装,执行以下命令即可完成安装:
sudo yum install filebeat -y
2. 配置Filebeat
安装完成后,主要任务是对配置文件 /etc/filebeat/filebeat.yml 进行编辑。需要修改两个关键部分:输入源(filebeat.inputs)和输出端(output.elasticsearch)。
2.1 启用加密
在 filebeat.inputs 部分,开启SSL/TLS加密功能。具体操作是添加 ssl.enabled: true 并指定证书路径。示例如下:
filebeat.inputs:
- type: log
enabled: true
paths:
- /var/log/*.log
ssl.enabled: true
ssl.certificate_authorities: ["/etc/filebeat/ssl/ca.crt"]
ssl.certificate: "/etc/filebeat/ssl/client.crt"
ssl.key: "/etc/filebeat/ssl/client.key"
注意:证书路径需提前准备,后续章节将介绍证书生成方法。
2.2 配置输出到Elasticsearch
接下来,配置输出端指向一个同样启用SSL/TLS的Elasticsearch实例。在 output.elasticsearch 部分编写如下内容:
output.elasticsearch:
hosts: ["https://your_elasticsearch_host:9200"]
ssl.verification_mode: certificate
ssl.certificate_authorities: ["/etc/filebeat/ssl/ca.crt"]
上述配置中,将验证模式设为 certificate,并使用同一个CA证书对服务端进行身份校验。
3. 配置SSL/TLS证书
证书是加密通信的基础。如果没有现成的CA和客户端证书,使用OpenSSL自签名证书即可满足需求。以下是生成客户端证书和CA证书的具体步骤:
3.1 生成客户端证书(同时包含私钥)
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/filebeat/ssl/client.key -out /etc/filebeat/ssl/client.crt -subj "/CN=client/O=YourOrganization"
该命令将生成一个自签名客户端证书及其对应的私钥,有效期为365天。
3.2 生成CA证书(证书颁发机构)
sudo openssl req -new -x509 -days 365 -nodes -out /etc/filebeat/ssl/ca.crt -keyout /etc/filebeat/ssl/ca.key -subj "/C=US/ST=YourState/L=YourCity/O=YourOrganization/CN=CA"
此CA证书将用于客户端与服务端之间的双向校验。请务必将 ca.crt 文件分发给所有需要验证的节点。
4. 重启Filebeat
完成配置文件和证书部署后,需要重启Filebeat以使更改生效:
sudo systemctl restart filebeat
5. 验证配置
最后,验证Filebeat是否成功连接到Elasticsearch。查看日志是最便捷的方式:
tail -f /var/log/filebeat/filebeat
如果日志中未出现错误,并显示类似“Connected to Elasticsearch”的信息,则表明加密传输已成功建立。
通过以上步骤,CentOS上的Filebeat即可通过SSL/TLS加密方式将日志安全传输至Elasticsearch。整个流程涵盖安装、配置、证书生成、重启、验证五个环节,按顺序执行即可顺利完成。
