Exceptionless是一個很是優秀的事件記錄服務,目前咱們的自部署的Exceptionless已經穩定運行了近一年的時間,收集了千萬條事件信息。但Exceptionless官方自宿主部署的文檔不是很是詳細(不知道是否是爲了保證雲訂閱)。今天就來詳細介紹下用於生成環境的Exceptionless部署事項。前端
Exceptionless從翻譯來看是無異常的意思,其實它收集了不少異常信息。git
你們能夠把他看作事一個很是好用的日誌收集服務。github
還提供了,多組織、多項目。web
它是一個開源項目,做者也很是的熱心,項目地址redis
https://github.com/exceptionless/Exceptionless後端
咱們還經過了webhook將異常發送至釘釘進行實時通知服務器
這也是一個開源項目,項目地址爲:app
https://github.com/RabbitTeam/exceptionless-webhooksless
關於這些要求你們自行搜索部署,本文不作介紹。前後端分離
Exceptionless 由3個部分組成,分別是:可視化的UI視圖,WebAPI(主要用於程序發送日誌和提供WebUI所需接口),後臺任務(發送日誌到es,跑webhook等)
本文會將這三個東西部署在一塊兒。(機器有限,還有咱們認爲日誌不是那麼的重要,通常也不多宕機)
https://github.com/exceptionless/Exceptionless/releases
包內的wwwroot就是程序文件了
配置文件
爲何有兩個配置文件?由於咱們以前說過WebUI和WebAPI從結構上是兩個不一樣的應用。(先後端分離)
因此咱們須要對兩個不一樣的東西單獨配置。
RedisConnectionString
用於持久化狀態的redis鏈接串
例:10.10.10.82:6379,defaultDatabase=1
ElasticSearchConnectionString
es的地址,如是集羣可逗號分隔
例:http://10.10.10.231:9200,http://10.10.10.232:9200
BaseURL
exceptionless基礎url
EnableSSL
是否啓用ssl
WebsiteMode
有三個值
Dev
QA
Production
顧名思義選Production就行了,主要是郵件發送的限制。
SmtpHost
SmtpPort
SmtpEncryption
SmtpUser
SmtpFrom
SmtpPassword
這段不解釋了。
RunJobsInProcess
是否運行後臺任務,理論上應該是false,但便捷起見咱們沒有單獨跑後臺任務,因此這邊設了true,等之後撐不住了再把後臺任務分出來。
ElasticSearchNumberOfShards
es切片數,具體看es相關的說明,官方建議設置成 3.
ElasticSearchNumberOfReplicas
es副本數(備份),官方建議設置成 1.
EnableArchive
這個屬性文檔上面沒有寫(默認爲true),默認Exceptionless會把接收到的事件信息進行本地化IO存儲,路徑是(StorageFolder的配置項,默認爲:App_Data\storage)
這樣你會發現server上的硬盤佔用很是的大,優於這些事件信息咱們認爲沒那麼重要因此設成了false,好處是減輕了IO壓力,壞處是極端狀況下會丟失事件數據(像es發送數據失敗)
這個有點像緩衝區的概念,exceptionless不會每接收到一條事件就去寫DB(es),而是經過一個後臺任務批量的寫一批到es。
BASE_URL
和Web.config的BaseURL一致便可
USE_SSL
和Web.config的EnableSSL一致便可
exceptionless是歪果仁開發的,因此使用了一些國外的cdn資源,但這些資源在國內訪問是很是慢的,並且還有被牆,好比 google fonts。
這時候就須要把這些資源替換成國內高速可用的cdn資源。
這邊推薦一個國內的前端靜態資源庫
你們把這些資源在上面的網站上搜索,進行替換就行了。
注意還有 google fonts。
將wwwroot拷貝到服務器上,在IIS上建立一個web便可(相關文件權限記得開)
這樣一個能夠用於生產的exceptionless就搭建完成了。
其中有幾個步驟官方文檔描述的不詳細,這邊在強調下
ElasticSearchConnectionString(多個es服務器以 ‘,’ 分隔)
EnableArchive(若是以默認值true,過段時間你會發現服務器的硬盤增加的很是快,exceptionless不會自動刪除)
加速靜態資源(若是不作這步你會發現打開exceptionless的ui很是的慢)
.NET技術棧QQ羣:384413261(點擊加入 .NET Group)