ELK产品概述

ELK是什么?

ELK是elastic三个产品的首字母缩写:Elasticsearch、Logstash、Kibana。

Elasticsearch 是基于 JSON 的分布式搜索和分析引擎,专为实现水平扩展、高可靠性和管理便捷性而设计。

Logstash 是动态数据收集管道,拥有可扩展的插件生态系统,能够与 Elasticsearch 产生强大的协同作用。

Kibana 能够以图表的形式呈现数据,并且具有可扩展的用户界面,供您全方位配置和管理 Elastic Stack。

除了上面三个产品外,在信息收集过程中,还需要在被采集系统安装Beats,用来采集系统中的数据。

Beats 是轻量型采集器的平台,从边缘机器向 Logstash 和 Elasticsearch 发送数据。

下面分别介绍这几类产品。

Beats

Beats 平台集合了多种单一用途数据采集器。这些采集器安装后可用作轻量型代理,从成百上千或成千上万台机器向 Logstash 或 Elasticsearch 发送数据。Beats中包含以下集中采集器:

Filebeat  日志文件

       Filebeat 能够读取并转发日志行,如果出现中断,还会在一切恢复正常后,从中断前停止的位置继续开始。

       Filebeat 内置的多种模块(auditd、Apache、NGINX、System 和 MySQL)可实现对常见日志格式的一键收集、解析和可视化。

       部署 Filebeat 在独立的容器或是同一个宿主机上,都可收集宿主机上面所有容器的日志。通过挂载共享的磁盘卷,Filebeat 即可读取所有的这些日志文件。或是借助 Docker JSON 驱动,Filebeat 即可通过 Docker prospector 来收集您容器的日志。如果还要更简单?为 Docker 准备的 Autodiscovery 可以让您根据一个条件来开启 Filebeat 的特定模块,或是收集指定目录的日志。

       当将数据发送到 Logstash 或 Elasticsearch 时,Filebeat 使用背压敏感协议,以考虑更多的数据量。如果 Logstash 正在忙于处理数据,则可以让 Filebeat 知道减慢读取速度。一旦拥堵得到解决,Filebeat 就会恢复到原来的步伐并继续运行。

        Filebeat 是 Elastic Stack 的一部分,因此能够与 Logstash、Elasticsearch 和 Kibana 无缝协作。无论您要使用 Logstash 转换或充实日志和文件,还是在 Elasticsearch 中随意处理一些数据分析,亦或在 Kibana 中构建和分享仪表板,Filebeat 都能轻松地将您的数据发送至最关键的地方。

Metricbeat 指标

      用于从系统和服务收集指标。从 CPU 到内存,从 Redis 到 Nginx,Metricbeat 能够以一种轻量型的方式,输送各种系统和服务统计数据。

     将 Metricbeat 部署到您所有的 Linux、Windows 和 Mac 主机,并将它连接到 Elasticsearch 就大功告成啦:您可以获取系统级的 CPU 使用率、内存、文件系统、磁盘 IO 和网络 IO 统计数据,以及获得如同系统上 top 命令类似的各个进程的统计数据。

    Metricbeat 提供多种内部模块,用于从服务中收集指标,例如 Apache、NGINX、MongoDB、MySQL、PostgreSQL、Prometheus、Redis 等等。安装简单,完全零依赖性。只需在配置文件中启用您所需的模块即可。而且,如果您没有看到您要找的模块,还可以自己构建。新 Metricbeat 模块使用 Go 语言编写,创建过程简单。

      可以将 Metricbeat 部署到同一台主机上单独的容器内,它将收集与主机上运行的其他每一个容器相关的统计数据。它在收集统计数据时直接从 proc 文件系统读取 cgroup 信息,这就意味着它无需特权即可访问 Docker API,这同样适用于其他运行时。针对 Docker 的 Autodiscovery 让事情进一步简化,您只需指定一个条件即可自动开启 Metricbeat 相应的模块。

      将指标通过假脱机传输方式输送至磁盘,这样您的数据管道再也不会错过任何一个数据点,即使发生中断(例如网络问题),也勿需担心。Metricbeat 会保留输入数据,当恢复正常后,会将这些指标输送至 Elasticsearch 或 Logstash。

       Metricbeat 是 Elastic Stack 的一部分,因此能够与 Logstash、Elasticsearch 和 Kibana 无缝协作。无论您要使用 Logstash 转换或充实指标,还是在 Elasticsearch 中随意处理一些数据分析,亦或在 Kibana 中构建和分享仪表板,Metricbeat 都能轻松地将您的数据发送至最关键的地方。

