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