ELKStack 实战之 Elasticsearch集群 [二]

摘要

在一个集群中2个节点需要选举,有一个节点会被选为主节点(master节点)主节点负责管理集群中的状态。对于用户来说这个ES主节点是谁都是无所谓的,我们只要连接到其中一台就可以的(我们所有操作都可以连接到任意一个节点上)


ELKStack 实战之 Elasticsearch集群 [二]

ELKStack

ES集群介绍

ES默认使用组播的方式进行通讯,当我们将另外一台服务器配置完成后它就会去找其他节点
我们只需要将cluster.name:ES集群名字设置相同即可

  1. [root@abcdocker ~]# grep '^[a-Z]' /etc/elasticsearch/elasticsearch.yml
  2. cluster.name: myes
  3. node.name: abcdocker-node-2
  4. path.data: /data/es-date
  5. path.logs: /var/log/elasticsearch
  6. bootstrap.memory_lock: true
  7. network.host: 192.168.56.12
  8. http.port: 9200
  9. discovery.zen.ping.unicast.hosts: ["192.168.56.11", "192.168.56.12"]

提示: 在一个集群中2个节点需要选举,有一个节点会被选为主节点(master节点)主节点负责管理集群中的状态。对于用户来说这个ES主节点是谁都是无所谓的,我们只要连接到其中一台就可以的(我们所有操作都可以连接到任意一个节点上)

 我们的数据是不要通过主节点进行转发的,主节点不像是proxy这样节点.当我们在2节点上写数据,2节点会将数据同步到其它节点。主节点主要管理分片、比如分片多少个,哪个分片是主,哪个是备等。


提示: 虚拟机是NAT模式,可能会对组播有影响。我们可以手动将组播修改成单播

  1. [root@abcdocker ~]# vim /etc/elasticsearch/elasticsearch.yml
  2. discovery.zen.ping.unicast.hosts: ["192.168.56.11", "192.168.56.12"]
  3. [root@abcdocker ~]# systemctl restart elasticsearch.service
  4. 或者使用
  5. /etc/init.d/elasticsearch restart

单播后面可以添加端口(不修改端口默认就是9200) 我们只需要在第二台服务器上进行修改
image_1bdbs7877jitf1f1iu0ors1nql9.png-53.4kB
我们在进入head插件中,点击连接。这时候我们会看到集群的状态,一个主,一个备。集群的状态也发生变化

提示: 这个状态是主节点展示,主节点会掌握整个集群的状态,来给我们显示集群健康值状态。主节点还会检查这些分片,那个分片丢了,主节点会在复制一个分片出来。

ELKStack相关问题

1.问题:如果在正常工作的情况下,节点丢失怎么办?

答: 此时主节点会看故障节点有哪些分片丢失掉了,主节点就会从剩余的分片副本上去选举一个当做主分片,在进行复制一份。

提示:如果我们想让某个节点只存放数据不进行选举可以在配置文件进行修改

无论我们查询数据连接那个节点,es会把所有数据汇聚在一台节点发送给我们。例如我们请求abcdocker1节点,但是abcdocker1上的节点有一些数据在abcdocker2上。这时abcdocker1节点回去同步abcdocker2节点上的数据。然后返回给客户端

2.监控

如果我们想监控es集群状态可以使用api的方式

  1. [root@abcdocker ~]# curl -XGET 'http://192.168.56.11:9200/_cluster/health?pretty=true'
  2. {
  3. "cluster_name" : "myes",
  4. "status" : "green",
  5. "timed_out" : false,
  6. "number_of_nodes" : 2,
  7. "number_of_data_nodes" : 2,
  8. "active_primary_shards" : 5,
  9. "active_shards" : 10,
  10. "relocating_shards" : 0,
  11. "initializing_shards" : 0,
  12. "unassigned_shards" : 0,
  13. "delayed_unassigned_shards" : 0,
  14. "number_of_pending_tasks" : 0,
  15. "number_of_in_flight_fetch" : 0,
  16. "task_max_waiting_in_queue_millis" : 0,
  17. "active_shards_percent_as_number" : 100.0
  18. }
  19. 然后我们通过脚本的方式可以进行判断,是否为true以及状态是否为green

关于zabbix监控es可以继续关注我博客zabbix模块,近期会进行添加。关于更多监控可以查看官方文档

管理监控和部署
https://www.elastic.co/guide/en/elasticsearch/guide/current/administration.html
https://www.elastic.co/guide/en/elasticsearch/guide/current/_cat_api.html
elastic官方文档
https://www.elastic.co/guide/en/elasticsearch/guide/
关于线上服务器硬件介绍
https://www.elastic.co/guide/en/elasticsearch/guide/current/hardware.html

3.启动报错

es启动报错
image_1bdc07gpq1l9b1aup1bigf0l1fnqm.png-438.1kB
es日志显示如下
image_1bdc06u3vs1fmpnmju1dda18vh9.png-312.3kB

marvel plugin requires the license plugin to be installed,于是想到那个插件没有安装成功,去plugin目录下面把marvel-agent目录移除了,重启就正常了

错误提示: es错误几种,首先是端口被占用,其次是es数据权限不足。


发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: