在Ubuntu上使用Filebeat时,可以通过配置SSL/TLS来加密Filebeat与Elasticsearch之间的传输数据。以下是实现数据加密的步骤:
首先,你需要生成SSL证书和密钥。可以使用OpenSSL来完成这一任务。
# 创建一个目录来存放证书和密钥
mkdir -p /etc/filebeat/ssl
# 生成私钥
openssl genrsa -out /etc/filebeat/ssl/filebeat.key 2048
# 生成证书签名请求 (CSR)
openssl req -new -key /etc/filebeat/ssl/filebeat.key -out /etc/filebeat/ssl/filebeat.csr -subj "/CN=filebeat/O=your_organization"
# 生成自签名证书
openssl x509 -req -days 365 -in /etc/filebeat/ssl/filebeat.csr -signkey /etc/filebeat/ssl/filebeat.key -out /etc/filebeat/ssl/filebeat.crt
将生成的filebeat.crt
和filebeat.key
文件复制到Elasticsearch服务器上的相应目录,并确保Elasticsearch配置文件elasticsearch.yml
中启用了SSL/TLS。
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
编辑Filebeat的配置文件filebeat.yml
,启用SSL/TLS并指定证书和密钥的路径。
filebeat.inputs:
- type: log
enabled: true
paths:
- /var/log/*.log
output.elasticsearch:
hosts: ["https://your_elasticsearch_host:9200"]
ssl.verification_mode: certificate
ssl.certificate_authorities: ["/etc/filebeat/ssl/filebeat.crt"]
ssl.certificate: "/etc/filebeat/ssl/filebeat.crt"
ssl.key: "/etc/filebeat/ssl/filebeat.key"
保存配置文件后,重启Filebeat服务以应用更改。
sudo systemctl restart filebeat
你可以使用curl
命令来验证Filebeat与Elasticsearch之间的SSL/TLS连接是否正常。
curl -k --cacert /etc/filebeat/ssl/filebeat.crt --cert /etc/filebeat/ssl/filebeat.crt --key /etc/filebeat/ssl/filebeat.key https://your_elasticsearch_host:9200
如果连接成功,你应该会看到Elasticsearch的响应。
通过以上步骤,你可以在Ubuntu上配置Filebeat以实现数据加密传输。