Udostępnij za pośrednictwem


Zdarzenia klastra systemu Linux usługi Service Fabric w dzienniku systemowym

Usługa Service Fabric uwidacznia zestaw zdarzeń platformy, które informują o ważnych działaniach w klastrze. Pełna lista uwidocznionych zdarzeń jest dostępna tutaj. Istnieją różne sposoby korzystania z tych zdarzeń. W tym artykule omówiono sposób konfigurowania usługi Service Fabric w celu zapisywania tych zdarzeń w usłudze Syslog.

Wprowadzenie

W wersji 6.4 system SyslogConsumer został wprowadzony w celu wysyłania zdarzeń platformy Service Fabric do usługi Syslog dla klastrów systemu Linux. Po włączeniu zdarzenia automatycznie przepływają do dziennika systemowego, które można zbierać i wysyłać przez agenta usługi Log Analytics.

Każde zdarzenie syslog ma cztery składniki

  • Pomieszczenie
  • Tożsamość
  • Komunikat
  • Ważność

SyslogConsumer zapisuje wszystkie zdarzenia platformy przy użyciu obiektu Local0. Możesz przeprowadzić aktualizację do dowolnego prawidłowego obiektu, zmieniając konfigurację. Używana tożsamość to ServiceFabric. Pole Komunikat zawiera całe zdarzenie serializowane w formacie JSON, dzięki czemu może być odpytywane i używane przez różne narzędzia.

Włączanie programu SyslogConsumer

Aby włączyć program SyslogConsumer, należy przeprowadzić uaktualnienie klastra. Sekcja fabricSettings musi zostać zaktualizowana przy użyciu następującego kodu. Należy pamiętać, że ten kod zawiera tylko sekcje związane z programem 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"
            }
            ]
        }
    ],

Oto zmiany, które należy wywołać

  1. W sekcji Common (Wspólne) znajduje się nowy parametr o nazwie LinuxStructuredTracesEnabled. Jest to wymagane, aby zdarzenia systemu Linux miały strukturę i serializację podczas wysyłania do usługi Syslog.
  2. W sekcji Diagnostyka dodano nowy element ConsumerInstance: SyslogConsumer. Informuje to platformę, że istnieje inny konsument zdarzeń.
  3. Nowa sekcja SyslogConsumer musi mieć IsEnabled wartość true. Jest ona skonfigurowana do automatycznego używania obiektu Local0. Można to zastąpić, dodając inny parametr.
    {
        "name": "New LogFacility",
        "value": "<Valid Syslog Facility>"
    }

Integracja dzienników usługi Azure Monitor

Te zdarzenia dziennika systemu można odczytać w narzędziu do monitorowania, takim jak dzienniki usługi Azure Monitor. Obszar roboczy usługi Log Analytics można utworzyć przy użyciu witryny Azure Marketplace, korzystając z tych instrukcji.

Należy również dodać agenta usługi Log Analytics do klastra, aby zebrać i wysłać te dane do obszaru roboczego. Jest to ten sam agent używany do zbierania liczników wydajności.

  1. Przejdź do Advanced Settings sekcji

    Ustawienia obszaru roboczego

  2. Wybierz pozycję Data

  3. Wybierz pozycję Syslog

  4. Skonfiguruj wartość Local0 jako obiekt do śledzenia. Możesz dodać kolejny obiekt, jeśli zmieniono go w sieci szkieletowejUstawienia

    Konfigurowanie dziennika systemowego

  5. Przejdź do Eksploratora zapytań, klikając Logs menu zasobu obszaru roboczego, aby rozpocząć wykonywanie zapytań

    Dzienniki obszaru roboczego

  6. Możesz wykonać zapytanie względem Syslog tabeli, której szukasz ServiceFabric jako ProcessName. Poniższe zapytanie jest przykładem analizowania kodu JSON w zdarzeniu i wyświetlania jego zawartości

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

Zapytanie syslog

Powyższy przykład dotyczy zdarzenia NodeDown. Pełną listę zdarzeń można wyświetlić tutaj.

Następne kroki