我猜你需要一个上游负载均衡器来包装那些 es 节点。
就我而言,我使用 nginx 为我的 es 节点做负载平衡。所以拓扑是这样的:
ElastAlert -> Nginx -> ES node 1
-> ES node 2
...
-> ES node n
示例 nginx 配置
upstream elasticsearch {
server {node 1}:9200;
server {node 2}:9200;
server {node n}:9200;
keepalive 15;
}
server {
listen 8080;
location / {
proxy_pass http://elasticsearch;
proxy_http_version 1.1;
proxy_set_header Connection "Keep-Alive";
proxy_set_header Proxy-Connection "Keep-Alive";
}
}
示例 elastalert config.yml
es_host: "{nginx ip}"
es_port: "8080"
这是我读到的关于如何使用 nginx 的文章
https://www.elastic.co/blog/playing-http-tricks-nginx