Condividi tramite


Eventi cluster Linux di Service Fabric in Syslog

Service Fabric espone una serie di eventi della piattaforma per informare l'utente delle attività principali nel cluster. L'elenco completo degli eventi esposti è disponibile qui. Esistono diversi modi in cui questi eventi possono essere utilizzati. Questo articolo mostra come configurare Service Fabric per la scrittura di questi eventi in Syslog.

Introduzione

Nella versione 6.4 è stato introdotto SyslogConsumer che consente di inviare gli eventi della piattaforma Service Fabric a Syslog per i cluster Linux. Dopo l’attivazione, gli eventi vengono trasferiti automaticamente in Syslog in modo che possano essere raccolti e inviati dall'agente di Log Analytics.

Ogni evento Syslog ha quattro componenti

  • Struttura
  • Identità
  • Message
  • Gravità

Il SyslogConsumer scrive tutti gli eventi della piattaforma tramite Facility Local0. È possibile effettuare l'aggiornamento a qualsiasi struttura valida modificando la configurazione. L'identità usata è ServiceFabric. Il campo Messaggio contiene l'intero evento serializzato in JSON, in modo che possano essere eseguite query o essere usato da una serie di strumenti.

Abilitare SyslogConsumer

Per abilitare SyslogConsumer, è necessario eseguire un aggiornamento del cluster. La sezione fabricSettings deve essere aggiornata con il codice seguente. Tenere presente che questo codice include solo le sezioni relative a 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"
            }
            ]
        }
    ],

Qui ci sono le modifiche da richiamare

  1. Nella sezione Comune, è disponibile un nuovo parametro denominato LinuxStructuredTracesEnabled. Questo è necessario per avere eventi Linux strutturati e serializzati quando inviati a Syslog.
  2. Nella sezione Diagnostica, è stato aggiunto un nuovo ConsumerInstance: SyslogConsumer. Ciò comunica alla piattaforma che c'è un altro consumer di eventi.
  3. La nuova sezione SyslogConsumer deve avere IsEnabled come true. La configurazione prevede l'uso automatico della struttura Local0. È possibile eseguire l'override di questo elemento mediante l'aggiunta di un altro parametro.
    {
        "name": "New LogFacility",
        "value": "<Valid Syslog Facility>"
    }

Integrazione log di Monitoraggio di Azure

È possibile leggere questi eventi Syslog in uno strumento di monitoraggio come i log di Monitoraggio di Azure. È possibile creare un'area di lavoro Log Analytics con Azure Marketplace seguendo queste istruzioni.

È anche necessario aggiungere l'agente di Log Analytics al cluster per raccogliere e inviare questi dati all'area di lavoro. Questo è lo stesso agente usato per raccogliere i contatori delle prestazioni.

  1. Passare alla sezione Advanced Settings

    Impostazioni area di lavoro

  2. Selezionare Data

  3. Selezionare Syslog

  4. Configurare Local0 come la Facility di cui tenere traccia. Se è stato modificato in fabricSettings, è possibile aggiungere un'altra Facility

    Configurare Syslog

  5. Passare al query explorer facendo clic su Logs nel menu della risorsa dell’area di lavoro per iniziare l’esecuzione della query

    Log dell'area di lavoro

  6. È possibile eseguire una query con la tabella Syslog cercando ServiceFabric come ProcessName. La query riportata di seguito è un esempio di come analizzare il codice JSON dell'evento e visualizzarne il contenuto

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

Query di Syslog

L'esempio precedente è di un evento NodeDown. L'elenco completo degli eventi è disponibile qui.

Passaggi successivi