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 attraverso cui questi eventi possono essere utilizzati. In questo articolo verrà illustrato come configurare Service Fabric per la scrittura di questi eventi in Syslog.

Nota

Questo articolo è stato aggiornato di recente in modo da usare il termine log di Monitoraggio di Azure anziché Log Analytics. I dati di log vengono comunque archiviati in un'area di lavoro Log Analytics e vengano ancora raccolti e analizzati dallo stesso servizio Log Analytics. Si sta procedendo a un aggiornamento della terminologia per riflettere meglio il ruolo dei log in Monitoraggio di Azure. Per informazioni dettagliate, vedere Modifiche della terminologia di Monitoraggio di Azure.

Introduzione

Nella versione 6.4, il SyslogConsumer è stato introdotto per inviare gli eventi della piattaforma Service Fabric a Syslog per i cluster Linux. Una volta attivati, gli eventi verranno trasferiti automaticamente in Syslog, che possono essere raccolti e inviati dall'agente di Log Analytics.

Ogni evento Syslog dispone di 4 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 possa essere eseguita una 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, un nuovo ConsumerInstance: SyslogConsumer è stato aggiunto. Questo 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 utilizzando Azure Marketplace tramite queste [istruzioni]. (../azure-monitor/logs/quick-create-workspace.md). È inoltre necessario aggiungere l'agente Log Analytics al cluster per raccogliere e inviare questi dati allo spazio di lavoro. Questo è lo stesso agente usato per raccogliere i contatori delle prestazioni.

  1. Passare al pannello Advanced Settings

    Workspace Settings

  2. Fare clic su Data

  3. Fare clic su Syslog

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

    Configure Syslog

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

    Workspace logs

  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

Syslog query

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

Passaggi successivi