Compartir vía


Eventos de clúster Linux de Service Fabric en Syslog

Service Fabric expone un conjunto de eventos de la plataforma para informarle de actividad importante en el clúster. La lista completa de eventos expuestos está disponible aquí. Hay varias maneras de consumir estos eventos. En este artículo, se describe cómo configurar Service Fabric para escribir estos eventos en Syslog.

Introducción

En la versión 6.4, se introdujo SyslogConsumer para enviar los eventos de la plataforma de Service Fabric a Syslog para clústeres Linux. Una vez activados, los eventos fluyen automáticamente a Syslog, donde los recopila y envía el agente de Log Analytics.

Cada evento de Syslog tiene cuatro componentes:

  • Facility
  • Identidad
  • Message
  • severity

SyslogConsumer escribe todos los eventos de la plataforma mediante el recurso Local0. Puede actualizar a cualquier instalación válida si cambia la configuración. La identidad utilizada es ServiceFabric. El campo de mensaje contiene el evento completo serializado en JSON, por lo que pueden consultarlo y utilizarlo varias herramientas.

Habilitar SyslogConsumer

Para habilitar SyslogConsumer, deberá realizar una actualización del clúster. La sección fabricSettings debe actualizarse con el siguiente código. Tenga en cuenta que este código solo incluye las secciones relacionadas con 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"
            }
            ]
        }
    ],

Estos son los cambios que se deben realizar:

  1. En la sección Común, hay un nuevo parámetro llamado LinuxStructuredTracesEnabled. Es necesario que los eventos de Linux estén estructurados y serializados cuando se envían a Syslog.
  2. En la sección Diagnóstico, se ha agregado una nueva ConsumerInstance: SyslogConsumer. Esto indica a la plataforma que hay otro consumidor de los eventos.
  3. La nueva sección SyslogConsumer debe tener IsEnabled como true. Está configurada para utilizar el recurso Local0 automáticamente. Puede invalidar esto agregando otro parámetro.
    {
        "name": "New LogFacility",
        "value": "<Valid Syslog Facility>"
    }

Integración de los registros de Azure Monitor

Puede leer estos eventos de Syslog en una herramienta de supervisión como los registros de Azure Monitor. Puede crear un área de trabajo de Log Analytics mediante Azure Marketplace siguiendo estas instrucciones.

También debe agregar el agente de Log Analytics al clúster para recopilar y enviar estos datos al área de trabajo. Este es el mismo agente que se usa para recopilar los contadores de rendimiento.

  1. Vaya a la sección Advanced Settings.

    Configuración de área de trabajo

  2. Seleccione Data

  3. Seleccione Syslog

  4. Configure Local0 como el recurso del que realizar el seguimiento. Puede agregar otro recurso si lo cambia en fabricSettings.

    Configuración de Syslog

  5. Acceda al explorador de consultas; para ello, haga clic en Logs en el menú del recurso de área de trabajo para iniciar la consulta.

    Registros del área de trabajo

  6. Puede consultar la tabla Syslog si busca ServiceFabric como ProcessName. La siguiente consulta es un ejemplo de cómo analizar el esquema JSON en el evento y mostrar su contenido.

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

Consulta de Syslog

El ejemplo anterior es de un evento NodeDown. Puede ver la lista completa de eventos aquí.

Pasos siguientes