ELK实践(一):基础入门

简介

ELK 指的是一套解决方案,是 Elasticsearch、Logstash 和 Kibana 三种软件产品的首字母缩写,Beats 是 ELK 协议栈的新成员。

  • E:代表 Elasticsearch,负责日志的存储和检索;
  • L:代表 Logstash,负责日志的收集、过滤和格式化;
  • K:代表 Kibana,负责日志数据的可视化;
  • Beats:是一类轻量级数据采集器;

本来ELK是没有Beats的。

最开始的架构中,由 Logstash 承担数据采集器和过滤功能,并部署在应用服务器。由于 Logstash 对大量日志进行过滤操作,会消耗应用系统?>的部分性能,带来不合理的资源分配问题;另一方面,过滤日志的配置,分布在每台应用服务器,不便于集中式配置管理。

所以就有了Beats。

由于 Beats 的系统性能开销更小,所以应用服务器性能开销可以忽略不计;另一方面,Beats 可以作为数据采集插件形式工作,可以按需启用 >Beats 下不同功能的插件,更灵活,扩展性更强。例如,应用服务器只启用 Filebeat,则只收集日志文件数据,如果某天需要收集系统性能数据>时,再启用 Metricbeat 即可,并不需要太多的修改和配置。

其中,目前 Beats 家族根据功能划分,主要有:

  • Filebeat
    Real-time insight into log data.
    负责收集文件数据。

  • Packetbeat
    Analyze network packet data.
    负责收集网络流量数据。

  • Winlogbeat
    Analyze Windows event logs.
    负责收集 Windows 事件日志数据。

  • Metricbeat
    Ship and analyze metrics.
    负责收集系统级的 CPU 使用率、内存、文件系统、磁盘 IO 和网络 IO 统计数据。

  • Heartbeat
    Ping your Infrastructure.

  • Auditbeat
    Send audit data to Elasticsearch.

如果日志量巨大,可能还会引入Kafka用以均衡网络传输,从而降低了网络闭塞,尤其是丢失数据的可能性;另一方面,这样可以系统解耦,具有更好的灵活性和扩展性。

安装 ElasticSearch

curl查看es集群情况

集群的健康检查:
curl  -u elastic:changeme  'http://192.168.43.5:9200/_cluster/health?pretty'
{
  "cluster_name" : "master-node",
  "status" : "green",  # 为green则代表健康没问题,如果是yellow或者red则是集群有问题
  "timed_out" : false,  # 是否有超时
  "number_of_nodes" : 3, # 集群中的节点数量
  "number_of_data_nodes" : 2, # 集群中data节点的数量
  "active_primary_shards" : 0,
  "active_shards" : 0,
  "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
}
[root@master-node ~]# 

Index 索引

一个集群下可以有多个索引,每个索引是一系列相同格式文档的集合(Elasticsearch 6.x 已不支持一个索引下多个Type)。

Shard 分片

每个索引有一个或多个分片,每个分片存储不同的数据。分片可分为主分片( primary shard)和复制分片(replica shard),复制分片是主分片的拷贝。默认每个主分片有一个复制分片(默认一个索引创建后会有5个主分片,即:5主+5复制=10个分片),一个索引的复制分片的数量可以动态地调整,复制分片从不与它的主分片在同一个节点上(防止单点故障)。

复制分片有两个作用:

提高恢复能力:当主分片挂掉时,某个复制分片可以变成主分片;
提高性能:get 和 search 请求既可以由主分片又可以由复制分片处理;

集群健康值

  1. green:所有主要分片和复制分片都可用
  2. yellow:所有主要分片可用,但不是所有复制分片都可用
  3. red:不是所有的主要分片都可用

当集群状态为 red,它仍然正常提供服务,它会在现有存活分片中执行请求,我们需要尽快修复故障分片,防止查询数据的丢失;

参考: 安装方式 https://beckjin.com/categories/ELK/

posted @ 2020-10-12 12:38  鲁哒哒  阅读(255)  评论(0编辑  收藏  举报