你可以在 Azure 監視器 中使用診斷設定收集 resource logs,並將 platform metrics 以及 activity log 傳送到各個目的地。 為你想收集資料的每個資源建立獨立的診斷設定。 每個設定都會定義要收集的資源數據,以及要傳送該數據的目的地。 本文說明診斷設定的詳細數據,包括如何建立診斷設定,以及可用來傳送數據的目的地。
圖示顯示活動日誌、資源日誌及平台指標的集合。
下列影片逐步示範如何使用診斷設定來路由資源平台記錄。 自從錄製影片之後,已對診斷設定進行下列變更,但本文會討論這些主題。
- Azure 監視器 夥伴
- 類別群組
Warning
如果您刪除或重新命名該資源,或跨資源群組或訂用帳戶移轉資源,請刪除資源的任何診斷設定。 如果診斷設定沒有被移除且該資源被重新建立,刪除資源的任何診斷設定可能會套用到新的資源上。 對於某些資源類型,這種情況將重新開始收集依診斷設定中定義的資源日誌。
Sources
診斷設定可以從下表中的來源收集數據。 關於每個來源收集的資料及其在每個目的地的格式,請參閱連結文章。
| 數據源 | Description |
|---|---|
| 平台計量 | 不需設定即可自動收集。 使用診斷設定將平台指標傳送到其他目的地。 |
| 活動記錄檔 | 不需設定即可自動收集。 使用診斷設定將活動日誌條目傳送到其他目的地。 |
| 資源日誌 | 預設不會收集。 建立診斷設定以收集資源記錄。 |
Destinations
診斷設定會將數據傳送至下表中的目的地。 為確保傳輸中資料的安全,所有目的地端點皆配置支援 TLS 1.2。
單一診斷設定最多只能定義每個目的地的一個。 如果你想將資料傳送到多個特定目的地類型(例如兩個 Log Analytics 工作區),請建立多個設定。 每個資源最多可以有五個診斷設定。
診斷設定使用的任何目的地都必須存在,才能建立該設定。 如果設定的使用者對這兩個訂閱具有適當的 Azure 角色型存取控制(RBAC)權限,那麼目的地不必與傳送記錄的來源位於同一個訂閱中。 使用 Azure Lighthouse 將目標納入另一個 Microsoft Entra 租戶。
| Destination | Description | Requirements |
|---|---|---|
| Log Analytics工作空間 | 透過日誌 查詢 和 工作簿來檢索資料。 使用 日誌警示 來主動警示資料。 關於各種Azure資源使用的表格,請參見 Azure 監視器資源日誌參考。 | Log Analytics 工作區中的任何資料表會在第一筆資料傳送到工作區時自動建立,因此只需工作區本身存在。 |
| Azure 儲存體 account | 儲存以供稽核、靜態分析或備份。 儲存可能比其他選項便宜,且可以無限期保存。 將數據傳送至不可變的記憶體,以防止其修改。 請依照 「為 blob 版本配置不變性政策」中描述,為儲存帳號設定不可變政策。 | 如果資源是區域性的,儲存帳號必須與你監控的資源處於同一區域。 啟用虛擬網路時,診斷設定無法存取儲存體帳戶。 您必須啟用 Allow trusted Microsoft services 才能繞過儲存帳號中的防火牆設定,讓Azure 監視器診斷設定服務獲得您的儲存帳號存取權。 Azure DNS 區域端點(預覽版) 以及任何 Premium 儲存帳號 都不被支援作為目的地。 支援任何 標準記憶體帳戶 。 |
| Azure 事件中樞 | 將資料串流至外部系統,如非 Microsoft 的安全資訊與事件管理(SIEM)解決方案及其他 Log Analytics 解決方案。 | 如果資源是區域性的,事件樞紐必須與你監控的資源在同一區域內。 你不能用 compacted event hub,因為它要求訊息有分割鍵,而 Azure 監視器 沒有包含分割鍵。 啟用虛擬網路時,診斷設定無法存取事件中樞。 您必須啟用 Allow trusted Microsoft services 才能繞過事件集線中心的防火牆設定,讓Azure 監視器診斷設定服務能存取您的活動中心資源。 Event Hubs 命名空間的共享存取政策定義了串流機制所擁有的權限。 串流到活動中心需要 、 和 權限。 若要更新診斷設定以包含串流,您必須擁有 該事件中樞授權規則的許可權。 |
| Azure 監視器 合作夥伴解決方案 | Azure 監視器 與其他非 Microsoft 監控平台之間可進行專門整合。 解決方案會因合作夥伴而有所不同。 | 詳情請參閱 Azure Native ISV Services 文件。 |
建立診斷環境的方法
您可以使用以下任一方法建立診斷設定。
若要使用 Azure 入口網站建立活動日誌的診斷設定,請參見 Export 活動日誌。 若要建立管理群組的診斷設定,請參閱 管理群組診斷設定。
- Azure portal
- PowerShell
- CLI
- ARM (JSON)
- Bicep
- REST API
請使用以下步驟建立新的診斷設定,或在 Azure 入口網站中編輯現有的:
在資源選單中, 監控區塊 中選擇 診斷設定。 或者,在Azure 監視器選單中選擇Settings>Diagnostic settings。 然後選擇資源。
選擇 新增診斷設定 以新增設定,或選擇 編輯 設定以編輯現有設定。
如果想傳送到多個相同類型的目的地,您可能需要為資源設定多個診斷設定。 下列範例顯示金鑰保存庫資源的設定,但畫面與其他資源類似。
顯示為現有設定新增診斷設定的螢幕快照。
如果您的設定還沒有描述性名稱,請提供該名稱。
顯示診斷設定詳細數據的螢幕快照。
這張截圖展示了一個範例的金鑰保險庫。 其他類型的資源則有不同的分類。
對於 日誌,請選擇分類 群組 ,或為每個想傳送到目的地的資料類別選擇個別的勾選框。 每個 Azure 服務的類別列表會有所不同。
對於 指標,如果你想收集平台指標,請選擇 AllMetrics 。
關於 目的地詳細資訊,請在診斷設定中勾選您要包含的每個目的地選項。 然後提供每個目的地的詳細資訊。
如果你選擇 Log Analytics 工作區作為目的地,可能需要指定收集模式。 詳情請參見 收藏模式。
Warning
當你為儲存帳號或事件中心命名空間建立或更新診斷設定時,你無法選擇該帳號或命名空間作為資源日誌或指標資料的目的地。 此限制為設計使然。 將資源日誌或指標從一個資源傳送到同一資源,會產生無限循環的產生與寫入資料。
此設計僅適用於 Azure 入口網站的使用者體驗層。 如果真的需要將資料寫入同一資源,且你願意承擔相關風險,你可以使用 Azure PowerShell、Azure CLI、REST API、Resource Manager 範本或支援的 Microsoft SDK 來建立診斷設定。
類別群組
您可以使用 類別群組 ,根據預先定義的群組來收集資源記錄,而不是選取個別記錄類別。 Microsoft會定義群組,以協助監視常見的使用案例。 如果群組中的類別已更新,則會自動修改您的記錄集合。
並非所有 Azure 服務都使用類別群組。 如果某個資源沒有類別群組,建立診斷設定時這個選項就不會出現。
如果您在診斷設定中使用類別群組,則無法選取個別類別類型。 目前有兩個類別群組:
- :資源的所有分類。
- :所有記錄客戶與資料互動或服務設定的資源日誌。 如果你選擇了這個分類群組,就不需要選擇其他分類群組。
Note
在診斷設定中啟用 audit 類別Azure SQL Database不會啟動資料庫的稽核。 要啟用資料庫稽核,必須從 Azure SQL Database 的稽核窗格啟用。
指標限制
並非所有指標都能傳送到帶有診斷設定的 Log Analytics 工作空間。 請參閱支援指標清單中的 [可匯出] 欄。
診斷設定目前不支援多維度指標。 具有維度的計量指標會被匯出為簡化的單一維度計量指標,並在維度值上進行聚合。 例如, 區塊鏈上的指標可以在每個節點層級進行探索與繪製。 當指標匯出並搭配診斷設定時,會顯示所有節點的所有讀取位元組。
為了繞過特定指標的限制,你可以使用 Metrics REST API 手動擷取。 接著你可以使用 Logs Ingestion API 將它們匯入Log Analytics工作區。
控制成本
診斷設定收集的資料可能會有成本。 費用取決於你選擇的目的地以及收集的資料量。 更多資訊請參閱 Azure 監視器 價格。
只收集您每項服務所需的類別。 你也可能不想從Azure資源收集平台指標,因為這些資料已經以 Metrics 形式收集。 請將診斷資料設定為僅在您需要工作區中的指標資料以使用查詢記錄進行更複雜分析時,才收集指標。
診斷設定不允許在選取的類別內進行細微篩選。 你可以透過轉換來篩選 Log Analytics 工作區中支援的資料表資料。 詳情請參見 Azure 監視器 中的轉換。
資料到達目的地前的時間
建立診斷設定之後,數據應該會在90分鐘內開始流向選取的目的地。 當你將資料傳送到 Log Analytics 工作區時,如果資料表尚未存在,該資料表會自動建立。 該表格僅在目的地收到第一批日誌記錄時建立。
如果24小時內沒有收到任何消息,你可能正經歷以下其中一種問題:
- 未產生任何記錄。
- 基礎路由機制發生錯誤。
試著停用設定再重新啟用。 如果問題持續,請透過 Azure 入口網站聯絡 Azure 支援。
Application Insights
請參考以下資訊,作為 Application Insights 應用程式的診斷設定:
- 目的地不能是你 Application Insights 資源所依賴的 Log Analytics 工作空間。
- Application Insights 使用者無法同時存取兩個工作區。 將 Log Analytics 存取控制模式設為 需要工作區權限。 透過 Azure RBAC,確保使用者只能存取 Application Insights 資源所依據的Log Analytics工作區。
這些步驟是必要的,因為 Application Insights 能跨資源存取資料,提供完整的端到端交易操作與精確的應用地圖。 這些資源包括 Log Analytics 工作區。 由於診斷日誌使用相同的資料表名稱,若使用者能存取多個包含相同資料的資源,可能會出現重複資料。
Troubleshooting
不支援度量衡類別
當你使用 Resource Manager 範本、REST API、Azure CLI 或 Azure PowerShell 時,可能會收到類似「Metric category 'xxxx' 不支援」的錯誤訊息。 除了AllMetrics外,其他指標類別不被支援,僅支援有限數量的Azure服務。 移除除 以外的任何計量類別名稱,並重複部署。
由於資源 ID 中出現非 ASCII 字元,設定會消失
診斷設定不支援非 ASCII 字元的資源 ID(例如 Preproduccón)。 因為 Azure 無法重新命名資源,你必須建立一個不含非 ASCII 字元的新資源。 如果字元位於資源群組中,您可以將資源移至新的群組。
資源處於非使用中狀態
當資源處於非活動狀態並匯出零值指標時,診斷設定的匯出機制會逐步退後,以避免匯出與儲存零值的不必要成本。 這種退縮可能導致下一個非零值的匯出延遲。 此行為僅適用於匯出的指標,不影響基於指標的警示或自動調整。
當資源處於非使用中狀態一小時,匯出機制會退避為 15 分鐘。 這種情況意味著下一個非零值的匯出可能有多達 15 分鐘的延遲。 資源在七天不活動後,會達到兩小時的後退時間上限。 當資源開始匯出非零值時,匯出機制會回復到原本的三分鐘匯出延遲。