在CentOS上使用Filebeat进行数据加密
在数据采集和传输过程中,安全性是绝对不能忽视的一环。将Filebeat采集的日志数据加密后传输到Elasticsearch,是构建安全日志管道的标准操作。下面,我们就来详细拆解一下在CentOS系统上实现这一目标的具体步骤。

第一步:安装Filebeat
如果系统里还没有Filebeat,安装过程非常简单。直接使用yum包管理器即可一键搞定:
sudo yum install filebeat
第二步:配置Filebeat
安装完成后,真正的核心工作在于配置文件。你需要编辑Filebeat的主配置文件 /etc/filebeat/filebeat.yml。找到或者手动添加 outputs.elasticsearch 这个部分,并进行如下配置:
filebeat.inputs:
- type: log
enabled: true
paths:
- /var/log/*.log
outputs.elasticsearch:
hosts: [“your_elasticsearch_host:9200”]
ssl.enabled: true
ssl.certificate_authorities: [“/path/to/ca.crt”]
ssl.certificate: “/path/to/client.crt”
ssl.key: “/path/to/client.key”
user: “your_elasticsearch_user”
password: “your_elasticsearch_password”
这里有几个关键参数需要特别注意:
hosts: 这里填的是你的Elasticsearch服务器的地址和端口。ssl.enabled: 这个开关必须设置为true,这是启用SSL/TLS加密传输的起点。ssl.certificate_authorities: 指定CA证书的路径,Filebeat用它来验证Elasticsearch服务器证书的合法性。ssl.certificate和ssl.key: 分别对应客户端证书和私钥的路径,用于向Elasticsearch证明自己的身份,实现双向认证。user和password: Elasticsearch的认证凭据,确保只有授权用户才能写入数据。
第三步:配置Elasticsearch
光配置Filebeat还不够,Elasticsearch那边也得做好接收加密连接的准备。编辑Elasticsearch的配置文件 /etc/elasticsearch/elasticsearch.yml,确保以下安全配置已经就位:
xpack.security.enabled: true
xpack.security.transport.ssl.enabled: true
xpack.security.transport.ssl.verification_mode: certificate
xpack.security.transport.ssl.keystore.path: elastic-certificates.p12
xpack.security.transport.ssl.truststore.path: elastic-certificates.p12
简单解释一下这几个配置项的作用:
xpack.security.enabled: 启用X-Pack安全模块,这是基础。xpack.security.transport.ssl.enabled: 在传输层启用SSL/TLS加密。xpack.security.transport.ssl.verification_mode: 设置为certificate意味着启用双向证书认证,安全性更高。keystore.path和truststore.path: 分别指向密钥库和信任库文件,里面包含了服务端的证书和私钥。
第四步:重启服务
配置文件的修改需要重启服务才能生效。依次重启Filebeat和Elasticsearch服务:
sudo systemctl restart filebeat
sudo systemctl restart elasticsearch
第五步:验证加密连接
最后一步,也是至关重要的一步:验证。配置是否成功,不能靠猜。你可以使用 curl 命令来模拟Filebeat的行为,测试到Elasticsearch的加密连接是否通畅:
curl -u your_elasticsearch_user:your_elasticsearch_password --cacert /path/to/ca.crt --cert /path/to/client.crt --key /path/to/client.key https://your_elasticsearch_host:9200
如果终端返回了Elasticsearch的集群信息等JSON响应,那么恭喜你,从客户端到服务端的加密通道已经成功建立。
按照以上步骤操作,你就能在CentOS上构建起一个通过Filebeat向Elasticsearch加密传输数据的可靠链路。整个过程的核心,其实就是确保两端的SSL证书配置正确且匹配,同时服务监听端口已做好加密准备。多检查一遍证书路径和权限,往往能避免大部分问题。