Packetbeat  网络数据

      用于深挖网线上传输的数据,了解应用程序动态。Packetbeat 是一款轻量型网络数据包分析器,能够将数据发送至 Logstash 或 Elasticsearch。 

       HTTP 等网络协议能够让您密切监控应用程序延时和错误、响应时间、SLA 性能、用户访问模式和趋势,等等。Packetbeat 则让您能够深挖这些数据并实时解析,以了解流量的网络传输状态。这款工具完全被动,零延迟开销,并且不会妨碍基础架构。

      Packetbeat 还是一个库。它支持很多应用层协议:从数据库到键值存储,再到 HTTP 和底层协议。您可以选择所需协议,也可以提交 Pull 请求,添加自己的协议。

      为了将数据转换成适合搜索和分析的形式,往往要执行各式指令。现在我们可以跳过这些指令,因为 Packetbeat 能够在您的目标服务器上,为您实时地搜索和分析数据。

       将流量和网络信息通过假脱机传输方式输送至磁盘,这样您的数据管道再也不会错过任何一个数据点,即使下游系统发生中断,也勿需担心。Packetbeat 会保留输入数据,当恢复正常后,会将其全部输送至 Elasticsearch 或 Logstash。

       Packetbeat 是 Elastic Stack 的一部分,因此能够与 Logstash、Elasticsearch 和 Kibana 无缝协作。无论您要使用 Logstash 转换或充实网络数据,还是在 Elasticsearch 中随意处理一些数据分析,亦或在 Kibana 中构建和分享仪表板,Packetbeat 都能轻松地将您的数据发送至最关键的地方。

Winlogbeat  Windows 事件日志

       用于密切监控基于 Windows 的基础架构上发生的事件。Winlogbeat 能够以一种轻量型的方式,将 Windows 事件日志实时地流式传输至 Elasticsearch 和 Logstash。     

       Windows 事件日志中有很多值得学习的地方。是不是对登录 (4624) 和登录失败 (4625) 等安全事件感兴趣?想不想了解何时连接了 USB 存储设备 (4663) 或者何时安装了新软件 (11707)?Winlogbeat 经过配置后,即可从任何事件日志渠道读取数据。它还能够以结构化格式输送原始事件数据,让 Elasticsearch 中的数据过滤和聚合变得比以往更加简单。

       将 Windows 事件日志通过假脱机传输方式输送至磁盘,这样您的数据管道再也不会错过任何一个数据点,即使发生中断(例如网络问题),也勿需担心。Winlogbeat 会保留输入数据,当恢复正常后,会将您的日志输送至 Elasticsearch 或 Logstash。

         Winlogbeat 是 Elastic Stack 的一部分,因此能够与 Logstash、Elasticsearch 和 Kibana 无缝协作。无论您要使用 Logstash 更加有效地转换 Windows 事件日志,还是在 Elasticsearch 中随意处理一些数据分析,亦或在 Kibana 中构建和分享仪表板,Winlogbeat 都能轻松地将您的数据发送至最关键的地方。

