文件转载自博客:https://www.shangyouw.cn/wenjian/arc30044.html
所以正确的做法应该是,撤掉刚刚的node0,然后将集群当中的三台es通过前端nginx做一个代理,然后让kibana连接nginx配置的地址即可实现高可用。
现在就在192.168.111.16的nginx添加配置:
upstream elasticsearch {
zone elasticsearch 64K;
server 192.168.111.3:9200;
所以正确的做法应该是,撤掉刚刚的node0,然后将集群当中的三台es通过前端nginx做一个代理,然后让kibana连接nginx配置的地址即可实现高可用。
现在就在192.168.111.16的nginx添加配置:
upstream elasticsearch {
zone elasticsearch 64K;
server 192.168.111.3:9200;
server 192.168.111.4:9200;
server 192.168.111.5:9200;
}
server {
listen 9200;
server_name 192.168.111.16;
location / {
proxy_pass http://elasticsearch;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
access_log logs/es_access.log;
}
然后加载配置。
nginx -t
nginx -s reload
接着更改kibana当中的连接地址:
[root@localhost logs]$!egr
egrep -v "^$|^#" /etc/kibana/kibana.yml
server.port: 5601
server.host: "0.0.0.0"
elasticsearch.url: "http://192.168.111.16:9200"
kibana.index: ".kibana"
xpack.security.enabled: false
这样以来,数据还都正常流通,即便nginx后端的某个es挂掉,还不会影响整个链路的正常。当然目前nginx是单节点,其实问题不大,如果量实在非常大,可以在nginx前端再添加高可用组件即可