初探 ELK
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
- 开源,意味着更多新的特性和想法可以提前获取
- 从收集到展示非常全面,并且相关参考资料也很全面,并且现在版本全面升级,性能有恨到提高
- 处理方式灵活,插件丰富,检索高效。
配置和使用
- Log 收集
- 这里我们使用了 Filebeat。首先从官网上下载新的 Filebeat,配置 filebeat.yml 文件,基本配置如下:
filebeat.prospectors: - input_type: log document_type: hello_world paths: - /data/log/*.log output.logstash: hosts:["localhost:5044"]
相关文章