Engineering

Monitoramento da infraestrutura do Azure com o Filebeat e o Elastic Observability

A capacidade de acessar o estado interno do seu ecossistema de aplicações é crucial para otimizar as suas aplicações e a experiência dos usuários. Com o Elastic Cloud no Microsoft Azure, você tem acesso ao Elastic Observability, que permite monitorar a sua infraestrutura e ver como cada sinal se inter-relaciona com os outros através de uma série de recursos que podem ser implantados em minutos.

Ao utilizar nosso Elasticsearch Service gerenciado no Azure, você tem vantagens como atualizações com um clique, segurança por padrão e muito mais para simplificar as suas operações de TI. Além disso, o Elastic Observability ajuda a unificar seus logs, métricas e traces de APM em escala, para que seja mais fácil avaliar o estado atual do sistema. Também é possível usar o Machine Learning para detectar anomalias e o Alerting, que avisa de erros para que você possa reagir ao que acontece no seu ambiente.

Com relação ao monitoramento do Azure, o Elastic Observability consegue:

Neste post do blog, exploraremos a observabilidade do Azure com o Elastic Stack. Recomendo acompanhar o post com a sua implantação. Se você não tiver uma implantação, confira o post Getting Started with Elastic Cloud on Microsoft Azure (Comece a usar o Elastic Cloud no Microsoft Azure): Cadastrar-se no Elastic Cloud (Elasticsearch Service gerenciado) pelo Azure Marketplace é fácil, oferece bastante flexibilidade e ainda conta com faturamento integrado.

Azure e Elastic Observability

O Elastic Observability oferece uma solução pronta para uso para monitoramento no Azure. O Filebeat vem com um módulo do Azure pronto para uso, que permite que você adicione rapidamente esses agentes lightweight em seu ecossistema. Depois de instalado, é possível coletar eventos de log e encaminhá-los para o Elasticsearch ou o Logstash para indexação. Depois, você consegue analisar e visualizar seus dados em visualizações e dashboards pré-criados poderosos do Kibana, o que reduz a quantidade de tempo e esforço necessária para começar.

Vamos experimentar!

Ingestão de logs do Azure

Para instalar o Filebeat, você encontra instruções dentro do Kibana. Vamos usar essas orientações para implantar o Filebeat para ingerir atividades do Azure, entrar e/ou auditar logs.

Baixe e instale o Filebeat

A partir da versão 7.10, você pode acessar a página inicial do Kibana e clicar em Install Filebeat (Instalar Filebeat).

Se ainda não tiver atualizado sua implantação para a versão 7.10, será hora de acessar a nossa documentação de Upgrade versions (Versões de atualização). As atualizações são projetadas para serem automatizadas enquanto ajudam a mitigar o tempo de inatividade não planejado.

Para começar, clique no menu de navegação e depois na página inicial.

Clique em Add data (Adicionar dados).

Com isso, chegaremos ao menu Add data (Adicionar dados). Selecione Azure logs (Logs do Azure).

Siga as orientações para instalar o Filebeat no seu sistema. Você pode clicar em View exported fields (Ver campos exportados) e Learn more (Saiba mais) para ver mais informações sobre o Filebeat.

Deixe esta página aberta para quando você concluir as próximas configurações, pois voltaremos nela.

Configure o Filebeat

Depois que o Filebeat para o seu sistema tiver sido baixado e instalado, você precisará modificar o arquivo filebeat.yml. Em um sistema Linux, costuma-se encontrá-lo em /etc/filebeat.

O bom de executar esse processo pelo Kibana é que ele mostrará como adicionar as entradas necessárias para aquele arquivo para que ele possa se comunicar com a sua implantação do Elastic Cloud. É necessário modificar duas variáveis: cloud.id e cloud.auth.

Se você tiver o Elastic Stack autogerenciado na conta do Azure, consulte o Connect to Elastic Stack Filebeat quick start guide (Guia rápido para conectar ao Filebeat do Elastic Stack).

