原文引用地址:阿里云Elasticsearch数据采集解决方案:https://help.aliyun.com/document_detail/141794.html

概述

对于数据搜索和分析来说,Elasticsearch无处不在。开发人员和社区可使用Elasticsearch寻找各种各样的用例,从应用程序搜索和网站搜索,到日志、基础架构监测、APM和安全分析,不一而足。虽然现在有针对这些用例的免费解决方案,但是开发人员首先需要将其数据提供给Elasticsearch。

本文提供了以下几种常见的将数据采集到阿里云ES中的方法。

  • Elastic Beats
  • Logstash
  • 语言客户端
  • Kibana开发工具

Elasticsearch提供了灵活的RESTful API,用于与客户端应用程序通信。因此,REST调用被用来采集数据、执行搜索和数据分析,以及管理集群及其索引。实际上,上述所有方法都依赖于REST API将数据采集到Elasticsearch。

Elastic Beats

Elastic Beats是一组轻量型的数据采集器,可以方便地将数据发送给Elasticsearch服务。由于是轻量型的,Beats不会产生太多的运行时开销,因此,可以在硬件资源有限的设备(如 IoT 设备、边缘设备或嵌入式设备)上运行和收集数据。如果您需要收集数据,但没有资源来运行资源密集型数据收集器,那么Beats会是您最佳的选择。这种无处不在(涵盖所有联网设备)的数据收集方式,让您能够快速检测到异常情况做出反应,例如系统范围内的问题和安全事件等。

当然,Beats并不局限于资源有限的系统,它们还可用于具有更多可用硬件资源的系统。

Beats有多种风格,可以收集不同类型的数据:

  • Filebeat
    支持您从以文件形式提供的源中读取、预处理和传输数据。虽然大多数用户使用Filebeat来读取日志文件,但它也支持非二进制文件格式。Filebeat还支持多种其他数据源,包括TCP/UDP、容器、Redis和Syslog。借助丰富的254模块,可以轻松针对Apache、MySQL和Kafka等常见应用程序的日志格式,进行收集,并解析相应的数据。

  • Metricbeat
    可以收集并预处理系统和服务指标。系统指标包括关于运行中进程的相关信息,以及CPU/内存/磁盘/网络利用率方面的数据。这些186模块可用于收集来自许多不同服务的数据,包括Kafka、Palo Alto Networks、Redis等。

  • Packetbeat
    可收集并预处理实时网络数据,从而支持应用程序监测、安全和网络性能分析。此外,Packetbeat还支持DHCP、DNS、HTTP、MongoDB、NFS和TLS协议。

  • Winlogbeat
    可从Windows操作系统捕获事件日志,包括应用程序事件、硬件事件,以及安全和系统事件。

  • Auditbeat
    可以检测对关键文件的更改,并从Linux的审计框架收集事件。不同的118模块简化了它的部署,这主要在安全分析用例中使用。

  • Heartbeat
    使用探测来监测系统和服务的可用性。因此,Heartbeat在许多场景中都很有用,例如基础架构监测和安全分析。ICMP、TCP和HTTP都是受支持的协议。

  • Functionbeat
    可以从无服务器环境(如 AWS Lambda)中收集日志和指标。

您可以参考阿里云Elasticsearch通过Beats搭建可视化运维系统,学习Beats的使用方法。其他Beats的使用方法与此类似。

Logstash

Logstash是一个强大而灵活的工具,可以读取、处理和传送任何类型的数据。Logstash提供了许多功能,这些功能目前还不可用,或者通过Beats执行成本太高,例如通过对外部数据源执行查找来丰富文档。不管采用哪种方式,Logstash的这种功能和灵活性都是有代价的。此外,Logstash的硬件要求也显著高于Beats。严格来说,Logstash通常不应部署在低资源设备上。因此,在Beats功能不足以满足特定用例要求的情况下,可将Logstash用作其替代选择。

一种常见的架构模式是将Beats和Logstash组合起来:使用Beats来收集数据,并使用Logstash来执行Beats无法执行的数据处理任务。

Logstash概述

阿里云Elasticsearch提供了Logstash服务。阿里云Logstash Service作为服务器端的数据处理管道,提供了100%兼容开源的Logstash功能,能够动态地从多个来源采集数据、转换数据,并且将数据存储到所选择的位置。通过输入、过滤和输出插件,Logstash可以对任何类型的事件加工和转换。