Auditbeat  审计数据

       收集您Linux 审计框架的数据,监控文件完整性。Auditbeat 实时采集这些事件,然后发送到 Elastic Stack 其他部分做进一步分析。    

        无需触碰 auditd 即可在 Elastic Stack 里监控用户的行为和系统进程,分析用户事件数据。Auditbeat 与 Linux 审计框架直接通信,收集与 auditd 相同的数据,并实时发送这些事件消息到 Elastic Stack。如果您比较怀旧,也可以让 auditd 与 Auditbeat 一起运行(新的内核)。您可以使用既有审计规则来轻而易举地收集数据,而无需重写规则。是谁采取的行动?他们在什么时间做了什么事情?Auditbeat 会记住所有这些原始的系统调用数据,并做好路径关联,方便您了解所需的上下文信息。

      避免被杂乱无章的信息、重复活动及毫无意义的代码淹没。与 auditd 不同的是,Auditbeat 会组合相关消息到一个事件里面。它同时也解析这些消息并对其进行标准化处理,如将数字 ID 转换为名字,然后将结构化的数据发送到 Elasticsearch。同时使用每个 Beat 都有的处理器 (processor) 特性,您可以很轻松地对数据进行过滤和修改。

      Auditbeat 允许您在 Linux、macOS 和 Windows 平台上仔细监控任何您感兴趣的文件目录。文件改变会被实时发送到 Elasticsearch,每条消息都包含元数据和文件内容的加密哈希信息,以便后续进一步分析。只需简单地指定您想让 Auditbeat 监控的文件目录,便大功告成。

       将 Linux 系统事件通过假脱机传输方式输送至磁盘,这样您的数据管道再也不会错过任何一个数据点,即使发生中断(例如网络问题),也勿需担心。Auditbeat 会保留输入数据,当恢复正常后,会将全部信息输送至 Elasticsearch 或 Logstash。

       Auditbeat 是 Elastic Stack 的一部分,这意味着它可以与 Logstash、Elasticsearch 和 Kibana 进行无缝集成。无论您要使用 Logstash 转换或充实指标,还是在 Elasticsearch 中随意处理一些数据分析,亦或在 Kibana 中构建和分享仪表板。Auditbeat 都能轻松地将您的数据发送至最关键的地方。

Heartbeat  运行时间监控

     通过主动探测来监控服务可用性。

     无论您要测试同一台主机上的服务,还是要测试开放网络上的服务,Heartbeat 都能轻松生成运行时间数据和响应时间数据。

     Heartbeat 能够通过 ICMP、TCP 和 HTTP 进行 ping 检测,同时也支持 TLS、认证和代理。您可以借助简易的 DNS 解析,监控负载均衡服务器背后的所有主机。

      今天的基础设施富有高度动态性,服务和主机随时随刻都在发生变化。Heartbeat 通过一种基于文件的简单接口,轻松实现监控目标添加与删除流程的自动化。

       将正常运行时间指标通过假脱机传输方式输送至磁盘,这样您的数据管道再也不会错过任何一个数据点,即使下游系统发生中断,也勿需担心。Heartbeat 会保留输入数据,当恢复正常后,会将其全部输送至 Elasticsearch 或 Logstash。

       Heartbeat 是 Elastic Stack 的一部分,因此能够与 Logstash、Elasticsearch 和 Kibana 无缝协作。无论您要使用 Logstash 转换或充实指标,还是在 Elasticsearch 中随意处理一些数据分析,亦或在 Kibana 中构建和分享仪表板,Heartbeat 都能轻松地将您的数据发送至最关键的地方。

Logstash

      Logstash 是开源的服务器端数据处理管道,能够同时从多个来源采集数据,转换数据,然后将数据发送到您最喜欢的 “存储库” 中。(我们的存储库当然是 Elasticsearch。)

输入

      采集各种样式、大小和来源的数据

      数据往往以各种各样的形式,或分散或集中地存在于很多系统中。 Logstash 支持各种输入选择 ,可以在同一时间从众多常用来源捕捉事件。能够以连续的流式传输方式,轻松地从您的日志、指标、Web 应用、数据存储以及各种 AWS 服务采集数据。

