ELK解决方案
ELK是什么?
ELK = ElasticSearch + Logstash + Kibana
这是一套开源的大型分布式的日志分析、搜索引擎解决方案。
随着技术的发展,ELK不局限于那三者,又有了Beats,因此社区通常不再说ELK,而是说ElasticStack(下文简称 ElasticStack),也就是以ElasticSearch为核心的技术栈。
ELS各个组件有什么作用?
如下图所示:
- Beats 用于采集一切数据。
- ElasticSearch 作为核心数据存储和检索引擎。
- Logstash 作为高吞吐量的数据处理引擎,可用于处理Beats采集的日志的初步处理。
- Kibana 是一个灵活强大的数据可视化平台。
ELS有哪些特点?
ElasticSearch
- 分布式部署,数据分页管理,master死亡会采用Bully投票算法选举出新的master,数据的更新会同步到备份节点,数据的查询master会下发到备份节点,降低master节点查询压力.
- 对外提供功能强大的RESTful接口,通用性好。其基于Lucene, 相较于Lucene(一个全文搜索java库)来说,隐藏了Lucene的复杂性,更易用,且支持分布式。(题外话:solr也是基于Lucene的呢)
Beats
- Beats是轻量级的数据采集工具,包含不同模块,常用的如Filebeat用于采集各种日志数据,并能格式化,支持丰富的日志处理,基本涵盖了全部常用的日志:
$> ./filebeat modules list
$> Enabled:
Disabled:
apache2 auditd elasticsearch haproxy icinga iis kafka kibana logstash mongodb mysql nginx osquery postgresql redis suricata system traefik
- Metricbeat用于采集指标型数据,如ngnix的QPS、操作系统负载等。
Kibana
- 不用写代码就能完成各种日志分析、视图创建,如果有大量的服务器主机,ELS解决方案能很好地服务于运维工作。
ES + Hbase
- ES不是银弹,如果ES存储亿级数据,搜索的效率往往不能令人满意,可能要几秒几十秒,参考链接[9]里的一个解决思路是用ES作搜索索引,用Hbase存数据,而不是全部存到ES里面,这么做的意义是索引可以只存和搜索相关的少数字段,那么同样大的内存就能容纳更多的数据记录(最好是索引的体积能做到全部加载到内存(Filesystem Cache)),找到数据的id再根据id去Hbase里面获取数据,这样以来搜索速度能优化到几十毫秒级别。
- 此外,如果内存不足以存下索引还有数据预热方法,就是实现一个预热系统,每隔一段时间自动搜索一下热数据,保证热数据在内存里。可以冷热分离,类似于MySQL水平拆分,冷热数据分到不同的主机上,保证热数据能几乎全部保留在内存。
参考链接:
- https://www.elastic.co/cn/elastic-stack
- https://www.bilibili.com/video/BV1iJ411c7Az
- https://blog.csdn.net/reggergdsg/article/details/96329552
- https://zhuanlan.zhihu.com/p/142142957
- https://zhuanlan.zhihu.com/p/110079342
- https://www.elastic.co/guide/cn/elasticsearch/guide/current/intro.html
- https://www.cnblogs.com/studyhs/p/9088048.html
- https://developer.51cto.com/art/201904/594615.htm
- https://mp.weixin.qq.com/s/t-lcPljVP4-RUGbozKCLjQ
- https://www.carc.top/post/90.html
今天的文章elasticsearch-ik_docker难学吗分享到此就结束了,感谢您的阅读。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:http://bianchenghao.cn/87553.html