在CentOS上使用Filebeat进行日志加密可以通过配置TLS/SSL加密传输来实现。以下是详细的步骤:
首先,确保你已经在CentOS上安装了Filebeat。如果没有安装,可以使用以下命令进行安装:
sudo yum install filebeat
使用OpenSSL生成SSL证书和密钥。以下是生成自签名证书的示例命令:
# 创建CA目录和文件
mkdir -p /etc/pki/tls/certs
mkdir -p /etc/pki/tls/private
# 生成CA私钥
openssl genrsa -out /etc/pki/tls/private/ca.key 2048
# 生成CA证书
openssl req -x509 -new -nodes -key /etc/pki/tls/private/ca.key -out /etc/pki/tls/certs/ca.crt -days 3650
# 生成Filebeat私钥
openssl genrsa -out /etc/pki/tls/private/filebeat.key 2048
# 生成CSR(证书签名请求)
openssl req -new -key /etc/pki/tls/private/filebeat.key -out /etc/pki/tls/certs/filebeat.csr -subj "/CN=<Filebeat_Server_IP>/"
# 使用CA证书签名CSR,生成Filebeat证书
openssl x509 -req -in /etc/pki/tls/certs/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 365
编辑Filebeat的配置文件 /etc/filebeat/filebeat.yml
,指定SSL证书和密钥的位置,以及目标服务器的地址和端口。
filebeat.inputs:
- type: log
paths:
- /path/to/your/log/*.log
output.elasticsearch:
hosts:
- ["https://your-elasticsearch-server:9200"]
ssl.certificate_authorities:
- "/etc/pki/tls/certs/ca.crt" # CA证书的路径,用于验证目标服务器的身份
ssl.certificate: "/etc/pki/tls/certs/filebeat.crt" # Filebeat的证书路径
ssl.key: "/etc/pki/tls/private/filebeat.key" # Filebeat的私钥路径
确保Elasticsearch已经配置为接受TLS连接。编辑 /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
然后,使用Elasticsearch的 elasticsearch-certutil
工具生成证书和密钥:
sudo /usr/share/elasticsearch/bin/elasticsearch-certutil ca --pem --out /etc/elasticsearch/certs/ca.crt
sudo /usr/share/elasticsearch/bin/elasticsearch-certutil cert --pem -in /etc/elasticsearch/certs/ca.crt -out /etc/elasticsearch/certs/elastic-certificates.p12 -pass ""
完成配置后,重启Filebeat和Elasticsearch服务以应用更改:
sudo systemctl restart filebeat
sudo systemctl restart elasticsearch
确保Filebeat能够成功连接到Elasticsearch,并且日志数据是通过TLS加密传输的。你可以通过查看Elasticsearch的日志文件来验证这一点。
sudo tail -f /var/log/elasticsearch/filebeat.log
通过以上步骤,你可以在CentOS上使用Filebeat实现日志的加密传输。