过滤器

      实时解析和转换数据

      数据从源传输到存储库的过程中,Logstash 过滤器能够解析各个事件,识别已命名的字段以构建结构,并将它们转换成通用格式,以便更轻松、更快速地分析和实现商业价值。

  • 利用 Grok 从非结构化数据中派生出结构
  • 从 IP 地址破译出地理坐标
  • 将 PII 数据匿名化,完全排除敏感字段
  • 简化整体处理,不受数据源、格式或架构的影响

输出

      选择您的存储库,导出您的数据

       尽管 Elasticsearch 是我们的首选输出方向,能够为我们的搜索和分析带来无限可能,但它并非唯一选择。Logstash 提供众多输出选择,您可以将数据发送到您要指定的地方,并且能够灵活地解锁众多下游用例。

即插即用

      使用 Elastic Stack 更快获得洞察

      Logstash 模块通过热门的数据源(如 ArcSight 和 Netflow )呈现瞬间可视化的体验。通过立即部署摄入管道和复杂的仪表板,您在短短几分钟内便可开始数据探索。

可扩展

      以您自己的方式创建和配置管道

      Logstash 采用可插拔框架,拥有 200 多个插件。您可以将不同的输入选择、过滤器和输出选择混合搭配、精心安排,让它们在管道中和谐地运行。

      从自定义应用程序采集数据?没有看到所需的插件?Logstash 插件很容易构建。我们有一个极好的插件开发 API 和插件生成器,可帮助您开始和分享您的创作

可靠性与安全性

        构建可信的交付管道

       假如 Logstash 节点发生故障,Logstash 会通过持久化队列来保证至少将运行中的事件送达一次。那些未被正常处理的消息会被送往死信队列(dead letter queue)以便做进一步处理。由于具备了这种吸收吞吐量的能力,现在您无需采用额外的队列层,Logstash 就能平稳度过高峰期。

       能够全方位地保护您的数据加工管道,不管您是运行 10 个还是 1000 个 Logstash 实例。来自 Beats 的数据和其他数据输入一同在网络层被加密传输,并且与安全的 Elasticsearch 集群完整集成。

监控

      全方位监视您的部署

      Logstash 管道通常服务于多种用途,会变得非常复杂,因此充分了解管道性能、可用性和瓶颈异常重要。借助 X-Pack 的监控功能,您可以轻松观察和研究处于活动状态的 Logstash 节点或整个部署

管理和治理

       使用单个 UI 集中式管理部署

      借助 Pipeline 管理图形界面来管理 Logstash 的部署,您可以轻而易举地治理数据加工管道。此外,此项管理功能也与 X-Pack 内置的安全特性无缝集成,用以避免任何意外操作。

ELK产品概述

Elasticsearch

       Elasticsearch 是一个分布式的 RESTful 风格的搜索和数据分析引擎,能够解决不断涌现出的各种用例。作为 Elastic Stack 的核心,它集中存储您的数据,帮助您发现意料之中以及意料之外的情况。

查询

       Elasticsearch 允许执行和合并多种类型的搜索 ( 结构化、非结构化、地理位置、度量指标 )搜索方式随心而变。先从一个简单的问题出发,试试看能够从中发现些什么。

分析

      找到与查询最匹配的十个文档是一回事。但是如果面对的是十亿行日志,又该如何解读呢?Elasticsearch 聚合能够从大处着眼,探索数据的趋势和模式。

速度

        通过有限状态机实现用于全文检索的倒排索引,实现用于存储数值数据和位置数据的 BKD 树, 以及用于分析的列存储。

而且由于每个数据都被编入了索引,因此不用因为某些数据没有索引而烦心。可以用快到令人发指的速度使用和访问所有数据。

可扩展性

       原型环境和生产环境可无缝切换;无论 Elasticsearch 是在一个节点上运行,还是在一个包含 300 个节点的集群上运行,都能够以相同的方式与 Elasticsearch 进行通信。

       能够水平扩展,每秒钟可处理海量事件,同时能够自动管理索引和查询在集群中的分布方式,以实现极其流畅的操作。

