Eventos de cluster do Service Fabric Linux no Syslog

O Service Fabric expõe um conjunto de eventos da plataforma para informá-lo sobre atividades importantes em seu cluster. A lista completa de eventos expostos está disponível aqui. Existem várias maneiras pelas quais esses eventos podem ser consumidos. Neste artigo, discutimos como configurar o Service Fabric para gravar esses eventos no Syslog.

Introdução

Na versão 6.4, o SyslogConsumer foi introduzido para enviar os eventos da plataforma Service Fabric para clusters do Syslog para Linux. Uma vez ativado, os eventos fluem automaticamente para o Syslog, que pode ser coletado e enviado pelo Log Analytics Agent.

Cada evento Syslog tem quatro componentes

  • Instalações
  • Identidade
  • Mensagem
  • Gravidade

O SyslogConsumer grava todos os eventos da plataforma usando o Facility Local0. Você pode atualizar para qualquer recurso válido alterando a configuração. A Identidade usada é ServiceFabric. O campo Mensagem contém todo o evento serializado em JSON para que possa ser consultado e consumido por várias ferramentas.

Ativar SyslogConsumer

Para habilitar o SyslogConsumer, você precisa executar uma atualização do cluster. A fabricSettings seção precisa ser atualizada com o código a seguir. Observe que este código inclui apenas seções relacionadas ao 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"
            }
            ]
        }
    ],

Aqui estão as alterações a serem destacadas

  1. Na seção Comum, há um novo parâmetro chamado LinuxStructuredTracesEnabled. Isso é necessário para que os eventos Linux sejam estruturados e serializados quando enviados para o Syslog.
  2. Na seção Diagnóstico, um novo ConsumerInstance: SyslogConsumer foi adicionado. Isso diz à plataforma que há outro consumidor dos eventos.
  3. A nova seção SyslogConsumer precisa ter IsEnabled como true. Ele está configurado para usar o recurso Local0 automaticamente. Você pode substituir isso adicionando outro parâmetro.
    {
        "name": "New LogFacility",
        "value": "<Valid Syslog Facility>"
    }

Integração de logs do Azure Monitor

Você pode ler esses eventos do Syslog em uma ferramenta de monitoramento, como os logs do Azure Monitor. Você pode criar um espaço de trabalho do Log Analytics usando o Azure Marketplace usando estas instruções.

Você também precisa adicionar o agente do Log Analytics ao cluster para coletar e enviar esses dados para o espaço de trabalho. Este é o mesmo agente usado para coletar contadores de desempenho.

  1. Navegue até a Advanced Settings seção

    Definições da Área de Trabalho

  2. Selecione Data

  3. Selecione Syslog

  4. Configure Local0 como o recurso a ser rastreado. Você pode adicionar outro recurso se o alterou em fabricSettings

    Configurar o Syslog

  5. Vá para o explorador de consultas clicando Logs no menu do recurso de espaço de trabalho para iniciar a consulta

    Logs do espaço de trabalho

  6. Você pode consultar a Syslog tabela procurando ServiceFabric como ProcessName. A consulta a seguir é um exemplo de como analisar o JSON no evento e exibir seu conteúdo

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

Consulta Syslog

O exemplo acima é de um evento NodeDown. Pode ver a lista completa de eventos aqui.

Próximos passos