ELKStack 实战之 Elasticsearch集群 [二]

Posted baishuchao

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ELKStack 实战之 Elasticsearch集群 [二]相关的知识,希望对你有一定的参考价值。

技术分享图片

ES集群介绍

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

[[email protected] ~]# grep '^[a-Z]' /etc/elasticsearch/elasticsearch.yml 
cluster.name: myes
node.name: abcdocker-node-2
path.data: /data/es-date
path.logs: /var/log/elasticsearch
bootstrap.memory_lock: true
network.host: 192.168.56.12
http.port: 9200
discovery.zen.ping.unicast.hosts: ["192.168.56.11", "192.168.56.12"]

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

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

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

[[email protected] ~]# vim /etc/elasticsearch/elasticsearch.yml
discovery.zen.ping.unicast.hosts: ["192.168.56.11", "192.168.56.12"]
[[email protected] ~]# systemctl restart elasticsearch.service
或者使用
/etc/init.d/elasticsearch restart

单播后面可以添加端口(不修改端口默认就是9200) 我们只需要在第二台服务器上进行修改
技术分享图片

我们在进入head插件中,点击连接。这时候我们会看到集群的状态,一个主,一个备。集群的状态也发生变化

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

ELKStack相关问题

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

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

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

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

2.监控

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

[[email protected] ~]# curl -XGET 'http://192.168.56.11:9200/_cluster/health?pretty=true'
{
  "cluster_name" : "myes",
  "status" : "green",
  "timed_out" : false,
  "number_of_nodes" : 2,
  "number_of_data_nodes" : 2,
  "active_primary_shards" : 5,
  "active_shards" : 10,
  "relocating_shards" : 0,
  "initializing_shards" : 0,
  "unassigned_shards" : 0,
  "delayed_unassigned_shards" : 0,
  "number_of_pending_tasks" : 0,
  "number_of_in_flight_fetch" : 0,
  "task_max_waiting_in_queue_millis" : 0,
  "active_shards_percent_as_number" : 100.0
}
然后我们通过脚本的方式可以进行判断,是否为true以及状态是否为green等

管理监控和部署
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启动报错
技术分享图片
es日志显示如下

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

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

以上是关于ELKStack 实战之 Elasticsearch集群 [二]的主要内容,如果未能解决你的问题,请参考以下文章

elkstack实战---集中管理nginx访问日志及报表展示

Elk and nginx and redis 干货

elasticsearc之mapping的介绍

ELKStack之生产案例(下)

ELKStack之消息队列

运维书