Compartilhar via


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. Existem várias maneiras pelas quais esses eventos podem ser consumidos. Nesse artigo, discutimos como configurar o Service Fabric para escrever 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 Syslog para Linux. Depois de ativados, os eventos fluem automaticamente para o Syslog, que pode ser coletado e enviado pelo Agente Log Analytics.

Cada evento Syslog possui quatro 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 Mensagem contém todo o evento serializado em JSON para que possa ser consultado e consumido por diversas 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 Common, 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óstico, um novo ConsumerInstance: SyslogConsumer foi adicionado. Isso informa à plataforma que existe 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

É possível ler esses eventos de 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 essas instruções.

Também precisa de adicionar o agente Log Analytics ao seu cluster para recolher e enviar estes dados para o espaço de trabalho. Isso é o mesmo agente usado para coletar contadores de desempenho.

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

    Configurações do Workspace

  2. Selecione Data

  3. Selecione Syslog

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

    Configurar Syslog

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

    Logs do workspace

  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. Você pode exibir a lista completa de eventos aqui.

Próximas etapas