目标
??????? 使用filebeat将数据通过公网传输到elasticsearch。
原因
??????? 要采集数据的服务与elasticsearch不再一个网络,要采集数据的服务必须通过公网才能访问到elasticsearch。
????????由于elasticsearch不建议直接对外开放外网访问,因此需要一定的安全机制。
解决方案
??????? 通过nginx代理访问elasticsearch,nginx上使用openssl制作证书,开放https访问,外网域名映射到nginx服务。
????????这样客户端使用https访问到es时必须有客户端证书才可以。可以很大程度上保证其安全性。
??????? 同时还需要对elasticsearch设置密码。
实施过程
??????? 1. 证书制作及nginx配置过程 https://blog.csdn.net/haoxinqing9698/article/details/119219386
??????? 2. filebeat配置
???????
output.elasticsearch:
# Array of hosts to connect to.
hosts: ["自己的nginx域名:443"]
index: "收集到的索引名"
# Protocol - either `http` (default) or `https`.
protocol: "https"
# Authentication credentials - either API key or username/password.
#api_key: "id:api_key"
username: "elastic"
password: "自己的es密码"
# 根证书地址
ssl.certificate_authorities: [ "/xxxx/keys/certs/ca.cer" ]
# 客户端证书
ssl.certificate: "/xxxx/keys/certs/client.cer"
# 客户端密钥 解密密钥命令 openssl rsa -in client-key.pem -out client-key.unsecure
ssl.key: "/xxxx/keys/private/client-key.unsecure"
|