
A rede é a base para aplicativos distribuídos. Um aplicativo distribuído tem vários microsserviços, cada um executado em um conjunto de pods, geralmente localizados em nós diferentes. As áreas de problema em um aplicativo distribuído podem estar no nível da rede (fluxo, logs da rede), ou no nível de indisponibilidade dos recursos do aplicativo (métricas) ou indisponibilidade de componentes (rastreamento).
A conectividade na camada de rede pode ser influenciada por vários fatores, como configurações de roteamento, pool de IP, políticas de rede, etc. Quando o serviço A não consegue se comunicar com o serviço B pela rede, ou um aplicativo externo não consegue se conectar ao serviço A, os logs de rede se tornam uma fonte importante de dados para solucionar problemas de conectividade. Assim como em uma rede tradicional, os registros de rede permitem que os administradores de cluster monitorem a rede de microsserviços do Kubernetes.
Os registros da rede têm vários casos de uso
Os logs de rede podem ser usados para atender aos requisitos exclusivos de diferentes equipes (DevOps, SecOps, Platform, Network). O valor dos registros de rede do Kubernetes está nas informações coletadas, como contexto detalhado sobre o endpoint / endpoint (por exemplo, pods, rótulos, namespaces) e políticas de rede implantadas ao configurar a conexão. Em um ambiente de TI, as equipes de DevOps, SecOps, Rede e Plataforma podem aproveitar os logs de rede para seus casos de uso, que são úteis em seu domínio de conhecimento. Abaixo, mostramos alguns exemplos.

Geração de políticas e detecção de ameaças com registros de fluxo de dados no Calico Enterprise.
Calico Enterprise gera registros contextuais de fluxos de rede em cada conexão com o pod. O log é salvo em um arquivo no nó, que é então processado pelo agente fluentd e enviado ao destino configurado.

Conforme mostrado no diagrama acima, os logs são enviados por padrão ao mecanismo Elasticsearch que acompanha o Calico Enterprise. Você pode configurar o encaminhamento de logs de fluxo para sua plataforma SOC. Recomendamos que você tenha uma plataforma única para todas as suas revistas. Os logs são uma ferramenta essencial de monitoramento e análise para a equipe de operações que já possui processos bem definidos construídos em uma plataforma de log centralizada. Isso é importante para o seu planejamento.
Características de Log de Fluxo de Dados
Os logs de fluxo têm uma grande sobrecarga de armazenamento. Por padrão, Calico Enterprise armazena apenas dados dos últimos sete dias. Isso permite que a Calico Enterprise forneça recursos projetados especificamente para simplificar o desenvolvimento de políticas e a solução de problemas de conectividade quase em tempo real.
- As diretrizes sugeridas para a criação de políticas permitem que os desenvolvedores gerem automaticamente políticas de rede para proteger seus serviços
- O fluxo de trabalho para políticas (recomendação, visualização, políticas em fases) permite que as equipes SecOps e DevOps criem políticas de maneira eficiente e as implantem de maneira discreta
- A detecção de ameaças permite que as equipes SecOps rastreiem cada fluxo para um endereço IP ou domínio específico e identifiquem ameaças
O registro de fluxo padrão no Calico Enterprise contém todas as informações contextuais necessárias:
- Contexto do Kubernetes (sub, namespace, rótulos, políticas)
- Endereço IP do remetente para fontes externas, se disponível via entrada
- Start_time, end_time, action, bytes_in, bytes_out, dest_ip, dest_name, dest_name_aggr, dest_namespace, dest_port, dest_type, dest_labels, repórter, num_flows, num_flows_completed, num_flows_started, http_requests_alrequests source_namespace, source_port, source_type, source_labels, original_source_ips, num_original_source_ips
O registro DNS é agregado para cada pod ao longo do tempo e contém as seguintes informações:
- Start_time, end_time, type, count, client_ip, client_name, client_name_aggr, client_namespace, client_labels, qname, qtype, qclass, rcode, rrsets, servers
As entradas de log estão disponíveis em Kibana como índices Elasticsearch. Você tem controle total sobre os parâmetros de indexação, tempo de retenção e armazenamento. Manter as configurações padrão funciona bem para a maioria das implantações.
Reduza os custos operacionais otimizando o armazenamento do log de thread
Calico Enterprise coleta vários logs (rede / fluxo, auditoria, DNS). Os logs de fluxo são os mais caros em termos de armazenamento, respondendo por mais de 95% do armazenamento total. Freqüentemente, para cada nó totalmente carregado, há 5k de fluxo por segundo. Com modestos 200 bytes por fluxo, isso se transforma em 1 MB / s (megabyte). O requisito de armazenamento diário para cada nó é de 86 GB para logs de encadeamento. Para um cluster de 100 nós, o requisito diário de thread de log torna-se 8 TB + !!! Obviamente, isso não escala. E o mais importante, você realmente precisa armazenar tantos dados? Normalmente, o valor dos dados contidos nos logs diminui exponencialmente com o tempo e é relevante apenas para solução de problemas e fins de conformidade.
Por esta razão, Calico Enterprise tem agregação por padrão, o que reduz os requisitos de armazenamento de log de thread em mais de 100 vezes! Fazemos isso sem comprometer os dados (visibilidade, monitoramento, solução de problemas) que nossos clientes recebem dos logs de fluxo. Os logs são agregados por porta de destino durante um período de tempo especificado. Dessa forma, você não precisa se preocupar com o custo de armazenamento de logs de fluxo ao usar as configurações padrão no Calico Enterprise. Outra maneira pela qual Calico Enterprise pode ajudá-lo a reduzir seus requisitos de armazenamento é excluindo-o. Você pode personalizar facilmente namespaces ou instalações específicos que serão excluídos da geração de logs de fluxo.
Interessado em explorar logs de thread em profundidade?
Os logs de thread são habilitados por padrão. Consulte a seguinte documentação para configuração detalhada: