使用 Exceptionless 作为 Log Server 搭配 NLog 记录系统日志
昨天的文章<免費(fèi)開源分布式系統(tǒng)日志收集框架 Exceptionless>反響很大,今天推的一篇是續(xù)集,文章來(lái)自于寶島臺(tái)灣的MVP, 讓 Exceptionless 建置 Log Server,性能不用擔(dān)心,用的是大名點(diǎn)點(diǎn)的ELK組合.
前言
痾...久違的新文章,讓我的眼角流下了蛋蛋憂傷的淚珠....
今天來(lái)介紹一下一款 Open Source 的項(xiàng)目「Exceptionless」
Exceptionless 是什么? 在 Exceptionless 的團(tuán)隊(duì)對(duì)這個(gè)名稱的定義意義是無(wú)例外,當(dāng)然...誰(shuí)不想~不要有例外錯(cuò)誤發(fā)生呢? (淚...),但是當(dāng)發(fā)生例外時(shí)你要怎么知道!? 就可以通過(guò) Exceptionless 的服務(wù)來(lái)取得必要信息啦(要錢的~)
當(dāng)然,這個(gè)團(tuán)隊(duì)也是很佛心的提供了 Open Source 讓你可以自己架設(shè)你的 Log Server 啦! 整個(gè) Exceptionless 包含了 Server 與 Client 兩部分,Server指的是一個(gè) Web Api 的項(xiàng)目與 Dashboard 檢視,提供Client 端將系統(tǒng)信息寫入,Clinet 指的是客戶端通過(guò)所提供的 Lib 就能夠簡(jiǎn)單的呼叫提供的方法寫入 Log 信息。
目前有提供的客戶端支持有?ASP.NET, MVC, Web API, WPF, WinForms, and Console,JavaScript, Node.js,另外也支持了NLog擴(kuò)充,為了我們的荷包著想,接來(lái)下我將介紹一下怎么自行安裝 Exceptionless 給你的系統(tǒng)使用,本文章使用 Exceptionless v 3.0.0 為范例。
?
準(zhǔn)備動(dòng)作
首先,請(qǐng)先準(zhǔn)備以下幾個(gè)項(xiàng)目
§? 安裝?.Net Framework 4.5.1+
§? 安裝?Java 1.8+
§? 安裝 IIS 8+
§? 安裝?ElasticSearch 1.7.0+
§? 下載?Exceptionless 3.0.0
§? 下載?Exceptionless.UI 2.1.1
針對(duì) Java 的部分,需要至環(huán)境變量設(shè)定 JAVA_HOME,指向你的 Java 安裝目錄,如下
針對(duì)?Elasticsearch,Exceptionless 使用 Elasticsearch 作為數(shù)據(jù)庫(kù)儲(chǔ)存你的 Log,
下載后解壓縮至 C:\Program Files\Elasticsearch\content\ 路徑底下,
另外需要使用?Exceptionless 配置好的配置文件,直接覆蓋掉在 C:\Program Files\Elasticsearch\content\elasticsearch-1.7.2\config里面的?elasticsearch.yml
接著,我們通過(guò) Window Service 將 Elasticsearch 啟動(dòng) (參考),
開啟命令提示字符,切換到?C:\ProgramFiles\Elasticsearch\content\elasticsearch-1.7.2\bin 目錄下
輸入: service.bat install?elasticsearch-service-x64
看到以下畫面就成功了,再去服務(wù)里面啟動(dòng)。
另外,還要通過(guò)瀏覽器去檢查一下服務(wù)是否啟動(dòng),開啟瀏覽器輸入網(wǎng)址: http://localhost:9200
架設(shè) Server 與 Dashboard
架設(shè)的部分,最簡(jiǎn)單的方法可以使用 GitHub 上所提供的 Release 檔案進(jìn)行架設(shè),
解壓縮準(zhǔn)備步驟中,所下載的兩個(gè)檔案 Exceptionless 與 Exceptionless.UI,
1.開啟Exceptionless 解壓縮后的 wwwroot 目錄里面的 web.confg 檔案,
修改里面的內(nèi)容:
RedisConnectionString: 支持 Redis,如果有的話就可以使用
ElasticSearchConnectionString: 剛剛所安裝的 ElasticSearch 的網(wǎng)址:?http://localhost:9200
BASE_URL:?更改為 Exceptionless.UI Dashboard 網(wǎng)站的網(wǎng)址,例如:http://ui.localexceptionless.com/#
EnableSSL: 是否要使用 SSL,當(dāng)然有 SSL 的話是建議啟用的
WebsiteMode: 如果為在線環(huán)境改使用?Production
Exceptionless:ServerUrl: 更改為 Exceptionless Api 網(wǎng)站的網(wǎng)址,例如: http://api.localexceptionless.com
剩下還有一些設(shè)定,例如 Mail 通知等等,可以視需求進(jìn)行設(shè)定。
2.開啟?Exceptionless.UI解壓縮后目錄里面的 app.config.3869d2f297f52e30ccaa12dc361cdd01.js檔案,
修改里面的內(nèi)容:
BASE_URL:?更改為 Exceptionless Api 網(wǎng)站的網(wǎng)址,例如: http://api.localexceptionless.com
USE_SSL: 是否要使用 SSL,當(dāng)然有 SSL 的話是建議啟用的
在 IIS 中建立兩個(gè)站臺(tái),分別指到 Exceptionless 的 wwwroot 目錄與 Exceptionless.UI 的根目錄。
之后執(zhí)行網(wǎng)站,就會(huì)看到以下兩張圖 (在這步驟因?yàn)槲覜](méi)有IIS8...所以我使用 VS 2015 開啟項(xiàng)目檔執(zhí)行 Api 項(xiàng)目)
建立 Exceptionless 項(xiàng)目
當(dāng)網(wǎng)站架設(shè)完成后,你需要點(diǎn)選 Signup注冊(cè)一個(gè)賬號(hào)進(jìn)入 Exceptionless,登入后畫面如下
在這個(gè)頁(yè)面你要建立一個(gè) Project ,當(dāng) Project 建立完成后會(huì)產(chǎn)生一組 Api Key,這組 Api Key 將會(huì)在Client 端使用到,如下圖
安裝 Client Exceptionless 套件?
到這個(gè)步驟就是要來(lái)使用我們所建置完成的 Log Server,
首先我建立了一個(gè)測(cè)試網(wǎng)站,由于一般開發(fā)我們都會(huì)使用 NLog 作為紀(jì)錄 Log 的第三方套件使用,而 Exceptionless 也擴(kuò)展了 NLog,讓我們可以直接通過(guò)呼叫 NLog 的方法,將 Log 寫入到 Exceptionless 的 Target。
接下來(lái)通過(guò) NuGet 安裝 NLog 與 Exceptionless.NLog,如下圖
再來(lái),建立一個(gè) NLog.config 檔案,內(nèi)容為設(shè)定 Exceptionless 的 Target,如下
? <?xml version="1.0" encoding="utf-8" ?> <nlogxmlns="http://www.nlog-project.org/schemas/NLog.xsd"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> ? <extensions> ??? <addassembly="Exceptionless.NLog" /> ? </extensions> ? <targetsasync="true"> ??? <targetname="exceptionless"xsi:type="Exceptionless"
apiKey="eIH5SgZcaluHIfMRzCg0OW5FUZQQMqmfUDsYSOG0"
serverUrl="http://localhost:50000/"> ????? <fieldname="host"layout="${machinename}" /> ????? <fieldname="identity"layout="${identity}" /> ????? <fieldname="windows-identity"
layout="${windows-identity:userName=True:domain=False}" /> ????? <fieldname="process"layout="${processname}" /> ??? </target> ? </targets> ? <rules> ??? <loggername="*"minlevel="Info"writeTo="exceptionless" /> ? </rules> </nlog>
然后執(zhí)行我的測(cè)試網(wǎng)站,就可以看到以下的結(jié)果:
結(jié)語(yǔ)
以上就是用 Exceptionless 建置 Log Server 的教學(xué),Exceptionless 的 Dashboard 操作起來(lái)還蠻好使用的,也可以依據(jù)條件進(jìn)行塞選,又整合了 NLog,使用上其實(shí)可以很簡(jiǎn)易的加入項(xiàng)目,效能方面的話,Exceptionless我測(cè)試過(guò)寫入 1 千多萬(wàn)筆的 Log 信息,通過(guò) Dashboard 來(lái)查詢的時(shí)候速度都還OK,如果想的話,也可以自己介接他的 API,做自己的 Dashboard,更多的功能就要你自己去探索了喔!!
?相關(guān)文章:
免費(fèi)開源分布式系統(tǒng)日志收集框架 Exceptionless
使用Elasticsearch 與 NEST 庫(kù) 構(gòu)建 .NET 企業(yè)級(jí)搜索
為elasticsearch集成一些實(shí)用插件以及配置的開箱即用的版本
原文地址:https://dotblogs.com.tw/joysdw12/2015/10/01/exceptionle
ss_nlog_log_server
.NET社區(qū)新聞,深度好文,微信中搜索dotNET跨平臺(tái)或掃描二維碼關(guān)注
總結(jié)
以上是生活随笔為你收集整理的使用 Exceptionless 作为 Log Server 搭配 NLog 记录系统日志的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 程序员小测试:保守派 vs 自由派
- 下一篇: 亚马逊如何变成 SOA(面向服务的架构)