Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Importante
Em 30 de setembro de 2027, os registos de fluxo do grupo de segurança de rede (NSG) serão retirados. Como parte desta desativação, deixará de ser possível criar novos registos de fluxo do NSG a partir de 30 de junho de 2025. Recomendamos a migração para registos de fluxo de rede virtual, que superam as limitações dos registos de fluxo NSG. Após a data de retirada, a análise de tráfego habilitada com registos de fluxo NSG não será mais suportada e os recursos existentes de registos de fluxo NSG nas suas assinaturas serão excluídos. No entanto, os registos de fluxos do NSG não serão eliminados e continuarão a seguir as suas respetivas políticas de retenção. Para obter mais informações, veja o anúncio oficial.
Os logs de fluxo do grupo de segurança de rede fornecem informações que você pode usar para entender o tráfego IP de entrada e saída para interfaces de rede do Azure. Os logs de fluxo mostram os fluxos de entrada e saída com base em cada regra de grupo de segurança de rede, a interface de rede à qual o fluxo se aplica, informações de 5 tuplas (IP de origem/destino, porta de origem/destino, protocolo) relacionadas ao fluxo e se o tráfego foi permitido ou negado.
Você pode ter muitos grupos de segurança de rede em sua rede com o log de fluxo habilitado. Vários grupos de segurança de rede com o registo de fluxo ativado podem tornar difícil analisar e obter informações dos seus registos. Este artigo fornece uma solução para gerenciar centralmente esses logs de fluxo do grupo de segurança de rede usando o Graylog, uma ferramenta de gerenciamento e análise de logs de código aberto, e o Logstash, um pipeline de processamento de dados do lado do servidor de código aberto.
Advertência
As etapas a seguir funcionam com logs de fluxo versão 1. Para obter detalhes, consulte Introdução ao log de fluxo para grupos de segurança de rede. As instruções a seguir não funcionarão com a versão 2 dos arquivos de log, sem modificação.
Cenário
Os logs de fluxo do grupo de segurança de rede são ativados usando o Network Watcher. Os logs de fluxo são enviados para o armazenamento Blob do Azure. Um plug-in Logstash é usado para conectar e processar logs de fluxo do Blob Storage e enviá-los para Graylog. Uma vez que os logs de fluxo são armazenados no Graylog, eles podem ser analisados e visualizados em painéis personalizados.
Etapas de instalação
Ativar o registo de fluxo do grupo de segurança de rede
Para este cenário, deve ter o registo de fluxo de grupo de segurança de rede ativado em pelo menos um grupo de segurança de rede na sua conta. Para obter instruções sobre como habilitar logs de fluxo de grupos de segurança de rede, consulte o seguinte artigo Introdução ao log de fluxo para grupos de segurança de rede.
Configurando o Graylog
Neste exemplo, o Graylog e o Logstash são configurados em um Ubuntu Server, implantado no Azure.
- Consulte a documentação do Graylog, para obter instruções passo a passo sobre como instalar no Ubuntu.
- Certifique-se também de configurar a interface da Web Graylog seguindo a documentação.
Este exemplo usa a configuração mínima do Graylog (ou seja, uma única instância de um Graylog), mas o Graylog pode ser arquitetado para ser dimensionado entre recursos, dependendo do seu sistema e das necessidades de produção. Para obter mais informações sobre considerações arquitetônicas ou um guia detalhado de arquitetura, consulte a documentação e o guia de arquitetura do Graylog.
O Graylog pode ser instalado de várias maneiras, dependendo da sua plataforma e preferências. Para obter uma lista completa dos possíveis métodos de instalação, consulte a documentação oficial do Graylog. O aplicativo de servidor Graylog é executado em distribuições Linux e tem os seguintes pré-requisitos:
- Java SE 8 ou posterior - documentação de instalação do JDK
- Elastic Search 2.x (2.1.0 ou posterior) - Documentação de instalação do Elasticsearch
- MongoDB 2.4 ou posterior - Documentação de instalação do MongoDB
Instalar o Logstash
Logstash é usado para nivelar os logs de fluxo formatados JSON para um nível de tupla de fluxo. Nivelar os logs de fluxo torna os logs mais fáceis de organizar e pesquisar no Graylog. As instruções a seguir são usadas para instalar o Logstash no Ubuntu. Para obter instruções sobre como instalar este pacote no Red Hat Enterprise Linux, consulte Instalando a partir de repositórios de pacotes - yum.
Para instalar o Logstash, execute os seguintes comandos:
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo gpg --dearmor -o /usr/share/keyrings/elastic-keyring.gpg sudo apt-get install apt-transport-https echo "deb [signed-by=/usr/share/keyrings/elastic-keyring.gpg] https://artifacts.elastic.co/packages/8.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-8.x.list sudo apt-get update && sudo apt-get install logstashConfigure o Logstash para analisar os logs de fluxo e enviá-los para o Graylog. Crie um arquivo Logstash.conf:
sudo touch /etc/logstash/conf.d/logstash.confAdicione o seguinte conteúdo ao arquivo. Altere os valores
storage_account_name,storage_access_keyecontainerpara refletirem os detalhes da sua conta de armazenamento.input { azureblob { storage_account_name => "mystorageaccount" storage_access_key => "NrUZmx7pJSKaRJzvQbeiZWi5nBRWOTr7Wwr9DrvK7YtDBrADYxT1y0oEExtSlkDnGRt7qcRiZzEBCCyRYND8SxSt" container => "insights-logs-networksecuritygroupflowevent" registry_create_policy => "start_over" codec => "json" file_head_bytes => 21 file_tail_bytes => 9 # Possible options: `do_not_break`, `with_head_tail`, `without_head_tail` break_json_down_policy => 'with_head_tail' break_json_batch_count => 2 interval => 5 } } filter { split { field => "[records]" } split { field => "[records][properties][flows]"} split { field => "[records][properties][flows][flows]"} split { field => "[records][properties][flows][flows][flowTuples]" } mutate { split => { "[records][resourceId]" => "/"} add_field =>{ "Subscription" => "%{[records][resourceId][2]}" "ResourceGroup" => "%{[records][resourceId][4]}" "NetworkSecurityGroup" => "%{[records][resourceId][8]}" } convert => {"Subscription" => "string"} convert => {"ResourceGroup" => "string"} convert => {"NetworkSecurityGroup" => "string"} split => { "[records][properties][flows][flows][flowTuples]" => ","} add_field => { "unixtimestamp" => "%{[records][properties][flows][flows][flowTuples][0]}" "srcIp" => "%{[records][properties][flows][flows][flowTuples][1]}" "destIp" => "%{[records][properties][flows][flows][flowTuples][2]}" "srcPort" => "%{[records][properties][flows][flows][flowTuples][3]}" "destPort" => "%{[records][properties][flows][flows][flowTuples][4]}" "protocol" => "%{[records][properties][flows][flows][flowTuples][5]}" "trafficflow" => "%{[records][properties][flows][flows][flowTuples][6]}" "traffic" => "%{[records][properties][flows][flows][flowTuples][7]}" } add_field => { "time" => "%{[records][time]}" "systemId" => "%{[records][systemId]}" "category" => "%{[records][category]}" "resourceId" => "%{[records][resourceId]}" "operationName" => "%{[records][operationName}}" "Version" => "%{[records][properties][Version}}" "rule" => "%{[records][properties][flows][rule]}" "mac" => "%{[records][properties][flows][flows][mac]}" } convert => {"unixtimestamp" => "integer"} convert => {"srcPort" => "integer"} convert => {"destPort" => "integer"} add_field => { "message" => "%{Message}" } } date { match => ["unixtimestamp" , "UNIX"] } } output { stdout { codec => rubydebug } udp { host => "127.0.0.1" port => 12201 } }O arquivo de configuração Logstash fornecido é composto por três partes: entrada, filtro e saída. A seção de entrada designa a fonte de entrada dos logs que o Logstash processará - neste caso, você usará um plug-in de entrada de blog do Azure (instalado nas próximas etapas) que nos permite acessar os arquivos JSON de log de fluxo do grupo de segurança de rede armazenados no armazenamento de blob.
Em seguida, a seção de filtro nivela cada arquivo de log de fluxo para que cada tupla de fluxo individual e suas propriedades associadas se tornem um evento Logstash separado.
Finalmente, a seção de saída encaminha cada evento Logstash para o servidor Graylog. Para atender às suas necessidades específicas, modifique o arquivo de configuração do Logstash, conforme necessário.
Observação
O arquivo de configuração anterior assume que o servidor Graylog foi configurado no endereço IP de loopback do host local 127.0.0.1. Caso contrário, certifique-se de alterar o parâmetro host na seção de saída para o endereço IP correto.
Para obter mais instruções sobre como instalar o Logstash, consulte a documentação do Logstash.
Instalar o plug-in de entrada Logstash para armazenamento de blobs do Azure
O plug-in Logstash permite que você acesse diretamente os logs de fluxo de sua conta de armazenamento de blob designada. Para instalar o plug-in, a partir do diretório de instalação padrão do Logstash (neste caso, /usr/share/logstash/bin), execute o seguinte comando:
cd /usr/share/logstash/bin
sudo ./logstash-plugin install logstash-input-azureblob
Para obter mais informações sobre esse plug-in, consulte a documentação.
Configurar a conexão do Logstash para o Graylog
Agora que você estabeleceu uma conexão com os logs de fluxo usando o Logstash e configurou o servidor Graylog, você precisa configurar o Graylog para aceitar os arquivos de log de entrada.
Navegue até a interface da Web do Graylog Server usando a URL que você configurou para ela. Você pode acessar a interface direcionando seu navegador para
http://<graylog-server-ip>:9000/Para navegar até a página de configuração, selecione o menu suspenso Sistema na barra de navegação superior à direita e, em seguida, selecione Entradas. Como alternativa, navegue até
http://<graylog-server-ip>:9000/system/inputsPara lançar a nova entrada, selecione GELF UDP no menu suspenso Selecionar entrada e preencha o formulário. GELF significa Graylog Extended Log Format. O formato GELF é desenvolvido pela Graylog. Para saber mais sobre suas vantagens, consulte a documentação do Graylog.
Certifique-se de vincular a entrada ao IP no qual você configurou seu servidor Graylog. O endereço IP deve corresponder ao campo host da saída UDP do arquivo de configuração Logstash. A porta padrão deve ser 12201. Verifique se a porta corresponde ao campo de porta na saída UDP designada no arquivo de configuração do Logstash.
Para saber mais sobre as entradas de mensagens do Graylog, consulte a documentação.
Depois que essas configurações forem feitas, você poderá iniciar o Logstash para começar a ler nos logs de fluxo com o seguinte comando:
sudo systemctl start logstash.service.
Pesquisar nas mensagens do Graylog
Depois de dar algum tempo para o seu servidor Graylog coletar mensagens, você pode pesquisar através das mensagens. Para verificar as mensagens que estão sendo enviadas para o seu servidor Graylog, na página Configuração de entradas , selecione o botão "Mostrar mensagens recebidas" da entrada UDP GELF que você criou.
Selecione o link azul%{Message} para expandir a mensagem e mostrar os parâmetros da tupla de fluxo.
Por padrão, todos os campos de mensagem são incluídos na pesquisa se você não selecionar um campo de mensagem específico para pesquisar. Se quiser pesquisar mensagens específicas (ou seja, tuplas de fluxo de um IP de origem específico), pode usar a linguagem de consulta de pesquisa Graylog tal como está documentado
Analise os logs de fluxo do grupo de segurança de rede usando o Graylog
Agora que o Graylog está em execução, você pode usar algumas de suas funcionalidades para entender melhor seus dados de log de fluxo. Uma dessas maneiras é usando painéis para criar visualizações específicas de seus dados.
Criar um dashboard
Na barra de navegação superior, selecione Painéis ou navegue até
http://<graylog-server-ip>:9000/dashboards/A partir daí, selecione o botão verde Criar painel e preencha o pequeno formulário com o título e a descrição do seu painel. Pressione o botão Salvar para criar o novo painel. Você verá um painel semelhante à imagem a seguir:
Adicionar widgets
Você pode selecionar o título do painel para vê-lo, mas agora ele está vazio, já que não adicionamos nenhum widget. Um widget de tipo fácil e útil para adicionar ao painel são os gráficos de Valores Rápidos , que exibem uma lista de valores do campo selecionado e sua distribuição.
Navegue de volta para os resultados da pesquisa da entrada UDP que está recebendo logs de fluxo selecionando Pesquisar na barra de navegação superior.
No painel Resultados da pesquisa, no lado esquerdo do ecrã, localize o separador Campos, que lista os vários campos de cada mensagem de tupla de fluxo de entrada.
Selecione qualquer parâmetro desejado no qual visualizar (neste exemplo, a fonte IP é selecionada). Para mostrar a lista de widgets possíveis, selecione a seta suspensa azul à esquerda do campo e, em seguida, selecione Valores rápidos para gerar o widget.
A partir daí, você pode selecionar o botão Adicionar ao painel no canto superior direito do widget e selecionar o painel correspondente para adicionar.
Navegue de volta ao painel para ver o widget que você acabou de adicionar.
Você pode adicionar uma variedade de outros widgets, como histogramas e contagens, ao seu painel para acompanhar métricas importantes.
Para obter mais explicações sobre painéis e outros tipos de widgets, consulte a documentação do Graylog.
Ao integrar o Network Watcher com o Graylog, você agora tem uma maneira conveniente e centralizada de gerenciar e visualizar os logs de fluxo do grupo de segurança de rede. O Graylog tem uma série de outros recursos poderosos, como fluxos e alertas, que também podem ser usados para gerenciar ainda mais os logs de fluxo e entender melhor o tráfego da sua rede. Agora que você tem o Graylog configurado e conectado ao Azure, sinta-se à vontade para continuar a explorar as outras funcionalidades que ele oferece.