2019年1月27日 星期日

架設Exceptionless


Exceptionless是一個可以用來收集Log及錯誤訊息的解決方案,是一個開源的專案,使用它已有幾年的時間了,也替換掉了Elmah改使用這個解決方案。

最近需要架設Exceptionless,以前就架過,想說再架應該不會有什麼問題,結果沒想到還是踩到坑了,就寫一下這次的經驗,以後少踩坑

Exceptionless官網上有自行架設站台的說明,裡面提到運行Exceptionless需要的條件有三:

  • .NET 4.7
  • IIS 7.5+
  • ElasticSearch 5.6
.Net 4.7版本可以在官網下載,安裝應該沒什麼問題。
至於IIS 7.5+以上版本,若是win7以上版本應該也沒什麼問題。在安裝時記得把ASP.NET及靜態內容給一併打勾安裝。
安裝ElasticSearch可以參考我的另一篇安裝文章。

在Windows上安裝Elasticsearch

當環境都準備好了後,就可以開始架設Excptionless了。至Excptionless的GitHub網站上下載最新版本,目前版本是4.1.0,雖然版本是2017年9月發佈的,看Issues回文,是在開發新版本好像遇到點問題,但代碼一直有在更新,所以不用擔心。

將下載下來的壓縮檔解壓縮放至想要存放的位置後,首先進入資料內的wwwroot資料夾,然後新增一個名為Logs的資料夾,這是用來存放Exceptionless站台的log,若Exceptionless站台遇到問題,會把Log寫到這個資料夾裡。

然後一樣在wwwroot資料夾內,把剛新增的Logs資料夾及App_Data資料夾新增IIS_IUSRS帳號,並將完全控制打勾。



然後再打開Web.config檔案進行設定
  1. ElasticSearchConnectionString連線位置設定成Elasticsearch的位置
  2. BaseURL設定為本機IP位置,若有網域則建議設為網域位置
  3. 若有SSLEnableSSL設為true
  4. WebsiteMode設為Production
  5. 若要使用Email寄送通知,可以將Email相關設定的註解拿掉,並進行設定

接下來打開APP.config.*.js檔案進行設定,檔名中的*是指檔名是由一組編碼的字串命名的


  1. 設置Base_URL為主機位置,注意後面沒有/#的字段
  2. BaseURL設定為本機IP位置,若有網域則建議設為網域位置

都設定好後,在IIS中新增站台,就可以瀏覽站台了,若看到登入畫面就表示站台架設成功,最後記得註冊一個帳號看看,確定註冊成功後才能確定所有設定正確哦

上面的步驟基本上就可以開始使用Exceptionless了,那我遇到的問題是什麼呢?主要都是在ElasticSearch的部份

  • ElasticSearch記憶體設置錯誤,因為我是用虛擬機直接搬過來的,但虛擬機的記憶體大小設定不同,新的機器記憶體比較小,導致ElasticSearch記憶體設定大於50%導致ElasticSearch一直無法啟動,修改記憶體大小就可以解決。
  • ElasticSearch版本不對,Exceptionless目前不支援ElasticSearch 6以上的版本,當初沒有注意到就直接拿了最新版本過來用,結果無法使用,只好重新下了ElasticSearch5.6版本使用。
  • ElasticSearch我是下載MSI安裝檔進行安裝使用,後來在測試把LOG寫入Exceptionless裡,網頁一直沒有顯示,後來至Logs資料夾裡查看記得,發現index_not_found_exception的錯誤訊息,上網查了下,好像說是ElasticSearch設定沒有自動新增index,雖然不清楚為什麼,因為ElasticSearch預設會自動新增Index後來參考Exceptionless內附的elasticsearch.yml檔案,新增了以下一行就解決了
action.auto_create_index: .security,.monitoring*,.watches,.triggered_watches,.watcher-history*

總之最後解決完問題後就正常使用Exceptionless了,希望這次經驗以後不要再遇到

最後再補充一個使用Exceptionless很可能遇到的問題,若是在註冊帳號時,一直出現以下訊息的話

A User already exists with this email address.

請先檢查ElasticSearch的設定是否正確,會出現此訊息指的就是Exceptionless沒有連到ElasticSearch,所以無法查找帳號是否已存在,問題大多在ElasticSearch沒有設定正確。

沒有留言:

張貼留言