[英]Failover for elasticsearch and logstash
我正在努力配置logstash和elasticsearch。 在我的logstash配置文件輸出部分。
elasticsearch {
codec => json_lines
cluster => "firstEsearch_cluster"
protocol => "http"
host => "192.168.56.3"
port => "9200"
}
如果我這樣做,我就能夠與elasticsearch實例進行通信
但是現在我在不同的機器上有多個用於彈性搜索的節點,在這些機器上我復制數據以從故障中恢復並且機器在同一網絡中 。
現在當我的機器192.168.56.3
失敗並且192.168.56.4
和192.168.56.5
正在運行elasticsearch的其他節點時,由於機器192.168.56.3
已關閉,因此無法將日志發送到elasticsearch集群。 所以
當我嘗試這樣做時:
elasticsearch {
codec => json_lines
cluster => "firstEsearch_cluster"
protocol => "http"
#host => "192.168.56.3"
#port => "9200"
}
logstash無法連接到elasticsearch實例,也無法發送日志。
使用DNS名稱部署負載均衡器,並將elasticsearch輸出指向它。 負載均衡器會將請求路由到活動的elasticsearch節點。
您可以在充當客戶機節點的索引器上運行設置本地ES實例。 使用以下選項配置節點
node.master: false
node.data: false
然后只需將您的elasticsearch輸出指向localhost。 該客戶端節點將不存儲任何數據,僅充當其余節點的負載平衡器。
Elasticsearch(現在稱為彈性)現在建議設置一個可以進行負載平衡的nginx代理。 將您的logstash服務器指向代理,然后nginx將在集群中的節點之間進行循環。
https://www.elastic.co/blog/playing-http-tricks-nginx/
這是nginx配置可能看起來的片段。 將您的logstash服務器指向端口8080。
events {
worker_connections 1024;
}
http {
upstream elasticsearch {
server 127.0.0.1:9200;
server 127.0.0.1:9201;
server 127.0.0.1:9202;
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";
}
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.