Freigeben über


Service Fabric-Linux-Clusterereignisse in Syslog

Service Fabric stellt eine Reihe von Plattformereignissen zur Verfügung, um Sie über wichtige Aktivitäten in Ihrem Cluster zu informieren. Die vollständige Liste der Ereignisse, die bereitgestellt werden, finden Sie hier. Es gibt verschiedene Möglichkeiten, diese Ereignisse zu nutzen. In diesem Artikel wird erläutert, wie Sie Service Fabric so konfigurieren, dass diese Ereignisse in Syslog geschrieben werden.

Einführung

In Release 6.4 wurde SyslogConsumer eingeführt, um die Ereignisse der Service Fabric-Plattform für Linux-Cluster an Syslog zu senden. Nach der Aktivierung werden Ereignisse automatisch an Syslog weitergeleitet, die vom Log Analytics-Agent erfasst und gesendet werden können.

Jedes Syslog-Ereignis besteht aus 4 Komponenten.

  • Facility
  • Identity
  • `Message`
  • severity

SyslogConsumer schreibt alle Plattformereignisse mithilfe von Facility Local0. Sie können auf jede gültige Einstellung aktualisieren, indem Sie die Konfiguration ändern. Die verwendete Identität ist ServiceFabric. Das Feld „Message“ enthält das gesamte Ereignis (im JSON-Format serialisiert), sodass es abgefragt und von verschiedenen Tools genutzt werden kann.

Aktivieren von SyslogConsumer

Um SyslogConsumer zu aktivieren, müssen Sie ein Upgrade Ihres Clusters ausführen. Der Abschnitt fabricSettings muss mit dem folgenden Code aktualisiert werden. Beachten Sie, dass dieser Code nur Abschnitte umfasst, die im Zusammenhang mit SyslogConsumer stehen.

    "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"
            }
            ]
        }
    ],

Die folgenden Änderungen sind zu beachten:

  1. Im Abschnitt „Common“ gibt es einen neuen Parameter namens LinuxStructuredTracesEnabled. Dieser ist erforderlich, damit Linux-Ereignisse strukturiert und serialisiert vorliegen, wenn sie an Syslog gesendet werden.
  2. Im Abschnitt „Diagnostics“ wurde ein neues Element „ConsumerInstance: SyslogConsumer“ hinzugefügt. Dadurch wird die Plattform informiert, dass ein anderer Consumer der Ereignisse vorhanden ist.
  3. Der neue Abschnitt „SyslogConsumer“ muss IsEnabled mit dem Wert true enthalten. Die Konfiguration sieht vor, dass die Local0-Facility automatisch verwendet wird. Sie können dies außer Kraft setzen, indem Sie einen anderen Parameter hinzufügen.
    {
        "name": "New LogFacility",
        "value": "<Valid Syslog Facility>"
    }

Integration von Azure Monitor-Protokollen

Sie können diese Syslog-Ereignisse in einem Überwachungstool wie Azure Monitor-Protokolle lesen. Sie können einen Log Analytics-Arbeitsbereich mithilfe des Azure Marketplace anhand dieser Anweisungen erstellen.

Sie müssen auch den Log Analytics-Agent zu Ihrem Cluster hinzufügen, um diese Daten zu sammeln und an den Arbeitsbereich zu senden. Dies ist der gleiche Agent, der verwendet wird, um Leistungsindikatoren zu erfassen.

  1. Navigieren Sie zum Abschnitt Advanced Settings.

    Arbeitsbereichseinstellungen

  2. Wählen Sie Data aus.

  3. Wählen Sie Syslog aus.

  4. Konfigurieren Sie Local0 als die nachzuverfolgende Facility. Sie können eine andere Facility hinzufügen, wenn Sie diese in fabricSettings geändert haben.

    Konfigurieren von Syslog

  5. Wechseln Sie zum Abfrage-Explorer, indem Sie im Menü der Arbeitsbereichsressource auf Logs klicken, um die Abfrage zu starten.

    Arbeitsbereichsprotokolle

  6. Sie können die Tabelle Syslog abfragen, um nach ServiceFabric als Prozessname zu suchen. Die folgende Abfrage ist ein Beispiel dafür, wie Sie den JSON-Code im Ereignis analysieren und seinen Inhalt anzeigen können.

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

Syslog-Abfrage

Das Beispiel oben ist ein NodeDown-Ereignis. Die vollständige Liste der Ereignisse können Sie hier anzeigen.

Nächste Schritte