Elastic Stack是一套完整的从数据采集,解析,分析,丰富,到搜索,检索,数据程序等一套完整的软件栈。在具体的实践中,我们应该如何搭建我们的系统呢?

下图描述了常用的Elastic Stack的部署架构:

该图描述了三种可能的体系结构:

  • 将操作指标直接发送到Elasticsearch:如上图所示,您将在要从其发送操作指标/日志的边缘服务器上安装各种类型的Beats,例如Metricbeat,Filebeat,Packetbeat等。 如果不需要进一步处理,那么可以将生成的事件直接传送到Elasticsearch集群。 一旦数据出现在Elasticsearch中,就可以使用Kibana对其进行可视化/分析。 在这种体系结构中,事件流将是Beats→Elasticsearch→Kibana。当然如果您需要做进一步的处理,您也可以通过ingest node的pipleline帮助实现。
  • 将操作指标发送到Logstash:Beats捕获并安装在边缘服务器上的操作指标/日志将发送到Logstash进行进一步处理,例如解析日志或丰富日志事件。 然后,已解析/丰富的事件被推送到Elasticsearch。 为了提高处理能力,您可以扩展Logstash实例,例如,通过配置一组Beats将数据发送到Logstash实例1,并配置另一组Beats将数据发送到Logstash实例2,依此类推。 在这种架构中,事件流将是Beats→Logstash→Elasticsearch→Kibana。
  • 将操作指标发送到弹性队列:如果生成的事件发生率很高,并且Logstash停机时Logstash无法应付负载或防止数据/事件丢失,则可以使用诸如以下的弹性队列 Apache Kafka,以便将事件排队。 然后,Logstash可以以自己的速度处理它们,从而避免丢失Beats捕获的操作指标/日志。 在这种体系结构中,事件流将是Beats→Kafka→Logstash→Elasticsearch→Kibana。

提示:从Logstash 5.x开始,您可以使用Logstash的持久队列设置,也可以将其用作队列。 但是,它不像Kafka一样提供高度的弹性。

也有一些应用场景是这样部署的:

同样的,在这里,我们可以通过radis或Kafaka来提供一个弹性队列来缓冲高发生率事件。

在实际的使用中,如果我们不把Elasticsearch当做唯一的数据库来存储的话,那么,我们可以采用如下的方案:

在这种架构中,您有两个数据存储,必须找到一种使它们保持同步的方法。 根据您的主要数据存储区和数据布局方式,您可以部署Elasticsearch插件以使两个实体保持同步。

如下的是另外一中有外部数据,物联网等的一种架构:

或者一个更加全面的架构图:

在Elastic的官方文档中,有更多关于部署架构的描述。详细文档:https://www.elastic.co/assets/blt2614227bb99b9878/architecture-best-practices.pdf

Elastic:Elastic部署架构介绍的更多相关文章

  1. LNMP架构介绍与部署

    一.LNMP架构介绍 LNMP:Linux系统下Nginx+MySQL+PHP这种网站服务器架构.Nginx是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP代理服务器.My ...

  2. MemSQL分布式架构介绍(一)

    最近在了解MemSQL架构,看了些官方文档,在这里做个记录,原文在这里:http://docs.memsql.com/latest/concepts/distributed_architecture/ ...

  3. IIS负载均衡-Application Request Route详解第四篇:使用ARR实现三层部署架构(转载)

    IIS负载均衡-Application Request Route详解第四篇:使用ARR实现三层部署架构 系列文章链接: IIS负载均衡-Application Request Route详解第一篇: ...

  4. 大型网站技术架构介绍--squid

    一.大型网站技术架构介绍 1.pv高  ip高 并发量 2.大型网站架构重点    1. 高性能:响应时间,TPS,系统性能计数器.缓存,消息队列等.     高可用性High Availabilit ...

  5. Azure环境中Nginx高可用性和部署架构设计

    前几篇文章介绍了Nginx的应用.动态路由.配置.在实际生产环境部署时,我们需要同时考虑Nginx的高可用性和部署架构. Nginx自身不支持集群以保证自身的高可用性,商业版本的Nginx+推荐: T ...

  6. 微服务架构介绍和RPC框架对比

    微服务架构介绍和RPC框架对比 1.微服务架构 1.1 特征 自动化部署,端点智能化,语言和数据的去中心化控制. 1.2架构 一种将一个单一应用程序开发为一组小型服务的方法,每个服务运行在自己的进程中 ...

  7. Mysql双主互备+keeplived高可用架构介绍

    一.Mysql双主互备+keeplived高可用架构介绍 Mysql主从复制架构可以在很大程度保证Mysql的高可用,在一主多从的架构中还可以利用读写分离将读操作分配到从库中,减轻主库压力.但是在这种 ...

  8. Nginx技术研究系列7-Azure环境中Nginx高可用性和部署架构设计

    前几篇文章介绍了Nginx的应用.动态路由.配置.在实际生产环境部署时,我们需要同时考虑Nginx的高可用性和部署架构. Nginx自身不支持集群以保证自身的高可用性,商业版本的Nginx+推荐: T ...

  9. 远程服务调用RPC框架介绍,微服务架构介绍和RPC框架对比,dubbo、SpringClound对比

    远程服务调用RPC框架介绍,微服务架构介绍和RPC框架对比,dubbo.SpringClound对比 远程服务调用RPC框架介绍,RPC简单的来说就是像调用本地服务一样调用远程服务. 分布式RPC需要 ...

