在 CentOS 上配置 Filebeat 的加密传输
一 准备与安装
sudo yum install filebeat -y。安装完成后,配置文件默认位于 /etc/filebeat/filebeat.yml。如使用 Elasticsearch 8.x,建议通过官方仓库安装,保持版本一致以获得完整的 TLS/X-Pack 支持。二 生成证书与密钥
sudo /usr/share/elasticsearch/bin/elasticsearch-certutil ca --pem --out /etc/elasticsearch/certs/ca.zipunzip -o /etc/elasticsearch/certs/ca.zip -d /etc/elasticsearch/certs/sudo /usr/share/elasticsearch/bin/elasticsearch-certutil cert --pem --ca-cert /etc/elasticsearch/certs/ca/ca.crt --ca-key /etc/elasticsearch/certs/ca/ca.key --out /etc/filebeat/certs/filebeat.zipopenssl req -x509 -newkey rsa:2048 -keyout ca.key -out ca.crt -days 3650 -nodes -subj "/CN=ca"openssl genrsa -out filebeat.key 2048;openssl req -new -key filebeat.key -out filebeat.csr -subj "/CN=filebeat"openssl x509 -req -in filebeat.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out filebeat.crt -days 365 -sha256 -extfile <(printf "subjectAltName=DNS:your_es_host,DNS:localhost,IP:192.168.1.10")chmod 600 /etc/filebeat/certs/*.key; chown root:root /etc/filebeat/certs/*。三 配置 Filebeat 使用 TLS 输出到 Elasticsearch
filebeat.inputs:
- type: log
enabled: true
paths:
- /var/log/*.log
output.elasticsearch:
hosts: ["https://es01.example.com:9200"]
ssl.enabled: true
ssl.verification_mode: certificate
ssl.certificate_authorities: ["/etc/filebeat/certs/ca.crt"]
# 如 ES 要求客户端证书,再添加下面三行
# ssl.certificate: "/etc/filebeat/certs/filebeat.crt"
# ssl.key: "/etc/filebeat/certs/filebeat.key"
username: "filebeat_internal"
password: "YourStrongP@ssw0rd"
ssl.verification_mode 常用值为 certificate(校验证书)或 full(校验证书与主机名);生产建议 full。四 配置 Elasticsearch 启用 TLS
xpack.security.enabled: true
xpack.security.transport.ssl.enabled: true
xpack.security.transport.ssl.verification_mode: certificate
xpack.security.transport.ssl.certificate: /etc/elasticsearch/certs/elasticsearch.crt
xpack.security.transport.ssl.key: /etc/elasticsearch/certs/elasticsearch.key
xpack.security.transport.ssl.certificate_authorities: ["/etc/elasticsearch/certs/ca.crt"]
xpack.security.http.ssl.enabled: true
xpack.security.http.ssl.certificate: /etc/elasticsearch/certs/elasticsearch.crt
xpack.security.http.ssl.key: /etc/elasticsearch/certs/elasticsearch.key
xpack.security.http.ssl.certificate_authorities: ["/etc/elasticsearch/certs/ca.crt"]
elasticsearch-certutil cert --p12 生成 elastic-certificates.p12,并在配置中使用 keystore.path 与 truststore.path 指向该文件。五 启动与验证
sudo systemctl restart elasticsearch && sudo systemctl enable elasticsearchsudo systemctl restart filebeat && sudo systemctl enable filebeatsudo journalctl -u filebeat -fcurl -u filebeat_internal:YourStrongP@ssw0rd --cacert /etc/filebeat/certs/ca.crt --cert /etc/filebeat/certs/filebeat.crt --key /etc/filebeat/certs/filebeat.key https://es01.example.com:9200