日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

阿里云Elasticsearch數(shù)據(jù)采集解決方案

本文提供了將數(shù)據(jù)采集到阿里云Elasticsearch服務(wù)中的幾種解決方案。

背景信息

對于數(shù)據(jù)搜索和分析來說,Elasticsearch無處不在。開發(fā)人員和社區(qū)可使用Elasticsearch尋找各種各樣的使用場景,從應(yīng)用程序搜索網(wǎng)站搜索,到日志、基礎(chǔ)架構(gòu)監(jiān)測APM安全分析,不一而足。雖然現(xiàn)在有針對這些場景的免費解決方案,但是開發(fā)人員仍需要先將其數(shù)據(jù)提供給Elasticsearch。

本文提供了以下幾種常見的將數(shù)據(jù)采集到阿里云Elasticsearch中的方法:

Elasticsearch提供了靈活的RESTful API,用于與客戶端應(yīng)用程序進行通信。因此通過調(diào)用RESTful API,可以完成數(shù)據(jù)采集、搜索和分析,以及管理集群及其索引的操作。

Elastic Beats

Elastic Beats是一組輕量型的數(shù)據(jù)采集器,可以方便地將數(shù)據(jù)發(fā)送給Elasticsearch服務(wù)。由于是輕量型的,Beats不會產(chǎn)生太多的運行開銷,因此,可以在硬件資源有限的設(shè)備(如 IoT 設(shè)備、邊緣設(shè)備或嵌入式設(shè)備)上運行和收集數(shù)據(jù)。如果您需要收集數(shù)據(jù),但沒有資源來運行資源密集型數(shù)據(jù)收集器,那么Beats會是您最佳的選擇。這種無處不在(涵蓋所有聯(lián)網(wǎng)設(shè)備)的數(shù)據(jù)收集方式,能夠讓您快速檢測到異常情況并做出反應(yīng),例如系統(tǒng)范圍內(nèi)的問題和安全事件等。

當然,Beats并不局限于資源有限的系統(tǒng),它們還可用于具有更多可用硬件資源的系統(tǒng)。

Beats有多種風格,可以收集不同類型的數(shù)據(jù):

  • Filebeat

    Filebeat支持從文件形式的數(shù)據(jù)源中讀取、預(yù)處理和傳輸數(shù)據(jù)。雖然大多數(shù)用戶使用Filebeat來讀取日志文件,但它也支持非二進制文件格式。Filebeat還支持多種其他數(shù)據(jù)源,包括TCP/UDP、容器、Redis和Syslog。借助豐富的模塊,可以輕松收集Apache、MySQL和Kafka等常見應(yīng)用程序的日志,并且能夠根據(jù)日志格式解析出對應(yīng)的數(shù)據(jù)。

  • Metricbeat

    Metricbeat可以收集并預(yù)處理系統(tǒng)和服務(wù)指標數(shù)據(jù)。系統(tǒng)指標包括運行中的進程的相關(guān)信息,以及CPU、內(nèi)存、磁盤、網(wǎng)絡(luò)利用率等方面的數(shù)據(jù)。借助豐富的模塊,可以收集來自不同服務(wù)的數(shù)據(jù),包括Kafka、Palo Alto Networks、Redis等。

  • Packetbeat

    Packetbeat可以收集并預(yù)處理實時網(wǎng)絡(luò)數(shù)據(jù),從而支持應(yīng)用程序監(jiān)測、安全和網(wǎng)絡(luò)性能分析。此外,Packetbeat還支持DHCP、DNS、HTTP、MongoDB、NFS和TLS協(xié)議。

  • Winlogbeat

    Winlogbeat可以從Windows操作系統(tǒng)捕獲事件日志,包括應(yīng)用程序事件、硬件事件,以及安全和系統(tǒng)事件。

  • Auditbeat

    Auditbeat可以檢測對關(guān)鍵文件的更改,并從Linux的審計框架中收集事件,主要應(yīng)用于安全分析場景中。

  • Heartbeat

    Heartbeat可以使用探測來監(jiān)測系統(tǒng)和服務(wù)的可用性,因此可以應(yīng)用于很多場景中,例如基礎(chǔ)架構(gòu)監(jiān)測和安全分析。同時支持ICMP、TCP和HTTP協(xié)議。

  • Functionbeat

    Functionbeat可以從無服務(wù)器環(huán)境(如AWS Lambda)中收集日志和指標。

請參見通過自建Metricbeat收集系統(tǒng)指標信息學習Beats的使用方法,其他Beats的使用方法與此類似。

Logstash

Logstash是一個強大而靈活的工具,可以讀取、處理和傳送任何類型的數(shù)據(jù),并且具有豐富的功能,但對設(shè)備資源的要求較高。目前Beats還不支持Logstash提供的一些豐富的功能,或者通過Beats執(zhí)行成本太高,例如通過查找外部數(shù)據(jù)源來豐富文檔。但是Logstash的硬件要求顯著高于Beats,因此Logstash通常不應(yīng)部署在低資源設(shè)備上,在Beats功能不足以滿足特定應(yīng)用場景要求的情況下,可使用Logstash進行代替。

一種常見的架構(gòu)模式是將Beats和Logstash組合起來:使用Beats來收集數(shù)據(jù),并使用Logstash來執(zhí)行Beats無法執(zhí)行的數(shù)據(jù)處理任務(wù)。

