Eventos de cluster no Service Fabric do Linux no Syslog

O Service Fabric expõe um conjunto de eventos de plataforma para informá-lo de atividade importante no seu cluster. A lista completa de eventos que são expostos está disponível aqui. Há várias maneiras por meio dos quais esses eventos podem ser consumidos. Neste artigo, vamos discutir como configurar o Service Fabric para gravar esses eventos de Syslog.

Observação

Este artigo foi atualizado recentemente para usar o termo logs do Azure Monitor em vez de Log Analytics. Os dados de log ainda são armazenados em um espaço de trabalho do Log Analytics e ainda são coletados e analisados pelo mesmo serviço do Log Analytics. Estamos atualizando a terminologia para refletir melhor a função dos logs no Azure Monitor. Confira as alterações de terminologia do Azure Monitor para obter detalhes.

Introdução

Na versão 6.4, foi introduzido o SyslogConsumer para enviar os eventos de plataforma do Service Fabric para Syslog para clusters do Linux. Assim que ativado, os eventos irão fluir automaticamente ao Syslog que pode ser coletado e enviado pelo Agente do Log Analytics.

Cada evento de Syslog tem 4 componentes

  • Recurso
  • Identidade
  • Mensagem
  • Severidade

O SyslogConsumer grava todos os eventos de plataforma usando o Recurso Local0. Você pode atualizar qualquer recurso válido, alterando a configuração. A identidade usada é ServiceFabric. O campo de Mensagem contém o evento inteiro serializado em JSON para que possa ser consultado e consumido por uma variedade de ferramentas.

Habilitar 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 esse código inclui apenas as 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 para ressaltar

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

Integração de logs do Azure Monitor

É possível ler esses eventos de Syslog em uma ferramenta de monitoramento, como os logs do Azure Monitor. É possível criar um workspace do Log Analytics usando o Azure Marketplace com essas [instruções].(../azure-monitor/logs/quick-create-workspace.md). Você também precisará adicionar o agente do Log Analytics ao seu cluster para coletar e enviar esses dados para o workspace. Isso é o mesmo agente usado para coletar contadores de desempenho.

  1. Navegue até a Advanced Settings folha

    Workspace Settings

  2. Clique em Data

  3. Clique em Syslog

  4. Configure o Local0 como o recurso a ser acompanhado. É possível adicionar outro recurso se ele for alterado em fabricSettings

    Configure Syslog

  5. Vá para o Gerenciador de consultas clicando Logs no menu do recurso do workspace para começar a consultar

    Workspace logs

  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

Syslog query

O exemplo acima é de um evento NodeDown. Você pode exibir a lista completa de eventos aqui.

Próximas etapas