在CentOS中,Filebeat支持通过TLS/SSL进行数据传输加密。以下是如何配置Filebeat以进行数据传输加密的步骤:
首先,确保你已经安装了Filebeat。如果没有安装,可以使用以下命令进行安装:
sudo yum install filebeat
编辑Filebeat的配置文件/etc/filebeat/filebeat.yml
,添加或修改以下配置项以启用TLS/SSL加密。
你需要为Filebeat和Elasticsearch生成证书和密钥。可以使用OpenSSL来生成这些文件。
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/pki/tls/private/elasticsearch-key.pem -out /etc/pki/tls/certs/elasticsearch-cert.pem -subj "/CN=elasticsearch"
sudo openssl req -newkey rsa:2048 -nodes -keyout /etc/pki/tls/private/filebeat-key.pem -out /etc/pki/tls/certs/filebeat-cert.pem -subj "/CN=filebeat"
sudo openssl req -x509 -newkey rsa:2048 -days 365 -nodes -keyout /etc/pki/tls/private/ca-key.pem -out /etc/pki/tls/certs/ca-cert.pem -subj "/CN=ca"
将生成的证书和密钥文件复制到Elasticsearch的配置目录中,并修改elasticsearch.yml
文件以启用TLS/SSL。
sudo cp /etc/pki/tls/certs/elasticsearch-cert.pem /etc/elasticsearch/config/
sudo cp /etc/pki/tls/private/elasticsearch-key.pem /etc/elasticsearch/config/
sudo cp /etc/pki/tls/certs/ca-cert.pem /etc/elasticsearch/config/
# 编辑elasticsearch.yml
sudo vi /etc/elasticsearch/config/elasticsearch.yml
在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.http.ssl.enabled: true
xpack.security.http.ssl.keystore.path: elastic-certificates.p12
xpack.security.http.ssl.truststore.path: elastic-certificates.p12
将生成的证书和密钥文件复制到Filebeat的配置目录中,并修改filebeat.yml
文件以启用TLS/SSL。
sudo cp /etc/pki/tls/certs/filebeat-cert.pem /etc/filebeat/config/
sudo cp /etc/pki/tls/private/filebeat-key.pem /etc/filebeat/config/
sudo cp /etc/pki/tls/certs/ca-cert.pem /etc/filebeat/config/
# 编辑filebeat.yml
sudo vi /etc/filebeat/filebeat.yml
在filebeat.yml
中添加以下配置:
filebeat.inputs:
- type: log
enabled: true
paths:
- /var/log/*.log
fields:
ssl.enabled: true
ssl.certificate_authorities: ["/etc/filebeat/config/ca-cert.pem"]
ssl.certificate: "/etc/filebeat/config/filebeat-cert.pem"
ssl.key: "/etc/filebeat/config/filebeat-key.pem"
output.elasticsearch:
hosts: ["https://localhost:9200"]
ssl.verification_mode: certificate
ssl.certificate_authorities: ["/etc/filebeat/config/ca-cert.pem"]
ssl.certificate: "/etc/filebeat/config/filebeat-cert.pem"
ssl.key: "/etc/filebeat/config/filebeat-key.pem"
完成配置后,重启Filebeat和Elasticsearch服务以应用更改。
sudo systemctl restart filebeat
sudo systemctl restart elasticsearch
确保Filebeat能够成功连接到Elasticsearch,并且数据传输是加密的。你可以使用以下命令检查Filebeat的日志:
sudo journalctl -u filebeat -f
通过以上步骤,你应该能够在CentOS中成功配置Filebeat以进行数据传输加密。