Dica: não sabe onde obter esses valores? Consulte a documentação para obter mais detalhes.

Crie um hub de eventos

Para essa solução, você precisará usar o Azure Event Hubs para logs de atividade, entrada e auditoria e precisará do acesso a um storage blob. Se você não tiver esse hub de eventos instalado, consulte o guia de início rápido: Como criar um hub de eve tos usando o portal do Azure para saber mais. Consulte as instruções para enviar logs de atividade para o hub de eventos.

Depois de criar um hub de eventos, é possível adicioná-lo a um espaço de nome já existente (se você tiver um) ou criar um novo, como vamos demonstrar aqui.

No serviço Event Hubs do seu Portal do Azure, clique em Add (Adicionar).

É necessário selecionar um grupo de recursos e nomeá-lo. Por exemplo: elastic-eventhub.

Escolha a localização e a faixa de preço, adicione tags opcionais se desejar, depois clique em Create (Criar).

Clique em Shared access policies (Políticas de acesso compartilhadas).

Clique na política padrão que aparecerá, com nome de RootManageSharedAccessKey e depois clique para copiar a string de conexão. Cole essa informação em um local seguro, porque ela será usada para configurar o arquivo do módulo do Filebeat do Azure azure.yml.

Em Activity log (Log de atividades), clique em Diagnostics settings (Configurações de diagnóstico).

Clique em Add diagnostic setting (Adicionar configurações de diagnóstico) e dê o nome de elastic-diag.

Selecione os logs que desejar e não se esqueça de selecionar também Stream to an event hub (Transmissão para um hub de eventos).

Escolha o espaço de nome elastic-eventhub, selecione a opção Create in selected namespace (Criar no espaço de nome selecionado) no nome do hub de eventos e depois selecione a política RootManageShareAccessKey.

Será criado um hub de eventos chamado insights-activity-logs embaixo do espaço de nome elastic-eventhub. Ele será usado no arquivo de configuração azure.yml.

Clique em Save (Salvar) e depois volte para o elastic-eventhub para ver as métricas que chegarão.

Habilite o módulo do Azure

Basta executar um comando para habilitar o módulo do Azure. Você pode ver essas orientações na página em que começamos, dentro do Kibana, na etapa 3.

Isso garantirá que o arquivo de configuração azure.yml se torne ativo para se comunicar com a sua assinatura do Azure.

O comando para habilitar o módulo no Linux é:

sudo filebeat modules enable azure

Para listar todos os módulos e exibir os habilitados no topo, execute:

sudo filebeat modules list

Para desabilitar o módulo, basta executar:

sudo filebeat modules disable azure

Configure o módulo do Azure

Depois de habilitar, é necessário configurar o arquivo azure.yml. No Linux, ele costuma ser encontrado no diretório /etc/filebeat/modules.d. Se um módulo não tiver habilitado, haverá uma extensão .disabled naquele diretório também.

Só o activitylogs é habilitado por padrão dentro do módulo do Azure, expressado por enabled: true.

Para configurar o auditlogs e o signinlogs, é necessário ser administrador global ou administrador de segurança da sua conta do Azure. Para saber mais, consulte as instruções sobre como exportar logs de auditoria e sign-in para o hub de eventos. Depois, basta alterar enabled: false para true para habilitá-los.

Importante: se você não tiver permissões para configurar os logs de auditoria e entrada, esses módulos do arquivo azure.yml precisam ser desabilitados.

É hora de adicionar as informações ao arquivo de configuração azure.yml. Basta adicionar as informações das entradas eventhub e connection_string que você já salvou e depois as informações da conta de armazenamento.

Dica: o nome da conta de armazenamento e a chave necessária podem ser encontrados na conta de armazenamento que você quiser utilizar. Clique em Access keys (Chaves de acesso). Se precisar, consulte Manage storage account access keys (Gerenciamento de chaves de acesso de contas de armazenamento) do Microsoft Azure para saber mais.

