确保 Filebeat 数据传输安全的实用方案
一 加密通道与证书配置
output.elasticsearch:
hosts: ["https://es.example.com:9200"]
username: "beats_writer"
password: "${ES_PWD}"
ssl.certificate_authorities: ["/etc/filebeat/certs/ca.crt"]
ssl.verification_mode: full
input {
beats {
port => 5044
ssl => true
ssl_certificate_authorities => ["/etc/logstash/certs/ca.crt"]
ssl_certificate => "/etc/logstash/certs/logstash.crt"
ssl_key => "/etc/logstash/certs/logstash.key"
ssl_verify_mode => "force_peer"
}
}
output.logstash:
hosts: ["logstash.example.com:5044"]
ssl.certificate_authorities: ["/etc/filebeat/certs/ca.crt"]
ssl.certificate: "/etc/filebeat/certs/filebeat.crt"
ssl.key: "/etc/filebeat/certs/filebeat.key"
二 身份认证与授权
POST /_security/role/beats_writer
{
"indices": [
{ "names": ["filebeat-*","logs-*"], "privileges": ["create_index","write","auto_configure"] }
]
}
POST /_security/user/beats_filebeat
{
"password": "强密码",
"roles": ["beats_writer"],
"full_name": "Filebeat Writer"
}
filebeat keystore create
filebeat keystore add ES_PWD
# 配置中使用 password: "${ES_PWD}"
三 网络与系统加固
四 高可用与可观测性
五 快速验证与排障
openssl s_client -connect es.example.com:9200 -servername es.example.com -showcerts
curl -u beats_writer:${ES_PWD} --cacert /etc/filebeat/certs/ca.crt https://es.example.com:9200
filebeat test config -e
filebeat test output
journalctl -u filebeat -n 100 -f
telnet logstash.example.com 5044
nc -zv logstash.example.com 5044