日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

asp.net core结合NLog搭建ELK实时日志分析平台

發(fā)布時間:2023/12/9 asp.net 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 asp.net core结合NLog搭建ELK实时日志分析平台 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

0、整體架構(gòu)


?

整體架構(gòu)目錄:ASP.NET Core分布式項目實戰(zhàn)-目錄

一、介紹ELK


?

1、說明(此篇ELK采用rpm的方式安裝在服務(wù)器上)-牛刀小試

承接上一篇文章的內(nèi)容準(zhǔn)備部署ELK來展示asp.net core 的數(shù)據(jù)。目前此篇文章只用到單臺服務(wù)器,等下一篇將會介紹如何做到集群部署ELK+filebeat+MQ,因為這個集群部署才是真正體現(xiàn)大項目的價值。當(dāng)然如果是小項目或者是內(nèi)部項目單臺足以。

當(dāng)然ELK只是在業(yè)界用的比較多,但是里面所用的工具是可以替換的,比如說 如下:

體現(xiàn)價值的解決方案就是:es+kibana+filebeat/logstash+MQ(RabbitMQ/Kfaka) 來實現(xiàn)日志記錄等。

?

多介紹一下吧:

Beats包含四種工具:

  Packetbeat(搜集網(wǎng)絡(luò)流量數(shù)據(jù))
  Topbeat(搜集系統(tǒng)、進(jìn)程和文件系統(tǒng)級別的 CPU 和內(nèi)存使用情況等數(shù)據(jù))
  Filebeat(搜集文件數(shù)據(jù))
  Winlogbeat(搜集 Windows 事件日志數(shù)據(jù))
  它是一個輕量級的日志收集處理工具(Agent)

?

自此,解決方案很多,關(guān)鍵在于不同的項目用不同的解決方案,關(guān)鍵看大家的選擇啦。當(dāng)然如果大家有興趣可以加一下QQ群,可以互相探討技術(shù)。

?

如果大家對NLog不會部署,請看上一篇文章:asp.net core添加全局異常處理及l(fā)og4net、Nlog應(yīng)用

好了接下來就要開始部署啦,請準(zhǔn)備你們的服務(wù)器和VS吧。

?

2、環(huán)境說明

軟件版本
CentOS7.4
Dockerce-18.06
Elasticsearch5.5.0
Logstash5.5.0
Kibana5.5.0
VS20172017

?

介紹一下ELK實時日志分析平臺。

Elasticsearch:是個開源分布式搜索引擎,提供收集、分析、存儲數(shù)據(jù)三大功能,它的特點:分布式、零配置、自動發(fā)現(xiàn)、索引自動分片、索引副本機制、restful風(fēng)格接口、多數(shù)據(jù)源、自動搜索負(fù)載等。

Logstash:主要是用來日志的搜集、分析、過濾日志的工具,支持大量的數(shù)據(jù)獲取方式。一般工作方式為c/s架構(gòu),client端安裝在需要收集日志的主機上,server端負(fù)責(zé)將收到的各節(jié)點日志進(jìn)行過濾、修改等操作在一并發(fā)往elasticsearch上去。

Kibana:Kibana可以為 Logstash 和 ElasticSearch 提供的日志分析友好的 Web 界面,可以幫助匯總、分析和搜索重要數(shù)據(jù)日志。

?

二、部署ELK


?

目前由于我在公司部署的ELK,在使用docker下載官方的ELK鏡像時,無法下載。因此我在家里的時候就把ELK所需要的鏡像下載好后放在阿里云的鏡像倉庫中,然后在公司的電腦里面直接下載,速度比較快。

如果有碰到以上下載鏡像問題的同學(xué),可以嘗試我這中辦法。

0、前提需要安裝JAVA環(huán)境

命令:
wget --no-check-certificate --no-cookie --header "Cookie: oraclelicense=accept-securebackup-cookie;" http://download.oracle.com/otn-pub/java/jdk/8u181-b13/96a7b8442fe848ef90c96a2fad6ed6d1/jdk-8u181-linux-x64.rpm

?

如果發(fā)現(xiàn) 下載地址失效請登錄:https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 這個鏈接找尋下載地址