阿里云Elasticsearch提供了Logstash服務(wù)。阿里云Logstash作為服務(wù)器端的數(shù)據(jù)處理管道,提供了100%兼容開源的Logstash功能,能夠動態(tài)地從多個來源采集數(shù)據(jù)、轉(zhuǎn)換數(shù)據(jù),并且將數(shù)據(jù)存儲到所選擇的位置。通過輸入、過濾和輸出插件,Logstash可以對任何類型的事件進行加工和轉(zhuǎn)換。

Logstash通過事件處理管道來執(zhí)行任務(wù),其中每個管道至少包含以下各項中的一個:

  • 輸入

    從數(shù)據(jù)源讀取數(shù)據(jù)。官方支持多種數(shù)據(jù)源,包括文件、http、imap、jdbc、kafka、syslog、tcp和udp。

  • 過濾器

    以多種方式處理和豐富數(shù)據(jù)。在許多情況下,需要先將非結(jié)構(gòu)化的日志行解析為更加結(jié)構(gòu)化的格式。因此,除其他功能外,Logstash還在正則表達式的基礎(chǔ)上,提供了解析CSV、JSON、鍵/值對、分隔的非結(jié)構(gòu)化數(shù)據(jù)、復(fù)雜的非結(jié)構(gòu)化數(shù)據(jù)的過濾器(grok過濾器)。Logstash還提供了更多的過濾器,通過執(zhí)行DNS查找,添加關(guān)于IP地址的地理信息,或通過查找自定義目錄Elasticsearch索引來豐富數(shù)據(jù)。通過這些附加的過濾器,能夠?qū)?shù)據(jù)進行各種轉(zhuǎn)換,例如重命名、刪除、復(fù)制數(shù)據(jù)字段和值(mutate過濾器)。

  • 輸出

    輸出是Logstash處理管道的最后階段,可以將解析后并加以豐富的數(shù)據(jù)寫入數(shù)據(jù)接收器。雖然有很多輸出插件可用,但本文主要討論如何使用Elasticsearch輸出,將數(shù)據(jù)采集到Elasticsearch服務(wù)中。

以下提供了一個示例Logstash管道,該管道能夠:

  • 讀取Elastic博客RSS源。

  • 通過復(fù)制或重命名字段、刪除特殊字符以及HTML標記,來執(zhí)行一些簡單的數(shù)據(jù)預(yù)處理。

  • 將文檔采集到Elasticsearch。

  1. 按照如下示例配置阿里云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需要替換為<對應(yīng)阿里云Elasticsearch實例的私網(wǎng)地址>:9200password需要替換為對應(yīng)阿里云Elasticsearch的訪問密碼。詳細配置方法請參見步驟三:創(chuàng)建并運行管道任務(wù)。

  2. 在Kibana控制臺中,查看索引數(shù)據(jù)。

    POST elastic_blog/_search

    詳細操作方法請參見查看數(shù)據(jù)同步結(jié)果

語言客戶端

通過Elasticsearch提供的客戶端,您可以將數(shù)據(jù)采集與自定義應(yīng)用程序代碼集成。這些客戶端是抽象出數(shù)據(jù)采集低層細節(jié)的庫,使您能夠?qū)W⒂谔囟☉?yīng)用程序的實際工作。目前Elasticsearch支持多種客戶端語言,包括Java、JavaScript、Go、.NET、PHP、Perl、Python和Ruby等,更多支持的客戶端語言以及您所選語言的詳細信息和代碼示例,請參見官方支持的Elasticsearch客戶端

如果您的應(yīng)用程序所使用的語言不在官方支持的客戶端語言中,可以在社區(qū)貢獻的客戶端中查找相關(guān)文檔。

Kibana開發(fā)工具

推薦您使用Kibana開發(fā)控制臺開發(fā)并調(diào)試Elasticsearch請求。Kibana開發(fā)工具公開了通用的Elasticsearch RESTful API的全部功能,同時抽象出了底層HTTP請求的技術(shù)細節(jié)。您可以使用Kibana開發(fā)工具,將原始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開發(fā)工具以外,您也可以使用其他工具,通過RESTful API與Elasticsearch通信并采集文檔。例如curl是一款經(jīng)常使用的工具,用于Elasticsearch請求的開發(fā)、調(diào)試或與自定義腳本集成。

總結(jié)

將數(shù)據(jù)采集到Elasticsearch服務(wù)的方法不勝枚舉。您需要根據(jù)特定用例、需求和環(huán)境,選擇合適的方法或工具來采集數(shù)據(jù)。

  • Beats提供了一種方便、輕量級的開箱即用型解決方案,可以從許多不同的來源采集數(shù)據(jù)。與Beats封裝在一起的模塊為許多常見數(shù)據(jù)庫、操作系統(tǒng)、容器環(huán)境、Web服務(wù)器、緩存等提供了數(shù)據(jù)獲取、解析、索引和可視化的配置。通過這些模塊,可以實現(xiàn)五分鐘將數(shù)據(jù)制作成儀表板進行展示。因為Beats是輕量型的,所以非常適合資源受限的嵌入式設(shè)備,例如IoT設(shè)備或防火墻。

  • Logstash是一種靈活的工具,可用于讀取、轉(zhuǎn)換和采集數(shù)據(jù),提供了大量的過濾器、輸入和輸出插件。如果Beats的功能對于某些用例來說還不夠,那么一種常見的架構(gòu)模式是使用Beats來收集數(shù)據(jù),并通過Logstash做進一步處理,然后再采集到Elasticsearch中。

  • 當您需要直接從應(yīng)用程序采集數(shù)據(jù)時,建議使用官方支持的客戶端庫。

  • 當您需要對Elasticsearch請求進行開發(fā)或調(diào)試時,建議您使用Kibana開發(fā)工具。

相關(guān)文檔