ELK乙個優秀的日誌收集 搜尋 分析的解決方案

2022-06-10 02:06:10 字數 2138 閱讀 4689

elk,是elastaicsearch、logstash和kibana三款軟體的簡稱。elastaicsearch是乙個開源的全文搜尋引擎。logstash則是乙個開源的資料收集引擎,具有實時的管道,它可以動態地將不同的資料來源的資料統一起來。kibana是乙個日誌視覺化分析的平台,它提供了一系列日誌分析的web介面,可以使用它對日誌進行高效地搜尋、分析和視覺化操作。我們可以定義elk是乙個集日誌收集、搜尋、日誌聚合和日誌分析於一身的完整解決方案。

首先,安裝elk,以docker方式安裝。

接著,我們通過 serilog 來收集日誌資訊,建立 elk.webapi01 專案,並在專案中引入三個依賴項:serilog.aspnetcore和serilog.sinks.elasticsearch。

serilog.aspnetcore

serilog.sinks.elasticsearch

接著,program檔案中增加:

using microsoft.aspnetcore.hosting;

using microsoft.extensions.hosting;

using serilog;

using serilog.events;

using serilog.sinks.elasticsearch;

using system;

namespace elk.webapi01

) .createlogger();

createhostbuilder(args).build().run();

}public static ihostbuilder createhostbuilder(string args) =>

host.createdefaultbuilder(args)

.configurewebhostdefaults(webbuilder =>

).useserilog();}}

接著,建立logcontroller,增加日誌測試介面並執行它:

最後,我們要到那裡去找這些日誌資訊呢?我們在kibana中點選左側導航欄最底下的設定按鈕,然後再點選右側的create index pattern按鈕建立乙個索引。什麼叫做索引呢?在elasticsearch中索引相當於一張」表」,如圖:

建立索引的時候,會發現列表中列出了目前elasticsearch中可用的資料。這裡的logstash-2020.02.15就是本文中的asp.net core應用產生的日誌資訊。

建立完索引,就可以看到目前收集的日誌資訊了,在此基礎上,我們可以做進一步的檢索、過濾,來生成各種各樣的「查詢」。而每乙個「查詢」實際上就是乙個資料來源。

ELK 簡單搜尋一條日誌記錄的查詢語句

如現有請求日誌如下 request body server 9999 username hello player id 100001 time 0現需要找到 abc.com index.php?s a b c 的使用者名為 hello 的一條請求日誌,它存放在伺服器9999上,可以在 elk 查詢器...

乙個優秀的編譯程式

include include include void init char limit file fp int i char c fp fopen d k.txt w for i 1 i 32 i fprintf fp,s n key i fclose fp fp fopen d l.txt w ...

乙個優秀的程式設計師

成為乙個優秀的程式設計師與年齡 教育或者你掙錢的多少沒有關係。關鍵在於你的表現,更深刻的說,是你如何思考。比起他們所選語言的知識 對資料結構和演算法的深入理解 或者幾年的工作經驗 更多的是他們交流的方式,管理自己的方式,和根據他們精湛的技巧可以知道他們接觸程式設計的方法很有意義。當然,成為乙個好的程...