共用方式為


Syslog 中的 Service Fabric Linux 叢集事件

Service Fabric 會公開一組平台事件,以通知您叢集中的重要活動。 此處有完整的公開事件清單。 取用這些事件的方式有很多種。 我們將在本文中討論如何設定 Service Fabric 來將這些事件寫入 Syslog。

簡介

在 6.4 版中,已引入 SyslogConsumer 將 Service Fabric 平台事件傳送至 Linux 叢集的 Syslog。 一旦開啟,事件就會自動流向 Syslog,並由 Log Analytics 代理程式收集及傳送。

每個 Syslog 事件有 4 個元件

  • 設施
  • 身分識別
  • 訊息
  • 嚴重性

SyslogConsumer 會使用 Local0 設施 (Facility) 寫入所有平台事件。 您可以藉由變更組態設定來更新為任何有效的設施。使用的身分識別是 ServiceFabric。 [訊息] 欄位會包含整個以 JSON 序列化的事件,以便各種工具查詢及取用。

啟用 SyslogConsumer

若要啟用 SyslogConsumer,您需要執行叢集升級。 fabricSettings 區段必須以下列程式碼更新。 請注意,此程式碼只會包含與 SyslogConsumer 相關的區段

    "fabricSettings": [
        {
            "name": "Diagnostics",
            "parameters": [
            {
                "name": "ConsumerInstances",
                "value": "AzureWinFabCsv, AzureWinFabCrashDump, AzureTableWinFabEtwQueryable, SyslogConsumer"
            }
            ]
        },
        {
            "name": "SyslogConsumer",
            "parameters": [
            {
                "name": "ProducerInstance",
                "value": "WinFabLttProducer"
            },
            {
            "name": "ConsumerType",
            "value": "SyslogConsumer"
            },
            {
                "name": "IsEnabled",
                "value": "true"
            }
            ]
        },
        {
            "name": "Common",
            "parameters": [
            {
                "name": "LinuxStructuredTracesEnabled",
                "value": "true"
            }
            ]
        }
    ],

以下是需要留意的變更

  1. 在 [一般] 區段中,有一個稱為 [LinuxStructuredTracesEnabled] 的新參數。 將 Linux 事件傳送給 Syslog 時,需要此參數才能將事件結構化及序列化。
  2. 在 [診斷] 區段中,已新增新的 ConsumerInstance: SyslogConsumer。 這會告訴平台有其他事件取用者。
  3. 新的 SyslogConsumer 區段必須將 IsEnabled 設為 true。 會自動將其設定為使用 Local0 設施。 您可以藉由新增另一個參數來覆寫此設定。
    {
        "name": "New LogFacility",
        "value": "<Valid Syslog Facility>"
    }

Azure 監視器記錄整合

您可以在監視工具 (例如 Azure 監視器記錄) 中讀取這些 Syslog 事件。 您可以使用 Azure Marketplace,透過這些指示來建立 Log Analytics 工作區。

您也需要將 Log Analytics 代理程式新增至叢集,以收集和傳送此資料至工作區。 這是用來收集效能計數器的相同代理程式。

  1. 瀏覽至 Advanced Settings 區段

    工作區設定

  2. 選取 Data

  3. 選取 Syslog

  4. 將 Local0 設定要追蹤的設施。您可以在 fabricSettings 中進行變更,以新增另一個設施

    設定 Syslog

  5. 按一下工作區資源功能表中的 Logs,即可前往 [查詢總管] 來開始查詢

    工作區記錄

  6. 您可以根據 Syslog 資料表進行查詢,尋找作為 ProcessName 的 ServiceFabric。 下列查詢是如何剖析事件中的 JSON 並顯示其內容的範例

    Syslog | where ProcessName == "ServiceFabric" | extend $payload = parse_json(SyslogMessage) | project $payload

Syslog 查詢

上述範例中是 NodeDown 事件。 您可以在此處檢視完整的事件清單。

下一步