Elastic 各类工具
-
ELasticsearch 作为搜索引擎提高搜索速度
-
Kibana 作为一个 common 的 UI 管理界面,包含了很多模块的管理
-
Logstash 作为一个 ETL 工具进行数据抽取到 ES 中(也可以输出到其他目的地),相对于 Elastic 的其他数据抓取工具,它更专业,更全面,它提供了大量的插件可以进行更灵活的 ETL 工作。
-
Ingest Node 是 Elasticsearch 中的一种节点类型,或者一个节点可以扮演的角色,对通过 ES 的 REST api 的方式进入 ES 的数据进行预处理后再输入到 ES,相对 Logstash 来说能做的事情不多,但是也更方便
-
beats 是一类专门抓取特定数据的轻量ETL 工具的集合,例如 metric beat 用来抓取服务器硬件、操作系统、应用程序(规范、知名的)的指标数据;packetbeat 用来抓取网络流量数据;filebeat 用来抓取文件中的数据(通常可以用来抓取日志数据)等等。
它的轻量是相对于 Logstash 来说的,对于用户来说,beats 都是开箱即用的,只需要 enable 指定 beat 中的一些特定模块即可,但是 logstash 需要进行一些脚本配置的工作。但是相对于 logstash 来说,它只能完成对于特定数据的抓取工作。
-
APM 是 Elastic 公司开发的一款用来监控用户自己的程序的软件,实现原理是通过讲一个 APM agent 内嵌到用户的程序中,定时向 APM server 发送监控数据,然后APM server 将数据写入到 ES,最后在 Kibana 进行相关可视化操作。
-
Monitering 是 X-pack 中的一个免费模块,可以进行对 Elasticsearch 和 Kibana 的专业监控,它在 KIbana 中拥有一个独立的面板"堆栈检测"。
-
Alerting 也是 X-pack 中的一个收费模块,可以针对一定条件进行告警。
-
Machine Learning 也是 X-Pack 中的一个收费模块,可以对数据进行异常检测、预测。
-
Canvas 也是 X-Pack 中的一个免费模块,它在 Kibana 中也拥有一个独立的面板,可以用于创建"数据大屏"(例如机场大屏、秒杀流量大屏、用户数据大屏等等)
场景问题分类
-
针对异常检测的方案
对于 Elasticsearch、Kibana 本身的异常检测,我们通过 X-pack 的 monitering 即可解决。
对于一些通用软件的异常检测我们可以通过 metricbeat 实现。
对于应用程序的调用链路和性能检测通过 APM 实现(skywalking 待看)。
对于业务数据或者一些具体的业务异常,我们通过 filebeat、logstash、mq 等将具体的日志导入到 ES 中通过构建可视化组件、Dashboard、机器学习等进行异常检测。