弹性

       硬件故障。网络分割。Elasticsearch 能够检测这些故障并确集群(数据)安全和可用。

       Elasticsearch 运行在一个分布式的环境中,从设计之初就考虑到了这一点。

灵活性

       数字、文本、地理位置、结构化、非结构化等所有数据类型。

       应用搜索安全分析或是日志分析只是全球众多公司利用 Elasticsearch 解决各种挑战的冰山一角。

操作的乐趣

简单的事情就该简单做。Elasticsearch 在任何规模下都能够易于操作,而无需做出功能和性能上的让步。

ELK产品概述

客户端库

     Elasticsearch 使用的是标准的 RESTful API 和 JSON。此外,还构建和维护了很多其他语言的客户端,例如 Java、Python、.NET、SQL 和 PHP。与此同时,社区也贡献了很多客户端。这些客户端简单易用,使用起来非常自然,而且就像 Elasticsearch 一样,请不要限制它们的用途。

强大特性

        为集群添加身份认证,监控 Elasticsearch 是如何运行的,通过运行机器学习的任务来发现异常等等,这些特性尽在 Elastic Stack

        Elastic Stack 可以很轻松地安装在 Elasticsearch,提供的特性包括安全性监管警告报告图表关联分析机器学习

HADOOP 和 SPARK

        Hadoop 中有大量数据?使用 Elasticsearch-Hadoop (ES-Hadoop)连接器,利用 Elasticsearch 的实时搜索和分析功能处理大数据。这是两大世界最大优势的融合。

Kibana

       Kibana 让您能够可视化 Elasticsearch 中的数据并操作 Elastic Stack,因此可以在这里解开任何疑问:例如,为何会在凌晨 2:00 被传呼,雨水会对季度数据造成怎样的影响。

可视化与探索

       Kibana 能够自由地选择如何呈现数据。或许不知道自己想要什么。不过借助 Kibana 的交互式可视化,可以先从一个问题出发,看看能够从中发现些什么。

       Kibana 核心搭载了一批经典功能:柱状图、线状图、饼图、旭日图,等等。它们充分利用了 Elasticsearch 的聚合功能。

      利用 Elastic Maps Service 来实现地理空间数据的可视化,或者发挥创意,在地图上实现自定义位置数据的可视化。

      凭借搜索引擎的相关性功能,结合 图表探索,揭示 Elasticsearch 数据中极其常见的关系。

      借助 Elastic Stack 里面的非监督型 Machine Learning 功能来检测隐藏在 Elasticsearch 数据中的异常和探索那些对它们有显著影响的属性。

分享 KIBANA <3

      可以轻松地把 Kibana 可视化图形发送给任何您关心的人:您的团队成员、您的老板、老板的老板、您的客户、合规经理或承包商。

       将仪表板插入您的内部维基百科或网页。给同事发送仪表板 URL。

       给同事发送仪表板 URL。

       创建、预约和分享包含可视化图形和仪表板的 PDF 报告

ELK产品概述

统一的 UI 管理界面

       用来摄取数据的工具集在 Kibana 的首页都已就绪。有了 Kibana,命令行不再是管理安全设置或访问 Elastic Stack 的各项功能的唯一途径。与此同时,得益于出色的 API,管理和升级 Elastic Stack 变得更加直观,能够让更多的人上手使用。

开发工具

        Console 等 Kibana 开发工具提供多种方法帮助开发 Elastic Stack。可以跳过在终端键入的过程,直接处理 Elasticsearch 数据。Search Profiler 可轻松查看搜索请求期间花费的时间。并且在Logstash配置中创建复杂的 Grok 模式,使 Grok Debugger 变得轻而易举。

 

    以上内容是ELK工具概念和可实现功能的介绍,摘自elastic官网https://www.elastic.co/cn/。