Seu arquivo de configuração (presumindo-se que você seja a única pessoa que está configurando os logs de atividade) será mais ou menos assim:

- module: azure 
  # All logs 
  activitylogs: 
    enabled: true 
    var: 
      # eventhub name containing the activity logs 
      eventhub: "insights-activity-logs" 
      # consumer group name that has access to the event hub 
      consumer_group: "$Default" 
      # connection string required to communicate with Event Hubs       
      connection_string: "<your connection string key>" 
      # the storage account  
      storage_account: "<your storage name>" 
      # the storage account key 
      storage_account_key: "<your account key>"

Para saber mais sobre essa configuração, consulte a documentação sobre configuração de módulos. Para manter a sequência de logs em caso de interrupção do serviço do Filebeat, é necessário o storage account/key.

Dica: o eventhub é o nome da instância e não o espaço de nome do job de eventos. Os espaços de nome do hub de eventos são o container de grupo para diversos hubs de evento, e a cobrança é feita no nível do espaço de nome. Consulte as Perguntas frequentes sobre os Hubs de Eventos no site da Microsoft para saber mais.

Instale e comece a usar o Filebeat

Agora que você já configurou o Filebeat, um hub de eventos e uma conta de armazenamento, é hora de fazer a instalação e começar a usar o Filebeat. Na página do Kibana onde começamos a baixar e configurar o Filebeat, você encontra a etapa 4, com os seguintes comandos que são necessários agora.

Como usamos o RPM para instalar o Filebeat como um serviço, ele também precisa ser usado para executa-lo como um serviço. Dependendo do tipo de sistema que você estiver usando, ele poderá ser um pouco diferente. Consulte o artigo Filebeat and systemd (Filebeat e systemd) para saber mais sobre como executar o Filebeat como um serviço para os pacotes DEB e RPM packages ou acesse o Filebeat quick start (Guia rápido do Filebeat) se estiver em outra plataforma.

Primeiro, precisamos executar a etapa de instalação, que carregará coisas como ativos, índices e visualizações predefinidas, que são usadas pelos dashboards do Azure Cloud. O comando setup aproveita as integrações prontas para uso que a Elastic tem com o Azure, reduzindo a necessidade de você desenvolver as suas, no entanto, tudo é personalizável e existem muitas integrações desenvolvidas pela comunidade.

Execute a instalação:

sudo filebeat setup

Também é possível executar o comando setup com um -e, o que enviará dados de logging para a exibição, em vez do syslog. Isso é útil para vermos quais etapas estão sendo realizadas.

sudo filebeat setup -e

Depois, inicie o serviço:

sudo service filebeat start

Para verificar o status:

sudo service filebeat status

Para interromper o Filebeat:

sudo service filebeat stop

Para verificar e validar, com uma janela de execução, que o serviço está sendo executado com integridade:

sudo journalctl -u filebeat -f

Visualização de dados no Kibana:

agora que os logs de atividade estão sendo coletados pelo hub de eventos e enviados para o Elasticsearch pelo Filebeat, podemos visualizá-los no Kibana.

Se você ainda tiver a página em que iniciamos a configuração do Filebeat aberta, será possível clicar em Check data (Verificar dados) e depois em Azure logs dashboard (Dashboards de logs do Azure), o que levará você para o dashboard correto.

blog-azure-log-mon-11.jpg

E pronto! Ingestão, análise e visualização em poucas etapas!

Conclusão

Esperamos que esse recurso seja útil na hora de começar a usar o Filebeat, ingerir logs de atividade do Azure com o uso de um hub de eventos e monitorar sua implantação do Azure com dashboards prontos para uso.

A próxima etapa é coletar as métricas de computação, container, armazenamento de banco de dados, faturamento e insight de aplicação usando o módulo do Metricbeat do Azure.

Tem alguma dúvida ou gostaria de contribuir com alguma informação? Participe do grupo de discussão do Elastic Observability. Também temos vários vídeos passo a passo e recursos de treinamento no hub de treinamento da Elastic.