Logstash通过事件处理管道来执行任务,其中每个管道至少包含以下各项中的一个:
输入
从数据源读取数据。官方支持多种数据源,包括文件、http、imap、jdbc、kafka、syslog、tcp和udp。

  • 过滤器
    以多种方式处理和丰富数据。在许多情况下,首先需要将非结构化的日志行解析为更加结构化的格式。因此,除其他功能外,Logstash还在正则表达式的基础上,提供了解析CSV、JSON、键/值对、分隔的非结构化数据,以及复杂的非结构化数据的过滤器(grok 过滤器)。Logstash还提供了更多的过滤器,通过执行DNS查找,添加关于IP地址的地理信息,或通过对自定义目录或Elasticsearch索引执行查找来丰富数据。通过这些附加的过滤器,能够对数据进行各种转换,例如重命名、删除、复制数据字段和值(mutate 过滤器)。

  • 输出
    将解析后并加以丰富的数据写入数据接收器,是Logstash处理管道的最后阶段。虽然有很多输出插件可用,但本文主要讨论如何使用Elasticsearch输出,将数据采集到Elasticsearch服务中。

  • Logstash示例管道

以下提供了一个示例Logstash管道,该管道能够:

  • 读取Elastic博客RSS源。
  • 通过复制/重命名字段、删除特殊字符以及HTML标记,来执行一些简单的数据预处理。
  • 将文档采集到Elaticsearch。

参考通过Kibana配置Pipeline,按照以下示例配置阿里云Logstash管道。

input { rss { url => "/blog/feed" interval => 120 }
}
filter { mutate { rename => [ "message", "blog_html" ] copy => { "blog_html" => "blog_text" } copy => { "published" => "@timestamp" } } mutate { gsub => [  "blog_text", "<.*?>", "","blog_text", "[\n\t]", " " ] remove_field => [ "published", "author" ] }
}
output { stdout { codec => dots } elasticsearch { hosts => [ "https://<your-elsaticsearch-url>" ] index => "elastic_blog" user => "elastic" password => "<your-elasticsearch-password>" }
}

hosts需要替换为<对应阿里云Elasticsearch实例的内网地址>:9200;password需要替换为对应阿里云Elasticsearch的访问密码。

将Logstash与阿里云Elasticsearch相关联。
详细操作方法请参见管道管理配置。

在Kibana控制台中,查看索引数据。

POST elastic_blog/_search

详细操作方法请参见执行任务并查看结果。

语言客户端

在某些情况下,最好将数据采集与自定义应用程序代码集成。为此,建议您使用一个官方支持的Elasticsearch客户端。这些客户端是抽象出数据采集低层细节的库,使您能够专注于特定应用程序的实际工作。Java、JavaScript、Go、.NET、PHP、Perl、Python和Ruby都有官方客户端。有关您所选语言的所有详细信息和代码示例,请参见相关文档即可。如果您的应用程序不是用上面所列语言编写的,则可以在社区贡献的客户端中查找相关文档。

Kibana开发工具

推荐您使用Kibana开发控制台,开发并调试Elasticsearch请求。Kibana开发工具公开了通用的Elasticsearch REST API的全部功能和灵活性,同时抽象出了底层HTTP请求的技术细节。您可以使用Kibana开发工具,将原始JSON文档添加到Elasticsearch中。

PUT my_first_index/_doc/1
{ "title" :"How to Ingest Into Elasticsearch Service","date" :"2019-08-15T14:12:12","description" :"This is an overview article about the various ways to ingest into Elasticsearch Service"
}

说明 除了Kibana开发工具以外,您也可以使用其他工具,通过Elasticsearch提供的通用REST接口,与Elasticsearch通信并采集文档。例如curl是一款经常作为最后手段使用的工具,用于开发、调试或与自定义脚本集成。

总结

将数据采集到Elasticsearch服务的方法不胜枚举。您需要根据特定用例、需求和环境,选择合适的方法或工具来采集数据。

  • Beats提供了一种方便、轻量级的开箱即用型解决方案,可以从许多不同的来源收集和采集数据。与Beats封装在一起的模块为许多常见数据库、操作系统、容器环境、Web服务器、缓存等,提供了数据获取、解析、索引和可视化的配置。这些模块可提供五分钟实现数据到仪表板的体验。因为Beats是轻量型的,所以非常适合资源受限的嵌入式设备,例如IoT设备或防火墙。
  • Logstash是一种灵活的工具,可用于读取、转换和采集数据,提供了大量的过滤器、输入和输出插件。如果 Beats的功能对于某些用例来说还不够,那么一种常见的架构模式是使用Beats来收集数据,并通过Logstash做进一步处理,然后再采集到Elasticsearch中。
  • 当您需要直接从应用程序采集数据时,建议使用官方支持的客户端库。
  • 当您需要对Elasticsearch请求进行开发或调试时,建议您使用Kibana开发工具。

相关参考文档:

如何将数据采集到 Elasticsearch服务

我应该使用Logstash还是Elasticsearch采集节点呢?

