ELK Stack 教程有效地發(fā)現(xiàn)、分析和可視化您的數(shù)據(jù)

      網(wǎng)友投稿 965 2022-05-29

      隨著越來越多的 IT 基礎(chǔ)設(shè)施轉(zhuǎn)向云,對(duì)公共云安全工具和日志分析平臺(tái)的需求也在迅速增加。無論組織規(guī)模大小,每天都會(huì)生成大量數(shù)據(jù)。大量此類數(shù)據(jù)由公司的 Web 服務(wù)器日志組成。日志是最重要但經(jīng)常被忽視的信息來源之一。每個(gè)日志文件都包含寶貴的信息,這些信息大多是非結(jié)構(gòu)化的,毫無意義。如果不對(duì)這些日志數(shù)據(jù)進(jìn)行仔細(xì)和詳細(xì)的分析,組織可能會(huì)忽視圍繞它的機(jī)會(huì)和威脅。這是日志分析工具派上用場(chǎng)的地方。ELK Stack 或 Elastic Stack 是一個(gè)完整的日志分析解決方案,有助于深入搜索,分析和可視化從不同機(jī)器生成的日志。通過這篇關(guān)于 ELK Stack 教程的博客,我會(huì)給你一些關(guān)于它的見解。

      但在開始之前,讓我列出我將要討論的主題:

      什么是 ELK 堆棧?

      ELK 堆棧架構(gòu)

      ELK 堆棧安裝

      彈性搜索教程

      Logstash 教程

      Kibana 教程

      您可以閱讀此 ELK 教程錄音,其中我們的ELK 堆棧培訓(xùn)專家通過示例詳細(xì)解釋了這些主題,這些示例將幫助您更好地理解這個(gè)概念。

      什么是 ELK 堆棧?– ELK 堆棧教程

      眾所周知,ELK Stack 最近更名為 Elastic Stack。它是三個(gè)開源工具的強(qiáng)大集合:Elasticsearch、Logstash 和 Kibana。

      這三種不同的產(chǎn)品最常一起用于不同 IT 環(huán)境中的日志分析。使用 ELK Stack,您可以執(zhí)行集中日志記錄,這有助于識(shí)別 Web 服務(wù)器或應(yīng)用程序的問題。它讓您可以在一個(gè)位置搜索所有日志,并通過在特定時(shí)間范圍內(nèi)關(guān)聯(lián)多個(gè)服務(wù)器的日志來識(shí)別跨多個(gè)服務(wù)器的問題。

      現(xiàn)在讓我們?cè)敿?xì)討論這些工具中的每一個(gè)。

      日志存儲(chǔ)

      Logstash 是數(shù)據(jù)收集管道工具。它是 ELK Stack 的第一個(gè)組件,它收集數(shù)據(jù)輸入并將其提供給 Elasticsearch。它一次從不同來源收集各種類型的數(shù)據(jù),并立即提供以供進(jìn)一步使用。

      彈性搜索

      Elasticsearch 是一個(gè)基于 Lucene 搜索引擎并使用 RESTful API 構(gòu)建的 NoSQL 數(shù)據(jù)庫。它是一個(gè)高度靈活的分布式搜索和分析引擎。此外,它還通過水平可擴(kuò)展性提供簡(jiǎn)單的部署、最大的可靠性和輕松的管理。它提供高級(jí)查詢以執(zhí)行詳細(xì)分析并集中存儲(chǔ)所有數(shù)據(jù)以快速搜索文檔。

      基巴納

      Kibana 是一個(gè)數(shù)據(jù)可視化工具。它用于可視化 Elasticsearch 文檔并幫助開發(fā)人員立即了解它。Kibana 儀表板提供各種交互式圖表、地理空間數(shù)據(jù)、時(shí)間線和圖表,以可視化使用 Elasticsearch 完成的復(fù)雜查詢。使用 Kibana,您可以根據(jù)您的特定需求創(chuàng)建和保存自定義圖表。

      本 ELK Stack 教程博客的下一部分將討論 ELK Stack 架構(gòu)以及數(shù)據(jù)如何在其中流動(dòng)。

      ELK 堆棧架構(gòu) – ELK 堆棧教程

      以下是 ELK Stack 的架構(gòu),顯示了 ELK 中日志流的正確順序。在這里,Logstash 根據(jù)提供的過濾條件收集和處理從各種來源生成的日志。Logstash 然后將這些日志通過管道傳輸?shù)?Elasticsearch,然后 Elasticsearch 分析和搜索數(shù)據(jù)。最后,使用 Kibana,可以根據(jù)要求對(duì)日志進(jìn)行可視化和管理。

      ELK 堆棧安裝 – ELK 堆棧教程

      第 I 步:?轉(zhuǎn)到https://www.elastic.co/downloads。

      第二步:選擇并下載 Elasticsearch。

      第三步:選擇并下載 Kibana。

      第四步:選擇并下載Logstash。

      第五步:解壓所有三個(gè)文件?以獲取它們的文件夾文件。

      安裝 Elasticsearch

      STEP VI:現(xiàn)在打開elasticsearch文件夾并轉(zhuǎn)到其?bin文件夾。

      第七步:雙擊elasticsearch.bat文件,啟動(dòng)elasticsearch服務(wù)器。

      第八步:等待elasticsearch服務(wù)器啟動(dòng)。

      STEP IX:要檢查服務(wù)器是否已啟動(dòng),請(qǐng)轉(zhuǎn)到瀏覽器并輸入localhost:9200。

      安裝 Kibana

      步驟 X:現(xiàn)在打開kibana 文件夾并轉(zhuǎn)到其?bin 文件夾。

      步驟 XI:雙擊 kibana.bat 文件以啟動(dòng) elasticsearch 服務(wù)器。

      第十二步:?等待 kibana 服務(wù)器啟動(dòng)。

      第十三步:要檢查服務(wù)器是否已啟動(dòng),請(qǐng)轉(zhuǎn)到瀏覽器并輸入localhost:5601。

      ELK Stack 培訓(xùn)和認(rèn)證

      課程時(shí)長(zhǎng)

      真實(shí)案例研究

      作業(yè)

      終身訪問

      安裝 Logstash

      第十四步:?現(xiàn)在打開logstash 文件夾。

      第十五步:要測(cè)試您的 logstash 安裝,請(qǐng)打開命令提示符并轉(zhuǎn)到您的 logstash 文件夾。現(xiàn)在輸入:

      1

      binlogstash -e 'input { stdin { } } output { stdout {} }'

      第十六步:等待直到命令提示符上出現(xiàn)“Pipeline main started”。

      步驟 XVII:?現(xiàn)在?在命令提示符下輸入一條消息并按回車鍵。

      步驟 XVIII:?Logstash 將時(shí)間戳和 IP 地址信息附加到消息并在命令提示符下顯示。

      由于我們已完成安裝,現(xiàn)在讓我們更深入地了解這些工具。讓我們從 Elasticsearch 開始。

      Elasticsearch – ELK 堆棧教程

      如前所述,Elasticsearch 是一個(gè)高度可擴(kuò)展的搜索引擎,它運(yùn)行在基于 Java 的 Lucene 引擎之上。?它基本上是一個(gè) NoSQL 數(shù)據(jù)庫;這意味著它以非結(jié)構(gòu)化格式存儲(chǔ)數(shù)據(jù),并且不能對(duì)任何類型的事務(wù)執(zhí)行 SQL 查詢。換句話說,它將數(shù)據(jù)存儲(chǔ)在文檔中,而不是表和模式中。要獲得更好的圖片,請(qǐng)查看下表,該表格顯示了 Elasticsearch 中的內(nèi)容與數(shù)據(jù)庫相比。

      現(xiàn)在讓我們熟悉一下 Elasticsearch 的基本概念。

      當(dāng)您使用 Elasticsearch 時(shí),您需要遵循三個(gè)主要步驟:

      索引

      映射

      搜索

      讓我們一一詳細(xì)討論它們。

      索引

      索引是 Elasticsearch 添加數(shù)據(jù)的過程。之所以稱為“索引”,是因?yàn)楫?dāng)數(shù)據(jù)輸入 Elasticsearch 時(shí),它會(huì)被放入 Apache Lucene 索引中。Elasticsearch 然后使用這些 Lucene 索引來存儲(chǔ)和檢索數(shù)據(jù)。索引類似于 CRUD 操作的創(chuàng)建和更新過程。

      索引方案由name/type/id 組成,?其中 name 和 type 是必填字段。如果您不提供任何 ID,Elasticsearch 將自行提供一個(gè) ID。然后將整個(gè)查詢附加到 HTTP PUT 請(qǐng)求,最終 URL 如下所示:與?HTTP 負(fù)載一起發(fā)送一個(gè)包含字段和值的 JSON 文檔。PUT?name/type/id

      ELK Stack 教程 – 有效地發(fā)現(xiàn)、分析和可視化您的數(shù)據(jù)

      以下是創(chuàng)建美國(guó)客戶文檔的示例,其中包含字段中的詳細(xì)信息。

      PUT /customer/US/1 { "ID" : 101, "FName" : "James", "LName" : "Butt", "Email" : "jbutt@gmail.com", "City" : "New Orleans", "Type" : "VIP" }

      它將為您提供以下輸出:

      此處顯示文檔已創(chuàng)建并添加到索引中。

      現(xiàn)在,如果您嘗試在不更改 id 的情況下更改字段詳細(xì)信息,Elasticsearch 將使用當(dāng)前詳細(xì)信息覆蓋您現(xiàn)有的文檔。

      PUT /customer/US/1 { "ID" : 101, "FName" : "James", "LName" : "Butt", "Email" : "jbutt@yahoo.com", "City" : "Los Angeles", "Type" : "VVIP" }

      此處顯示文檔已使用索引的新詳細(xì)信息進(jìn)行更新。

      映射

      映射是設(shè)置索引模式的過程。通過映射,您可以將架構(gòu)中存在的屬性的數(shù)據(jù)類型告訴 Elasticsearch。如果在預(yù)索引時(shí)未針對(duì)特定對(duì)象進(jìn)行映射,則 Elasticsearch 將動(dòng)態(tài)地將通用類型添加到該字段中。但是這些泛型類型非常基礎(chǔ),而且大多數(shù)時(shí)候都不能滿足查詢期望。

      現(xiàn)在讓我們嘗試映射我們的查詢。

      PUT /customer/ { "mappings":{ "US":{ "properties":{ "ID":{ "type": "long" }, "FName" : { "type" : "text" }, "LName" : { "type" : "text" }, "Email" : { "type" : "text" }, "City" : { "type" : "text" }, "Type" : { "type" : "text" } } } } }

      當(dāng)您執(zhí)行查詢時(shí),您將獲得這種類型的輸出。

      搜索

      具有特定索引和類型的一般搜索查詢將如下所示:?POST index/type/_search

      現(xiàn)在讓我們嘗試搜索“客戶”索引中存在的所有客戶的詳細(xì)信息。

      POST /customer/US/_search

      執(zhí)行此查詢時(shí),將生成以下結(jié)果:

      但是當(dāng)您想要搜索特定結(jié)果時(shí),Elasticsearch 提供了三種執(zhí)行方式:

      使用查詢,您可以搜索某些特定的文檔或條目。例如,讓我們對(duì)屬于“VVIP”類別的客戶執(zhí)行搜索查詢。

      POST /customer/US/_search { "query": { "match": { "Type": "VVIP" } } }

      使用過濾器,您可以進(jìn)一步縮小搜索范圍。以下是搜索 ID 為“101”的 VVIP 客戶的示例:

      POST /customer/_search { "query": { "match": { "Type": "VVIP" } }, "post_filter": { "match" : { "ID" : 101 } } }

      如果您執(zhí)行此查詢,您將獲得以下類型的結(jié)果:

      聚合是一個(gè)框架,它有助于通過搜索查詢聚合數(shù)據(jù)??梢詫⑿⌒途酆线B接在一起,以構(gòu)建所提供數(shù)據(jù)的復(fù)雜摘要。讓我們執(zhí)行一個(gè)簡(jiǎn)單的聚合來檢查我們的索引中有多少類型的客戶:

      POST /customer/_search { "size": 0, "aggs" : { "Cust_Types" : { "terms" : { "field" : "Type.keyword" } } } }

      現(xiàn)在,讓我們看看如何檢索?一個(gè)從索引數(shù)據(jù)集。

      獲取?數(shù)據(jù)

      要檢查索引中的文檔列表,您只需要按以下格式發(fā)送 HTTP GET 請(qǐng)求:?GET index/type/id

      讓我們嘗試檢索 'id' 等于 2 的客戶的詳細(xì)信息:

      GET /customer/US/2

      成功執(zhí)行后,它將為您提供以下類型的結(jié)果。

      使用 Elasticsearch,您不僅可以瀏覽數(shù)據(jù),還可以刪除或移除文檔。

      刪除數(shù)據(jù)

      使用刪除約定,您可以輕松地從索引中刪除不需要的數(shù)據(jù)并釋放內(nèi)存空間。要?jiǎng)h除任何文檔,您需要按以下格式發(fā)送 HTTP DELETE 請(qǐng)求:DELETE index/type/id.

      現(xiàn)在讓我們嘗試刪除 id 為 2 的客戶的詳細(xì)信息。

      DELETE /customer/US/2

      執(zhí)行此查詢時(shí),您將獲得以下類型的結(jié)果。

      因此,到此結(jié)束使用 Elasticsearch 進(jìn)行 CRUD 操作的基礎(chǔ)知識(shí)。了解這些基本操作將幫助您執(zhí)行不同類型的搜索,并且您足以繼續(xù)學(xué)習(xí) ELK 教程。但是如果你想深入學(xué)習(xí)Elasticsearch,可以參考我的博客Elasticsearch Tutorial。

      現(xiàn)在讓我們從 ELK Stack 的下一個(gè)工具開始,它是 Logstash。

      Logstash –??ELK 堆棧教程

      正如我已經(jīng)討論過的,Logstash 是一個(gè)管道工具,通常用于收集和轉(zhuǎn)發(fā)日志或事件。它是一個(gè)開源的數(shù)據(jù)收集引擎,可以動(dòng)態(tài)地整合來自各種來源的數(shù)據(jù),并將其規(guī)范化到指定的目的地。

      Logstash 使用許多輸入、過濾器和輸出插件,可以輕松轉(zhuǎn)換各種事件。至少,Logstash 需要在其配置文件中指定的輸入和輸出插件來執(zhí)行轉(zhuǎn)換。以下是 Logstash 配置文件的結(jié)構(gòu):

      input { ... } filter { ... } output { ... }

      如您所見,整個(gè)配置文件分為三個(gè)部分,每個(gè)部分都包含一個(gè)或多個(gè)插件的配置選項(xiàng)。這三個(gè)部分是:

      輸入

      篩選

      輸出

      您也可以在配置文件中應(yīng)用多個(gè)過濾器。在這種情況下,它們的應(yīng)用程序的順序?qū)⑴c配置文件中的規(guī)范順序相同。

      現(xiàn)在讓我們嘗試配置 CSV 文件格式的美國(guó)客戶數(shù)據(jù)集文件。

      input{ file{ path => "E:/ELK/data/US_Customer_List.csv" start_position => "beginning" sincedb_path => "/dev/null" } } filter{ csv{ separator => "," columns =>["Cust_ID","Cust_Fname","Cust_Lname","Cust_Email","Cust_City","Cust_Type"] } mutate{convert => ["Cust_ID","integer"]} } output{ elasticsearch{ hosts => "localhost" index => "customers" document_type => "US_Based_Cust" } stdout{} }

      要將此 CSV 文件數(shù)據(jù)插入到 elasticsearch 中,您必須通知 Logstash 服務(wù)器。

      為此,請(qǐng)按照以下步驟操作:

      打開命令提示符

      進(jìn)入Logstash的bin目錄

      輸入:logstash?–?f X?:/foldername/config_filename.config并回車。一旦您的 logstash 服務(wù)器啟動(dòng)并運(yùn)行,它將開始將您的數(shù)據(jù)從文件傳輸?shù)?Elasticsearch。

      如果要檢查數(shù)據(jù)是否插入成功,請(qǐng)轉(zhuǎn)到 sense 插件并鍵入:

      GET /customers/

      它將為您提供已創(chuàng)建的文檔數(shù)量。

      現(xiàn)在如果你想可視化這些數(shù)據(jù),你必須使用 ELK Stack 的最后一個(gè)工具,即 Kibana。因此,在本 ELK 堆棧教程的下一部分中,?我將討論 Kibana 及其使用方法,它可以將您的數(shù)據(jù)可視化。

      Kibana – ELK 堆棧教程

      如前所述,Kibana 是一個(gè)開源的可視化和分析工具。它有助于可視化由 Logstash 傳輸并存儲(chǔ)到 Elasticsearch 中的數(shù)據(jù)。您可以使用 Kibana 搜索、查看這些存儲(chǔ)的數(shù)據(jù)并與之交互,然后將其可視化為各種圖表、表格和地圖。 Kibana 基于瀏覽器的界面簡(jiǎn)化了海量數(shù)據(jù),并反映了實(shí)時(shí)變化彈性搜索查詢。此外,您還可以輕松創(chuàng)建、自定義、保存和共享您的儀表板。

      一旦你學(xué)會(huì)了如何使用 Elasticsearch 和 Logstash,學(xué)習(xí) Kibana 就沒什么大不了了。在 ELK 教程博客的這一部分中,我將向您介紹對(duì)數(shù)據(jù)執(zhí)行分析所需的不同功能。

      管理頁面

      這是您必須執(zhí)行 Kibana 運(yùn)行時(shí)配置的地方。在此頁面中,您需要為搜索指定一些內(nèi)容。請(qǐng)參閱以下示例,其中我為“客戶”索引配置了條目。

      如您所見,在“索引模式”字段中,您需要指定要使用的索引。在“時(shí)間過濾器字段名稱”中,確保將其選擇為@timestamp。然后您可以繼續(xù)并單擊“創(chuàng)建”以創(chuàng)建索引。如果您的索引創(chuàng)建成功,您將看到以下類型的頁面:

      在這里,您可以根據(jù)您的要求從下拉列表中選擇不同的過濾器。此外,為了釋放內(nèi)存,您還可以刪除特定索引。

      發(fā)現(xiàn)頁面

      通過“發(fā)現(xiàn)”頁面,您可以訪問與所選索引模式匹配的每個(gè)索引的每個(gè)文檔。您可以輕松地交互和探索 Kibana 服務(wù)器上存在的每一點(diǎn)數(shù)據(jù)。此外,您可以查看文檔中的數(shù)據(jù)并對(duì)其執(zhí)行搜索查詢。

      您可以在下面看到,我正在搜索來自“洛杉磯”的“VIP”客戶。

      因此,如您所見,我們只有一位來自洛杉磯的 VIP 客戶。

      可視化頁面

      可視化?頁面使您能夠以圖表、條形圖、餅圖等形式可視化 Elasticsearch 索引中存在的數(shù)據(jù)。您甚至可以在此處構(gòu)建儀表板,以顯示基于 Elasticsearch 查詢的相關(guān)可視化。通常,使用一系列 Elasticsearch 聚合查詢來提取和處理數(shù)據(jù)。當(dāng)您轉(zhuǎn)到“可視化”頁面并搜索您保存的可視化時(shí),您也可以創(chuàng)建一個(gè)新的可視化。

      您可以以任何形式聚合您的數(shù)據(jù)。為方便用戶,提供了不同類型的可視化選項(xiàng)。

      讓我向您展示如何根據(jù)用戶類型可視化美國(guó)客戶數(shù)據(jù)。

      要執(zhí)行可視化,請(qǐng)按照以下步驟操作:

      選擇可視化類型。[這里我用的是餡餅]

      在聚合字段中,從下拉列表中選擇“術(shù)語”。

      在“字段”中,選擇要基于其執(zhí)行搜索的字段類型。

      您也可以指定可視化的順序和大小。

      現(xiàn)在單擊執(zhí)行按鈕以生成餅圖。

      儀表板頁面

      儀表板頁面顯示一組已保存的可視化。您可以在此處添加新的可視化,也可以使用任何已保存的可視化。

      Timelion 頁面

      Timelion 是一個(gè)時(shí)間序列數(shù)據(jù)可視化工具,它將完全獨(dú)立的數(shù)據(jù)源整合到一個(gè)界面中。它由一種單行表達(dá)式語言驅(qū)動(dòng),用于檢索時(shí)間序列數(shù)據(jù)、執(zhí)行計(jì)算以簡(jiǎn)化復(fù)雜問題并可視化結(jié)果。

      開發(fā)工具頁面

      Kibana的?開發(fā)工具頁面包含開發(fā)工具,例如“Beta Sense”插件,用于與 Elasticsearch 中的數(shù)據(jù)進(jìn)行交互。它通常被稱為 Kibana 的控制臺(tái)。以下是我使用 Kibana 的 sense 插件搜索類型為“US_based_cust”的“客戶”索引的示例:

      這篇關(guān)于 ELK 堆棧教程的博客到此結(jié)束。現(xiàn)在您已準(zhǔn)備好使用 Logstash、Elasticsearch 和 Kibana 對(duì)您想要的任何數(shù)據(jù)執(zhí)行各種搜索和分析。

      Elasticsearch 大數(shù)據(jù) 實(shí)時(shí)流計(jì)算服務(wù) CS

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。

      上一篇:華為云鯤鵬編譯mysql文檔
      下一篇:d3.js的一些文檔
      相關(guān)文章
      国产亚洲女在线线精品| 亚洲性日韩精品一区二区三区 | 亚洲欧美国产国产综合一区| 亚洲精品国产V片在线观看| 亚洲午夜视频在线观看| 在线观看亚洲天天一三视| 亚洲人成色7777在线观看不卡| 亚洲成?Ⅴ人在线观看无码| 国产午夜亚洲精品不卡| 亚洲第一网站男人都懂| 亚洲午夜AV无码专区在线播放| 风间由美在线亚洲一区| 国产精品成人亚洲| 亚洲精品网站在线观看不卡无广告| 国产综合成人亚洲区| 亚洲欧洲精品成人久久奇米网 | 精品亚洲aⅴ在线观看| 久久精品国产亚洲av高清漫画| 久久亚洲精品成人AV| 久久国产亚洲电影天堂| 久久久久亚洲av无码专区导航| 亚洲国产精品一区| 亚洲宅男天堂a在线| 在线观看亚洲AV日韩A∨| 亚洲色在线无码国产精品不卡| 亚洲国产成人久久综合| 一区二区三区亚洲视频| 中文字幕第13亚洲另类| 久久久久亚洲精品影视| 亚洲最大在线视频| 亚洲色大成网站www| 亚洲?v无码国产在丝袜线观看| 中文字幕亚洲一区二区三区| 亚洲av丰满熟妇在线播放| 亚洲国产成人精品青青草原| 亚洲国产熟亚洲女视频| 亚洲a无码综合a国产av中文| 亚洲精品第一国产综合精品99| 亚洲美女又黄又爽在线观看| 91久久亚洲国产成人精品性色 | 亚洲国产成+人+综合|