ELK主从集群部署(生产只有两套。。。)

概述

机器IP节点名称服务
114node-1数据、主节点(安装elasticsearch、logstash、kabana)
115node-2数据节点(安装elasticsearch)

如果logstash无法收集所有的ES服务日志,哪node-2也需要配置logstash
logstash收集所有的日志方法还是挺多的,如消息队列等等

主要思路:ElastiSearch天生就是分布式的 ,它知道如何通过管理多节点来提高扩容性和可用性。 这也意味着你的应用无需关注这个问题。

一个运行中的 Elasticsearch 实例称为一个 节点,而集群是由一个或者多个拥有相同 cluster.name 配置的节点组成, 它们共同承担数据和负载的压力。当有节点加入集群中或者从集群中移除节点时,集群将会重新平均分布所有的数据。

所以所谓的集群只是配置ES集群配置即可,而logstash、kabana都只是设置配置输出,简单。

这里只说集群的配置,不管是不是docker都可以使用(本人使用的是docker,注意开发9200与9300端口,9300是ES的默认通信端口)

配置文件
node-1 的 elasticsearch.yml 文件配置
cluster.name: cluster-es
node.name: node-1
node.master: true
node.data: true
network.host: 0.0.0.0
network.publish_host: 114
discovery.seed_hosts: 
["114:9300","115:9300"]
cluster.initial_master_nodes: ["node-1","node-2"]
discovery.zen.minimum_master_nodes: 1
http.cors.enabled: true
http.cors.allow-origin: "*"
node-2 的 elasticsearch.yml 文件配置
cluster.name: cluster-es
node.name: node-2
node.master: true
node.data: true
network.host: 0.0.0.0
network.publish_host: 115
discovery.seed_hosts: 
["114:9300","115:9300"]
cluster.initial_master_nodes: ["node-1","node-2"]
discovery.zen.minimum_master_nodes: 1
http.cors.enabled: true
http.cors.allow-origin: "*"

注:如果使用之前的 es 服务器,需要删除 data 文件夹,否者可能找不到集群
节点。

参数说明:

(1)cluster.name
集群名字,三台集群的集群名字都必须一致
(2)node.name
节点名字,三台 ES 节点字都必须不一样
(3)discovery.zen.minimum_master_nodes:1
表示集群最少的 master 数,如果集群的最少 master 数据少于指定的数,将无
法启动,官方推荐 node master 数设置为集群数/2+1,(由于这里生产环境只有两套,所以是设置为1,其他的可以根据节点数/2+1计算)
(4)node.master
该节点是否有资格选举为 master,如果上面设了两个 mater_node 2,也就是
最少两个 master 节点,则集群中必须有两台 es 服务器的配置为 node.master:
true 的配置,配置了 2 个节点的话,如果主服务器宕机,整个集群会不可用,
所以三台服务器,需要配置 3 个 node.masdter 为 true,这样三个 master,宕了
一个主节点的话,他又会选举新的 master,还有两个节点可以用,只要配了
node master 为 true 的 ES 服务器数正在运行的数量不少于 master_node 的配
置数,则整个集群继续可用,我这里则配置三台 es node.master 都为 true,也
就是三个 master,master 服务器主要管理集群状态,负责元数据处理,比如索
引增加删除分片分配等,数据存储和查询都不会走主节点,压力较小,jvm 内
存可分配较低一点
(5)node.data
存储索引数据,三台都设为 true 即可
(6)bind_host
用于连接所有接口是 elasticsearch 侦听的地方
(7)publish_host
elasticsearch 与其他集群组件进行通信的地方
(8)discovery.seed_hosts
集群节点的 ip 配置,端口为 9300。
(9)cluster.initial_master_nodes
设置置一系列符合主节点条件的节点的主机名或 IP 地址来引导启动集群
(10)http.cors.enabled: true
支持跨域访问开关
(11)http.cors.allow-origin: “*”
支持跨域访问

logstash的 logstash.conf 文件配置
# Sample Logstash configuration for creating a simple
# Beats -> Logstash -> Elasticsearch pipeline.

input {
#  beats {
#    port => 5044
#  }
tcp {
#	 host => "127.0.0.1"
	 port => 5044
	 codec => json_lines
    }
}

output {
  elasticsearch {
    hosts => ["http://114:9200","http://115:9200"]
    index =>  "logstash-console-%{+YYYY.MM.dd}"
    #user => "elastic"
    #password => "changeme"
  }
  stdout{
    codec => rubydebug
  }
}

因为这里的logstash的输入是能收集所有的ES服务,所以配置输出outpu即可

kibana的kibana.yml 文件配置
server.name: kibana
server.port: 5601
server.host: "0"

i18n.locale: "zh-CN"
# 对应的 elasticsearch服务所在 ip
elasticsearch.hosts: ["http://10.212.8.114:9200","http://10.212.8.115:9200"]
xpack.monitoring.ui.container.elasticsearch.enabled: true

验证集群是否成功的方法
浏览器 es集群健康状态:http://114:9200/_cluster/health?pretty
浏览器 es集群节点状态:http://114:9200/_nodes?pretty

kibana 在设置上面一个查看:可以可视化看到一些具体的信息在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值