.net core 結合nlog使用Elasticsearch , Logstash, Kibana


什么是ELK

ELK是三個開源軟件的縮寫,分別表示:Elasticsearch , Logstash, Kibana , 它們都是開源軟件。新增了一個FileBeat,它是一個輕量級的日志收集處理工具(Agent),Filebeat占用資源少,適合於在各個服務器上搜集日志后傳輸給Logstash,官方也推薦此工具。

Elasticsearch

Elasticsearch是個開源分布式搜索引擎,提供搜集、分析、存儲數據三大功能。它的特點有:分布式,零配置,自動發現,索引自動分片,索引副本機制,restful風格接口,多數據源,自動搜索負載等。

Logstash

Logstash 主要是用來日志的搜集、分析、過濾日志的工具,支持大量的數據獲取方式。一般工作方式為c/s架構,client端安裝在需要收集日志的主機上,server端負責將收到的各節點日志進行過濾、修改等操作在一並發往elasticsearch上去。

Kibana

Kibana 也是一個開源和免費的工具,Kibana可以為 Logstash 和 ElasticSearch 提供的日志分析友好的 Web 界面,可以幫助匯總、分析和搜索重要數據日志。

如何使用ELK

ELK環境快速搭建

這里推薦使用docker-compose一鍵搭建 地址:https://github.com/deviantony/docker-elk.git

使用方法:

git clone https://github.com/deviantony/docker-elk.git
cd docker-elk
docker-compose up -d

安裝完之后,瀏覽器上訪問安裝服務器的ip:5601 (注意端口號)可以打開kibana管理后台

注意:在logstash/pipeline/logstash.conf``您的logstash input配置是 tcp 5000 后面我們會用到。

net core項目中使用

代碼項目中添加

項目引用NlognugetNLog.Extensions.Logging

Startup.cs中添加nlog啟動

 public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
        {
            loggerFactory.AddNLog();//添加NLog
        ……

在項目的 nlog.config文件中targets節點
添加子target

 <!-- Tcp日志target -->
    <target xsi:type="Network"
            name="ownLog-tcp"
            keepConnection="false"
            address ="tcp://ELK服務器ip:5000"
            layout="#${longdate}#${nodeName}#${logger}#${uppercase:${level}}#${callsite}#${callsite-linenumber}#${aspnet-request-url}#${aspnet-request-method}#${aspnet-mvc-controller}#${aspnet-mvc-action}#${message}#${exception:format=ToString}#"
            />

rules節點添加配置

    <logger name="*" minlevel="Trace" writeTo="ownLog-tcp" />

啟動項目,生成日志

配置kibana 添加index pattern

進入剛剛搭建好的kibana后台,按照指引創建一個index pattern
然后 discover你的log吧


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM