Filebeat在CentOS上的日志加密方法
一、传输层加密 TLS 到 Elasticsearch 或 Logstash
示例配置 filebeat.yml(输出到 Elasticsearch):
filebeat.inputs:
- type: log
enabled: true
paths:
- /var/log/*.log
output.elasticsearch:
hosts: ["https://es.example.com:9200"]
ssl.enabled: true
ssl.certificate_authorities: ["/etc/filebeat/certs/ca.crt"]
ssl.certificate: "/etc/filebeat/certs/filebeat.crt"
ssl.key: "/etc/filebeat/certs/filebeat.key"
username: "elastic"
password: "your_password"
二、生成证书与密钥(自签名 CA 示例)
mkdir -p /etc/filebeat/certs
openssl genrsa -out /etc/filebeat/certs/ca.key 2048
openssl req -x509 -new -nodes -key /etc/filebeat/certs/ca.key -sha256 -days 3650 \
-out /etc/filebeat/certs/ca.crt -subj "/CN=Filebeat-CA"
openssl genrsa -out /etc/filebeat/certs/filebeat.key 2048
openssl req -new -key /etc/filebeat/certs/filebeat.key -out /etc/filebeat/certs/filebeat.csr -subj "/CN=filebeat"
openssl x509 -req -in /etc/filebeat/certs/filebeat.csr -CA /etc/filebeat/certs/ca.crt -CAkey /etc/filebeat/certs/ca.key \
-CAcreateserial -out /etc/filebeat/certs/filebeat.crt -days 365 -sha256
chmod 600 /etc/filebeat/certs/*.key
三、对端服务配置要点(Elasticsearch 示例)
xpack.security.enabled: true
xpack.security.transport.ssl.enabled: true
xpack.security.transport.ssl.verification_mode: certificate
xpack.security.transport.ssl.keystore.path: /etc/elasticsearch/certs/elastic-certificates.p12
xpack.security.transport.ssl.truststore.path: /etc/elasticsearch/certs/elastic-certificates.p12
四、启动与验证
sudo systemctl restart filebeat
sudo systemctl restart elasticsearch
curl -u elastic:your_password --cacert /etc/filebeat/certs/ca.crt \
--cert /etc/filebeat/certs/filebeat.crt --key /etc/filebeat/certs/filebeat.key \
https://es.example.com:9200
sudo journalctl -u filebeat -f
五、字段级加密与注意事项