初探 ELK

2020-05-29 00:00:00 数据 是一个 默认 收集 希望

ELK 框架

ELK 由 Elasticsearch, Logstash和Kibana三部分组成(当然,现在加入了新成员Beats)。目的是收集不同的日志,并对日志进行过滤清洗,建索引,展示,以方便用户查询,并且可以基于数据做报警,报表等更过事情。其中:
  • Beats: Beats只做一件事,收集并传输数据。它本身是一个轻量级的 agent,通过收集本机的数据,并发往 Logstash 和 Elasticsearch。这其中又包括:
    • FILEBEAT:使用 backpressure-sensitive 协议,当 Logstash 或者 Elasticsearch 无法承受负荷时,FILEBEAT 会减慢发送速率知道下游恢复。
    • METRICBEAT:收集系统指标,从 CPU 到内存,也可以是 Redis, Nginx, Apache, MySQL, ZooKeeper。
    • PACKETBEAT:收集网络数据,包括 HTTP,Thrift-RPC, DNS, MySQL, Redis 等
    • WINLOGBEAT(好奇怪的感觉)。
  • Logstash:收集不同的数据,并做清洗和过滤,建立 Mapping 并将数据送往。
  • Elasticsearch。Elasticsearch:分布式查询和分析引擎,其实也是一个存储引擎。提供 TESTful API。
  • Kibana:图形化展示你想要看到的数据。

为什么选用ELK

  1. 开源,意味着更多新的特性和想法可以提前获取
  2. 从收集到展示非常全面,并且相关参考资料也很全面,并且现在版本全面升级,性能有恨到提高
  3. 处理方式灵活,插件丰富,检索高效。

配置和使

  • Log 收集
    • 这里我们使用了 Filebeat。首先从官网上下载新的 Filebeat,配置 filebeat.yml 文件,基本配置如下:
      • filebeat.prospectors:
        - input_type: log
          document_type: hello_world
          paths:
          - /data/log/*.log
        
        output.logstash:
          hosts:["localhost:5044"]
        

        相关文章