使用Beats系统模块将系统日志和指标获取到Elasticsearch

Elasticsearch数据采集解决方案相关推荐

  1. 【转载】Elasticsearch数据采集解决方案

    原文引用地址:阿里云Elasticsearch数据采集解决方案:https://help.aliyun.com/document_detail/141794.html 概述 对于数据搜索和分析来说,E ...

  2. 电商订单ElasticSearch同步解决方案--使用logstash

    电商订单ElasticSearch同步解决方案--使用logstash 参考文章: (1)电商订单ElasticSearch同步解决方案--使用logstash (2)https://www.cnbl ...

  3. Elasticsearch分页解决方案

    Elasticsearch分页解决方案 参考文章: (1)Elasticsearch分页解决方案 (2)https://www.cnblogs.com/yfb918/p/11023581.html 备 ...

  4. 信捷PLC以太网通讯数据采集解决方案

    描述: 信捷XC/XD等系列PLC及一体机, 以太网通讯数据采集解决方案. 桥接器采用三通设计,不占用PLC通讯口,不对原系统做任何硬件和软件修改,即可通过模块的网口对PLC进行数据监控和操作,同时触 ...

  5. 工业智能网关是工厂设备数据采集解决方案工具

    在物联网的信息感知领域中,由于无线传感网络技术的应用场景具有特殊性,其一般应用于局部区域内,网与网之间本身无法通信,也不适合于实现远程的数据传输,这使得传感设备节点形成了一个个信息孤岛,无法实现真正的 ...

  6. 如何选择IIOT数据采集解决方案:公有或私有?

    公有和私有的工业物联网(IIOT)解决方案在数据采集和管理有不同的侧重点,根据不同的用户需求,其效果和成本也有所不同. 工业物联网(IIOT)的出现,为工厂企业获取更多可靠实时的数据,可以帮助优化工艺 ...

  7. Elasticsearch分页解决方案研究

    目录 一.命令方式做分页 1.1 常见的分页方式:from+size 1.2 scroll方式 1.3 search_after 的方式 二.java api做elasticsearch分页 2.1  ...

  8. 工业现场设备物联网及数据采集解决方案

    近些年在"工业4.0","智能制造","工业互联网"的大背景下,工业现场设备层的数据采集逐渐成为一个热门话题,实现工业4.0,需要高度的工业 ...

  9. 工业无线路由器远程数据采集解决方案

    1.概述 现在随着网络的发展变化,工业控制专网的局限性也慢慢的体现出来了,对于升级改造的站点,不易布线,唯一有的就是无线蜂窝网络4G/5G,PLC仅带有串口,有自己的固定通讯协议.怎么能够通过无线蜂窝 ...

最新文章

  1. 如何在DataGrid里面产生滚动条而不滚动题头
  2. SAP WM初阶之TO报表LX10 - Evaluation of movements per storage type
  3. Boston房价PaddlePaddle测试程序
  4. Hyperledger Fabric1.0架构概览
  5. 计算机报临时用户,大师练习win10系统添加临时登录账户win10电脑临时账户的办法?...
  6. 虚机分配静态IP地址
  7. Win7开机动画不见了
  8. 软件是如何做到控制芯片电路的闭合的?
  9. latex公式符号大全
  10. 案例分析:从误删除数据库血案看数据库系统的安全设计
  11. 长文预警-超详细的熊猫烧香病毒分析_01
  12. 60、JAVA的map集合
  13. idear配置工具上传Jar包到服务器并运行
  14. 域控服务器里没有internet时间,server2008r2域控时间设置internet时间同步的方法
  15. Android 自定义View
  16. 根据url批量下载图片
  17. define _WINSOCK_DEPRECATED_NO_WARNINGS
  18. chtMultiRegionSimpleFoam求解器的热源不在边界上【翻译】
  19. 阈值法进行边缘检测matlab
  20. 《功夫》“经典”台词

热门文章

  1. 谷歌浏览器怎么设置主页教程
  2. 基数统计算法狗年旺旺旺
  3. 中化CIO彭劲松:IT治理让我明明白白做事
  4. 强烈推荐!超牛B的PDF转换工具,这可能是你一直在找的
  5. pubg服务器维护7月7日,绝地求生更新维护公告最新 7月7日更新到什么时候
  6. 第一代计算机只能使用机器语言进行程序设计,计算机等级考试分类练习题
  7. 四种MySQL存储引擎
  8. Android开发SearchView+ListView实现搜索建议
  9. AI英雄 | 钢铁侠CEO张锐:如何打造中国版的波士顿动力
  10. 朋友总借我车开不加油也不清洗怎么办(5个说话技巧礼貌拒绝不吃亏)