随机推荐

  1. 集合容器和Hash表

    集合容器 集合相当于一个容器,在我们使用Arraylist的时候添加参数相当与放了一个容器中.这里面的元素是可以重复的 在HashSet中添加元素是没有重复的,我们来写一个测试看一下 public s ...

  2. Graphics2D类

    Graphics2D类 Java语言在Graphics类提供绘制各种基本的几何图形的基础上,扩展Graphics类提供一个Graphics2D类,它拥用更强大的二维图形处理能力,提供.坐标转换.颜色管 ...

  3. GIS技术在医疗行业的应用:利用切片地图发布技术解决dmetrix数字病理切片在线浏览

    最近一直在研究切片地图发布技术,解决各种矢量和栅格数据的切片地图制作和发布问题.这块的技术在土地评估和调查类公司中应用较多,因为他们经常需要使用各地地图,传统的文件管理方式很难适应工作现状,如果将各种 ...

  4. C++ 处理类型名(typedef,auto和decltype)

    随着程序越来越复杂,程序中用到的类型也越来越复杂,这种复杂性体现在两个方面.一是一些类型难于"拼写",它们的名字既难记又容易写错,还无法明确体现其真实目的和含义.二是有时候根本搞不 ...

  5. Odoo 14 升级模块后为什么template不生效?

    # 升级模块后为什么template不生效? # 直接原因是因为你在record标签的父级data标签标签中设置了noupdate为true.这就导致你后面无论你怎么修改data下面的子标签内容,都不 ...

  6. 小白之Python基础(一)

    一.数字类型: 1.整形 十进制:默认为十进制:(如:99,100.......) 十六进制: 0x,0X开头的表示16进制数 二进制:0b,0B开头的表示2进制数 八进制: 0o,0O开头的表示8进 ...

  7. Java版的防抖(debounce)和节流(throttle)

    概念 防抖(debounce) 当持续触发事件时,一定时间段内没有再触发事件,事件处理函数才会执行一次,如果设定时间到来之前,又触发了事件,就重新开始延时. 防抖,即如果短时间内大量触发同一事件,都会 ...

  8. django中的自定义分页器

    1.什么是自定义分页器 当我们需要在前端页面展示的数据太多的时候,我们总不能将数据展示在一页上面吧!这时,我们就需要自定义一个分页器,将数据分成特定的页数进行展示,每一页展示固定条数的数据! 2.为什 ...

  9. 基于bert_bilstm_crf的命名实体

    前言 本文将介绍基于pytorch的bert_bilstm_crf进行命名实体识别,涵盖多个数据集.命名实体识别指的是从文本中提取出想要的实体,本文使用的标注方式是BIOES,例如,对于文本虞兔良先生 ...

  10. HCIA-Datacom 3.3 实验三:以太网链路聚合实验

    实验介绍 随着网络规模不断扩大,用户对骨干链路的带宽和可靠性提出越来越高的要求.在传统技术中,常用更换高速率的接口板或更换支持高速率接口板的设备的方式来增加带宽,但这种方案需要付出高额的费用,而且不够 ...