一、ELK Stack 的应用场景
场景一:使用 ES 作为业务系统的后端。
此时,ES 的作用类似传统业务系统中的 MySQL、PostgreSQL、Oracle 或者 Mongo 等的基础关系型数据库或非关系型数据库的作用。
我们举例说明。使用 ES 对基础文档进行检索操作,如将传统的 word 文档、PDF 文档、PPT 文档等通过 Openoffice 或者 pdf2htmlEX 工具转换为 HTML,再将 HTML 以JSON 串的形式录入到 ES,以对外提供检索服务。
场景二:在原有系统中增加 ES、Logstash、Kibana等。
原有的业务系统中存在 MySQL、Oracle、Mongo 等基础数据,但想实现全文检索服务,就在原有业务系统基础的加上一层 ELK。
举例一,将原有系统中 MySQL 中的数据通过 logstashinputjdbc 插件导入到 ES 中,并通过 Kibana 进行图形化展示。
举例二,将原有存储在 Hadoop HDFS 中的数据导入到 ES 中,对外提供检索服务。
场景三:使用 ELK Stack 结合现有工具对外提供服务。
举例一,日志检索系统。将各种类型的日志通过 Logstash 导入 ES 中,通过 Kibana 或者 Grafana 对外提供可视化展示。
举例二,通过 Flume 等将数据导入 ES 中,通过 ES 对外提供全文检索服务。
场景四:其他综合业务场景
主要借助 ES 强大的全文检索功能实现,如分页查询、各类数据结果的聚合分析、图形化展示(饼图、线框图、曲线图等)。
举例说明,像那些结合实际业务的场景,如安防领域、金融领域、监控领域等的综合应用。
二、ELK Stack 学习的优先级
1、我建议 Elasticsearch 为第一优先级。
(1)掌握 Elasticsearch 的基本概念,主要包括:
(2)掌握 Elasitcsearch 的基本操作,主要包括:
(3)掌握 Elasticsearch 高级操作,主要包括:
(4)掌握 Elasticsearch Java/Python 等API,主要包括:
(5)Elasticsearch 结合场景开发实战,主要包括:
2、第二学习优先级为 Kibana
3、第三学习优先级为 Logstash
以上内容转载至 博客专家 -铭毅天下 的 《死磕 Elasticsearch 方法论》:普通程序员高效精进的 10 大狠招!(完整版)
三、ES和Kibana在docker中的安装
ES:
1、在docker环境下安装ElasticSearch
docker pull elasticsearch:6.4.2
2、查看镜像
docker images
3、启动ElasticSearch
docker run -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" --name MyEs(别名) -d e47ebd7ec3ee(镜像id)
说明:
- -d 后台启动
- -p 9200:9200 将虚拟机9200端口映射到elasticsearch的9200端口(web通信默认使用9200端口)
- -p 9300:9300 将虚拟机9300端口映射到elasticsearch的9300端口(分布式情况下,各个节点之间通信默认使用9300端口)
- --name MyEs 指定一个名字(MyEs 随意指定)
****Kibana****
1、安装
docker pull docker.elastic.co/kibana/kibana:6.4.2
2、运行
docker run -d -p 5601:5601 --name kb02 --link MyEs(已启动的Es名称):elasticsearch f64d082f5f08(kibana镜像id)
写在最后,ELK的学习,建议直接阅读官方文档。
https://www.elastic.co/guide/cn/elasticsearch/guide/current/highlighting-intro.html ElasticSearch中文参考文献(2.0版)
https://www.elastic.co/guide/en/elasticsearch/reference/current/modules-cross-cluster-search.html ElasticSearch最新版
https://www.elastic.co/guide/cn/kibana/current/docker.html Kibana中文版用户手册
https://www.elastic.co/guide/en/logstash/6.4/introduction.html Logstash最新版