?

安裝JDK8:
rpm -ivh jdk-8u181-linux-x64.rpm

檢查 JDK是否安裝成功:
java -version

?

1、部署Elasticsearch

安裝
官方文檔:https://www.elastic.co/guide/en/elasticsearch/reference/current/index.html
官方網(wǎng)站有很多安裝方式,這里采用rpm安裝。

//進(jìn)入local目錄
cd /usr/local


//創(chuàng)建elasticsearch文件夾

mkdir elasticsearch


//進(jìn)入elasticsearch文件夾
cd elasticsearch


//開始下載
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.5.0.rpm


//開始安裝
rpm -ivh elasticsearch-5.5.0.rpm

?

配置

//查找安裝目錄
whereis elasticsearch


//進(jìn)入安裝目錄
cd /etc/elasticsearch


//編輯配置文件
vi elasticsearch.yml

?

主要配置Network.host(本機ip)和http.port(默認(rèn)9200)(目前單節(jié)點模式,其他參數(shù)請參考官方文檔)

?

?

啟動服務(wù)

//開啟端口9200
firewall-cmd --add-port=9200/tcp --permanent


//重新加載配置
firewall-cmd --reload

//設(shè)置服務(wù)開機啟動
systemctl enable elasticsearch


//啟動服務(wù)
systemctl start elasticsearch

?

在瀏覽器打開http://192.168.161.191:9200/,如下圖所示表示啟動成功了

?

2、部署kibana

官網(wǎng)文檔:https://www.elastic.co/guide/en/kibana/current/index.html

安裝

//進(jìn)入elasticsearch目錄
cd /usr/local/elasticsearch


//下載Kibana rpm 64位包
wget https://artifacts.elastic.co/downloads/kibana/kibana-5.5.0-x86_64.rpm


//安裝Kibana
rpm -ivh kibana-5.5.0-x86_64.rpm

?

配置

//進(jìn)入安裝目錄
cd /etc/kibana


//編輯配置文件
vi kibana.yml

?

設(shè)置端口號:5601,Host地址:"192.168.161.191" ,elasticsearch服務(wù)地址為:"http://192.168.161.191:9200"

?

啟動服務(wù)

//開啟端口5601
firewall-cmd --add-port=5601/tcp --permanent


//重新加載配置
firewall-cmd --reload

//設(shè)置服務(wù)開機啟動
systemctl enable kibana


//啟動服務(wù)
systemctl start kibana

?

在瀏覽器打開http://192.168.161.191:5601,將進(jìn)入到Kibana管理界面

?

3、部署logstash

官方文檔:https://www.elastic.co/guide/en/logstash/current/index.html

安裝

//進(jìn)入elasticsearch目錄
cd /usr/local/elasticsearch


//下載logstash rpm包
wget https://artifacts.elastic.co/downloads/logstash/logstash-5.5.0.rpm


//安裝rpm包
rpm -ivh logstash-5.5.0.rpm

?

配置

//進(jìn)入安裝目錄
cd /etc/logstash


//進(jìn)入conf.d目錄
cd conf.d


//新增配置信息
vi nlog.conf

?

?

直接在logstash.conf配置即可。

input{tcp{host=>"192.168.161.191"port=>8001} } filter{grok{match=>{"message"=>"#%{DATA:request_time}#%{DATA:log_level}#%{DATA:log_info}#"}} } output{elasticsearch{hosts=>["192.168.161.191:9200"]index=>"default"document_type=>"logs"} }

  


input:采用TCP監(jiān)控本機8001端口的消息
filter:使用grok 插件,自定義消息格式,推薦使用grokdebug在線進(jìn)行調(diào)試
output:使用elasticsearch作為數(shù)據(jù)存儲

?

5、重啟修改配置后的logstash

如果是上面的第二種方式,采用tcp端口,則重啟需要配置 8001端口
即: -p 8001:8001

docker run -d --restart always?-p 8001:8001 --name logstash -v /home/logstashdata/config:/usr/share/logstash/config -v /home/logstashdata/pipeline:/usr/share/logstash/pipeline logstash:6.3.0

?

