監控在重要系統維運是非常重要的一環,隨時注意 網站、服務、伺服器 與 資料庫 運作是否正常。 在ASP.NET Core 2.2 - 3.1 有個相當好用套件 - HealthChecks,讓開發人員可以透過撰寫簡單設定語法建立健康檢查機制,確認目前服務營運是否正常。他支援的服務相當的廣,除了簡單的 WebAPI、SQL Server,還支援 RabbitMQ、Redis、Azure Service Hub、Kafka、MongoDB、Kubernetes、SignalR...等多項服務 (可以參考 AspNetCore.Diagnostics.HealthChecks - GitHub)
本系列文章將逐一介紹
- ASP.NET Core Health Checks 安裝與設定
- ASP.NET Core 透過 Health Checks 監控 SQL Server, WebAPI 與 Redis 健康狀態
- ASP.NET Core 自訂 Health Checks Response
- ASP.NET Core Health Checks UI 圖形化介面呈現服務健康狀態
- ASP.NET Core 透過 Tags 過濾 Health Checks 資訊
- ASP.NET Core 整合 Azure Load Balancer 與 HealthChecks 進行相依服務監控
- ASP.NET Core Health Checks 與 Azure DevOps 整合
- ASP.NET Core Health Checks 監控 Shared folder 狀態
- Youtube -ASP.NET Core Health Checks Case Study - Azure Load Balancer
本系列文章若有錯誤或任何建議,請各位前輩不吝提出,謝謝。
ASP.NET Core Health Checks 安裝與設定
如前所述,Health Checks 目前支援 ASP.NET Core 2.2 -3.1 (本篇文章撰寫時間 2020.12.2),您可以開啟 Visual Studio 2017/2019 > 開新專案 > ASP.NET Core Web Application (Web 應用程式),選擇 MVC 或 Web Application 皆可。
因為 ASP.NET Core 應用程式已經隱含參考 Microsoft.AspNetCore.Diagnostics.HealthChecks 套件,所以我們不需要額外透過 NuGet 管理員安裝額外套件。 (監視部分服務 與 UI 呈現需要額外安裝套件)
開啟 Startup.cs,在 ConfigureServices 方法內 加入
services.AddHealthChecks();
相同檔案內,在 Configure 方法內加入
app.UseEndpoints(endpoints =>
{
endpoints.MapHealthChecks("/health");
});
如下圖所示
接下來啟動網站,輸入網址 /health,即可看見簡單的運作狀態呈現 Healthy (運作正常)。健康狀態有三種:Healthy, Degraded 與 Unhealthy,你可以在 HealthStatus 檢視這個列舉物件,後續我們也會有些自訂方式分享。
理所當然,這是一個最簡單且最基本的運作狀態呈現,在下一篇,我們將加入 SQL Server、WebAPI 與 Redis 進行監控。
0 留言