Delen via


Service Fabric Linux-cluster gebeurtenissen in Syslog

Service Fabric maakt een set platformevenementen beschikbaar om u te informeren over belangrijke activiteiten in uw cluster. De volledige lijst met weergegeven gebeurtenissen is hier beschikbaar. Er zijn verschillende manieren waarop deze gebeurtenissen kunnen worden gebruikt. In dit artikel bespreken we hoe u Service Fabric configureert om deze gebeurtenissen naar Syslog te schrijven.

Inleiding

In de release 6.4 werd syslogConsumer geïntroduceerd om de Service Fabric-platformgebeurtenissen te verzenden naar Syslog voor Linux-clusters. Zodra dit is ingeschakeld, stromen gebeurtenissen automatisch naar Syslog die kunnen worden verzameld en verzonden door de Log Analytics-agent.

Elke Syslog-gebeurtenis heeft vier onderdelen

  • Faciliteit
  • Identiteit
  • Bericht
  • Ernst

De SyslogConsumer schrijft alle platformevenementen met behulp van Facility Local0. U kunt bijwerken naar elke geldige faciliteit door de configuratie te wijzigen. De gebruikte identiteit is ServiceFabric. Het veld Bericht bevat de hele gebeurtenis die in JSON is geserialiseerd, zodat deze kan worden opgevraagd en gebruikt door verschillende hulpprogramma's.

SyslogConsumer inschakelen

Als u SyslogConsumer wilt inschakelen, moet u een upgrade van uw cluster uitvoeren. De fabricSettings sectie moet worden bijgewerkt met de volgende code. Houd er rekening mee dat deze code alleen secties bevat met betrekking tot 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"
            }
            ]
        }
    ],

Hier volgen de wijzigingen die moeten worden aangeroepen

  1. In de sectie Algemeen is er een nieuwe parameter met de naam LinuxStructuredTracesEnabled. Dit is vereist om Linux-gebeurtenissen gestructureerd en geserialiseerd te hebben wanneer ze naar Syslog worden verzonden.
  2. In de sectie Diagnostische gegevens is een nieuwe ConsumerInstance toegevoegd: SyslogConsumer. Dit vertelt het platform dat er een andere consument van de gebeurtenissen is.
  3. De nieuwe sectie SyslogConsumer moet IsEnabled als true. Het is geconfigureerd om de Local0-faciliteit automatisch te gebruiken. U kunt dit overschrijven door een andere parameter toe te voegen.
    {
        "name": "New LogFacility",
        "value": "<Valid Syslog Facility>"
    }

Integratie van Azure Monitor-logboeken

U kunt deze Syslog-gebeurtenissen lezen in een bewakingsprogramma, zoals Azure Monitor-logboeken. U kunt een Log Analytics-werkruimte maken met behulp van Azure Marketplace met behulp van deze instructies.

U moet ook de Log Analytics-agent toevoegen aan uw cluster om deze gegevens te verzamelen en naar de werkruimte te verzenden. Dit is dezelfde agent die wordt gebruikt voor het verzamelen van prestatiemeteritems.

  1. Ga naar de Advanced Settings sectie

    Werkruimte-instellingen

  2. Selecteer Data

  3. Selecteer Syslog

  4. Configureer Local0 als faciliteit om bij te houden. U kunt een andere faciliteit toevoegen als u deze hebt gewijzigd in fabricSettings

    Syslog configureren

  5. Ga naar queryverkenner door te klikken Logs in het menu van de werkruimteresource om query's te starten

    Werkruimtelogboeken

  6. U kunt een query uitvoeren op de Syslog tabel die u zoekt ServiceFabric als processname. De volgende query is een voorbeeld van het parseren van de JSON in de gebeurtenis en het weergeven van de inhoud ervan

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

Syslog-query

Het bovenstaande voorbeeld is van een NodeDown-gebeurtenis. U kunt hier de volledige lijst met gebeurtenissen bekijken.

Volgende stappen