啟動服務(wù)

//開啟端口8001
firewall-cmd --add-port=8001/tcp --permanent


//重載配置
firewall-cmd --reload

//設(shè)置開機啟動
systemctl enable logstash


//啟動logstash
systemctl start logstash

三、asp.net core 結(jié)合NLog


?

1、在項目中的nlog/config文件中添加內(nèi)容如下:

<?xml version="1.0" encoding="utf-8" ?> <nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"autoReload="true"><!-- the targets to write to --><targets><!-- 輸出到文件,這個文件記錄所有的日志 --><target xsi:type="File" name="allfile" fileName="Log\LogAll\${shortdate}.htm"layout="<HR COLOR=red>${longdate}<BR>${logger}<BR>${uppercase:${level}}<BR>${message} ${exception}<HR Size=1>" /><!-- 輸出到文件,這個文件記錄錯誤日志 --><target xsi:type="File" name="logError" fileName="Log\LogError\${shortdate}.htm"layout="<HR COLOR=red>【異常時間】:${date} <BR>【異常級別】:${level:uppercase=true} <BR>${message}<HR Size=1>" /><!-- 輸出到文件,這個文件記錄操作日志 --><target xsi:type="File" name="logInfo" fileName="Log\LogInfo\${shortdate}.htm"layout="<HR COLOR=red>【操作時間】:${date} <BR>【操作級別】:${level:uppercase=true} <BR>${message}<HR Size=1>" /> <target xsi:type="Network" name="ownLog-tcp-Info" keepConnection="false" address ="tcp://192.168.161.191:8001"layout="#【操作時間】:${date} #【操作級別】:${level:uppercase=true} #${message}#"/><target xsi:type="Network" name="ownLog-tcp-Error" keepConnection="false" address ="tcp://192.168.161.191:8001"layout="#【異常時間】:${date} #【異常級別】:${level:uppercase=true} #${message}#"/></targets><!-- rules to map from logger name to target --><rules><!--All logs, including from Microsoft--><logger name="*" minlevel="Trace" writeTo="allfile" /><logger name="*" minlevel="Error" writeTo="logError" /><logger name="*" minlevel="Info" writeTo="logInfo" /> <logger name="*" minlevel="Info" writeTo="ownLog-tcp-Info" /><logger name="*" minlevel="Error" writeTo="ownLog-tcp-Error" /><!--Skip non-critical Microsoft logs and so log only own logs--><logger name="Microsoft.*" maxLevel="Trace" final="true" /><!--<logger name="DotNetCore.CAP.*" maxLevel="Info" final="true" /><logger name="IdentityServer4.*" maxLevel="Info" final="true" />--></rules> </nlog>

  

配置結(jié)束,運行項目。

打開kibana,添加一下索引,當(dāng)然這個索引名稱需要和上面在logstash中的es索引一樣,因為是要根據(jù)索引名稱來查找數(shù)據(jù)的。

?

?

?添加索引完后,就可以查看數(shù)據(jù)啦。

?

等下一篇部署在Docker上。拭目以待吧。

?

?參考文檔:https://www.cnblogs.com/piscesLoveCc/p/7230426.html

?

asp.net?core 交流群:787464275?歡迎加群交流
如果您認(rèn)為這篇文章還不錯或者有所收獲,您可以點擊右下角的【推薦】按鈕精神支持,因為這種支持是我繼續(xù)寫作,分享的最大動力!

作者:LouieGuo
聲明:原創(chuàng)博客請在轉(zhuǎn)載時保留原文鏈接或者在文章開頭加上本人博客地址,如發(fā)現(xiàn)錯誤,歡迎批評指正。凡是轉(zhuǎn)載于本人的文章,不能設(shè)置打賞功能,如有特殊需求請與本人聯(lián)系!

微信公眾號:歡迎關(guān)注? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?QQ技術(shù)交流群:?歡迎加群

? ? ? ? ? ? ? ??

轉(zhuǎn)載于:https://www.cnblogs.com/guolianyu/p/9600659.html

總結(jié)

以上是生活随笔為你收集整理的asp.net core结合NLog搭建ELK实时日志分析平台的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。