部署用于生产的Exceptionlees(一个强大易用的日志收集服务)
Exceptionless簡介
Exceptionless從翻譯來看是無異常的意思,其實(shí)它收集了很多異常信息。
大家可以把他看做事一個(gè)非常好用的日志收集服務(wù)。
還提供了,多組織、多項(xiàng)目。
它是一個(gè)開源項(xiàng)目,作者也非常的熱心,項(xiàng)目地址
https://github.com/exceptionless/Exceptionless
UI截圖
我們還通過了webhook將異常發(fā)送至釘釘進(jìn)行實(shí)時(shí)通知
這也是一個(gè)開源項(xiàng)目,項(xiàng)目地址為:
https://github.com/RabbitTeam/exceptionless-webhooks
支持的技術(shù)
.NET/.NET Core
JavaScript
NodeJs
部署要求
.NET4.7
IIS 7.5+
ElasticSearch 5.6
Redis
關(guān)于這些要求大家自行搜索部署,本文不做介紹。
Exceptionless結(jié)構(gòu)
WebUI
WebAPI
BackgroundTask
Exceptionless 由3個(gè)部分組成,分別是:可視化的UI視圖,WebAPI(主要用于程序發(fā)送日志和提供WebUI所需接口),后臺任務(wù)(發(fā)送日志到es,跑webhook等)
本文會(huì)將這三個(gè)東西部署在一起。(機(jī)器有限,還有我們認(rèn)為日志不是那么的重要,一般也很少宕機(jī))
部署步驟
下載程序包
https://github.com/exceptionless/Exceptionless/releases
包內(nèi)的wwwroot就是程序文件了
按需配置
配置文件
Web.config
app.config.*.js
為什么有兩個(gè)配置文件?因?yàn)槲覀冎罢f過WebUI和WebAPI從結(jié)構(gòu)上是兩個(gè)不同的應(yīng)用。(前后端分離)
所以我們需要對兩個(gè)不同的東西單獨(dú)配置。
Web.config
基本配置
RedisConnectionString
用于持久化狀態(tài)的redis連接串
例:10.10.10.82:6379,defaultDatabase=1
ElasticSearchConnectionString
es的地址,如是集群可逗號分隔
例:http://10.10.10.231:9200,http://10.10.10.232:9200
BaseURL
exceptionless基礎(chǔ)url
EnableSSL
是否啟用ssl
WebsiteMode
有三個(gè)值
Dev
QA
Production
顧名思義選Production就好了,主要是郵件發(fā)送的限制。
郵件發(fā)件配置
SmtpHost
SmtpPort
SmtpEncryption
SmtpUser
SmtpFrom
SmtpPassword
這段不解釋了。
高級設(shè)置
RunJobsInProcess
是否運(yùn)行后臺任務(wù),理論上應(yīng)該是false,但便捷起見我們沒有單獨(dú)跑后臺任務(wù),所以這邊設(shè)了true,等以后撐不住了再把后臺任務(wù)分出來。
ElasticSearchNumberOfShards
es切片數(shù),具體看es相關(guān)的說明,官方建議設(shè)置成 3.
ElasticSearchNumberOfReplicas
es副本數(shù)(備份),官方建議設(shè)置成 1.
EnableArchive
這個(gè)屬性文檔上面沒有寫(默認(rèn)為true),默認(rèn)Exceptionless會(huì)把接收到的事件信息進(jìn)行本地化IO存儲,路徑是(StorageFolder的配置項(xiàng),默認(rèn)為:App_Data\storage)
這樣你會(huì)發(fā)現(xiàn)server上的硬盤占用非常的大,優(yōu)于這些事件信息我們認(rèn)為沒那么重要所以設(shè)成了false,好處是減輕了IO壓力,壞處是極端情況下會(huì)丟失事件數(shù)據(jù)(像es發(fā)送數(shù)據(jù)失敗)
這個(gè)有點(diǎn)像緩沖區(qū)的概念,exceptionless不會(huì)每接收到一條事件就去寫DB(es),而是通過一個(gè)后臺任務(wù)批量的寫一批到es。
app.config.*.js
BASE_URL
和Web.config的BaseURL一致即可
USE_SSL
和Web.config的EnableSSL一致即可
加速靜態(tài)資源
exceptionless是歪果仁開發(fā)的,所以使用了一些國外的cdn資源,但這些資源在國內(nèi)訪問是非常慢的,而且還有被墻,比如 google fonts。
這時(shí)候就需要把這些資源替換成國內(nèi)高速可用的cdn資源。
這邊推薦一個(gè)國內(nèi)的前端靜態(tài)資源庫
https://cdn.baomitu.com/
大家把這些資源在上面的網(wǎng)站上搜索,進(jìn)行替換就好了。
注意還有 google fonts。
部署wwwroot
將wwwroot拷貝到服務(wù)器上,在IIS上創(chuàng)建一個(gè)web即可(相關(guān)文件權(quán)限記得開)
寫在最后
這樣一個(gè)可以用于生產(chǎn)的exceptionless就搭建完成了。
其中有幾個(gè)步驟官方文檔描述的不詳細(xì),這邊在強(qiáng)調(diào)下
ElasticSearchConnectionString(多個(gè)es服務(wù)器以 ‘,’ 分隔)
EnableArchive(如果以默認(rèn)值true,過段時(shí)間你會(huì)發(fā)現(xiàn)服務(wù)器的硬盤增長的非常快,exceptionless不會(huì)自動(dòng)刪除)
加速靜態(tài)資源(如果不做這步你會(huì)發(fā)現(xiàn)打開exceptionless的ui非常的慢)
.NET技術(shù)棧QQ群:384413261(點(diǎn)擊加入?.NET Group)
相關(guān)文章:
免費(fèi)開源分布式系統(tǒng)日志收集框架 Exceptionless
使用 Exceptionless 作為 Log Server 搭配 NLog 記錄系統(tǒng)日志
使用Elasticsearch 與 NEST 庫 構(gòu)建 .NET 企業(yè)級搜索
為elasticsearch集成一些實(shí)用 插件以及配置的開箱即用的版本
Exceptionless 本地部署
ExceptionLess新玩法 — 記日志
.NET Exceptionless 日志收集框架本地環(huán)境搭建
原文地址:https://www.cnblogs.com/ants/p/8580890.html?
.NET社區(qū)新聞,深度好文,歡迎訪問公眾號文章匯總 http://www.csharpkit.com
總結(jié)
以上是生活随笔為你收集整理的部署用于生产的Exceptionlees(一个强大易用的日志收集服务)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Visual Studio 2017 1
- 下一篇: 如何看待微软新开源的Service Fa