Aplicações, contêineres e componentes de infraestrutura em um cluster geram continuamente grandes volumes de dados de log dispersos, o que torna a coleta e o gerenciamento de logs complexos. O Container Service for Kubernetes (ACK) integra-se ao Simple Log Service (SLS) para oferecer soluções que simplificam o gerenciamento de logs.
Para obter mais informações sobre os recursos e termos do SLS, consulte O que é o Simple Log Service e Glossário.
Introdução aos componentes de coleta de logs
Os componentes de coleta de logs possuem integração profunda com o SLS e utilizam descoberta automática para simplificar o gerenciamento de logs de contêineres. Esses componentes aceitam diversos formatos, como logs de texto, binary logging e dados HTTP. Armazene os dados de log diretamente no SLS para persistência. Utilize os recursos de análise e consulta em tempo real do SLS para identificar e localizar problemas rapidamente, aumentando a eficiência na resolução de falhas e reduzindo custos de O&M. Os seguintes componentes de coleta de logs são suportados:
Coleta de dados baseada em Logtail: O Logtail é um agente de coleta de logs fornecido pelo Simple Log Service. Com ele, você coleta logs de várias fontes de dados, como instâncias do Elastic Compute Service (ECS) da Alibaba Cloud, servidores em data centers e servidores de provedores de serviços em nuvem terceirizados. O Logtail oferece coleta de logs não intrusiva baseada em arquivos de log. Não é necessário modificar o código da aplicação, e a coleta não afeta a operação das suas aplicações.
Princípios de coleta de logs
Esta seção descreve dois métodos de coleta de logs e seus respectivos procedimentos.
Procedimento de coleta
Em um cluster ACK, implante um componente de coleta de logs para transmitir com segurança vários tipos de dados de log ao SLS para armazenamento e análise. Esse método simplifica a configuração e o gerenciamento, além de aumentar a eficiência. O procedimento básico é o seguinte:
O procedimento completo inclui:
-
Implante um componente de coleta de logs.
Ao instalar um componente de coleta de logs no cluster, você cria um AliyunLogConfig CRD e implanta recursos com base no componente de coleta de logs. Isso associa o AliyunLogConfig no cluster ACK à configuração de coleta do SLS.
Componente LoongCollector: loongcollector-ds (DaemonSet), loongcollector-operator (Deployment), alibaba-log-configuration (ConfigMap)
Componente Logtail: logtail-ds (DaemonSet), alibaba-log-controller (Deployment), alibaba-log-configuration (ConfigMap)
-
Configure a coleta de dados. Crie uma configuração de coleta. O componente de coleta de logs opera com base nessa configuração.
Configure a coleta de logs usando o console, uma configuração CRD ou variáveis de ambiente. Para obter mais informações, consulte Coletar logs de contêineres de clusters ACK, Coletar stdout e stderr de contêineres Kubernetes no modo DaemonSet (versão antiga) e Coletar logs de texto de contêineres Kubernetes no modo Sidecar.
Envie logs para o SLS. O componente de coleta de logs carrega os dados de log no SLS em tempo real.
Método de coleta
Em um cluster Kubernetes, existem dois métodos de coleta de logs: Sidecar e DaemonSet. Cada método possui procedimentos distintos e adequação para cenários específicos.
DaemonSet: O componente de coleta de logs é implantado no namespace
kube-systeme executado como um DaemonSet. O pod de coleta de logs em cada nó coleta dados de todos os pods nesse nó, incluindo saída padrão e arquivos. Para obter mais informações, consulte Coletar logs de contêineres de clusters ACK.-
Sidecar
Cada pod de aplicação executa um contêiner de coleta de logs que compartilha o volume de logs com o contêiner principal. Para obter mais informações, consulte Coletar logs de texto de contêineres Kubernetes no modo Sidecar.
Classificação | Método DaemonSet | Método Sidecar |
Cenários | Indicado para clusters com logs claramente classificados e funções relativamente simples.
| Recomendado para clusters grandes e híbridos. Este método é útil quando são necessárias configurações de coleta de logs diferentes para cada pod. No entanto, ele pode gerar um grande volume de logs por pod e consumir recursos significativos. |
Uso de recursos | Um pod de coleta de logs é executado em cada nó. | Um contêiner de coleta de logs é executado em cada pod. |
Implantação e O&M | Apenas o DaemonSet precisa ser mantido. | É necessário implantar um contêiner de coleta de logs para cada pod que exija coleta de logs. |
Tipo de log coletado | Saída padrão e logs de texto. | Logs de texto. |
Tipos de logs suportados
Em um cluster ACK, colete dados de log de diferentes fontes e transmita-os com segurança ao SLS para armazenamento e análise.
Tipo de log | Descrição | Referências |
Logs de aplicação (contêiner) | Colete rapidamente logs de contêineres de clusters ACK, incluindo a saída padrão do contêiner e arquivos de texto internos. |
|
Logs de componentes do plano de controle | Colete logs de componentes do plano de controle, como API Server, kube-scheduler, kube-controller-manager, cloud-controller-manager, Controlplane-Events e ALB Ingress Controller. Os logs coletados são enviados a um Logstore especificado. Isso facilita o gerenciamento centralizado e a análise do status de execução dos componentes do plano de controle, ajudando também a solucionar problemas rapidamente, monitorar a integridade dos componentes e verificar os efeitos das configurações de parâmetros personalizados. Cada Logstore do SLS corresponde a um componente do plano de controle do Kubernetes. | Coletar logs de componentes do plano de controle de clusters gerenciados ACK |
Logs de componentes de rede |
| |
Logs de componentes do plano de dados | Colete logs de plugins, como plugins de armazenamento, rede Terway, rede Flannel e Auto Scaling. |
Limites
Limitações | Descrição |
Versão do cluster |
|
| |
O uso real depende da taxa de coleta, do diretório monitorado, da quantidade de arquivos e de bloqueios de envio. Mantenha o uso abaixo de 80% do limite. Para obter mais informações sobre os limites, consulte Limites do Logtail. |
Faturamento
Os custos incorridos ao usar o SLS em um cluster ACK correspondem à soma das taxas de gerenciamento do cluster e das taxas do SLS.
Taxas de gerenciamento do cluster: Cobradas pelo ACK. Apenas clusters ACK Pro incorrem nessas taxas. Clusters ACK Basic e clusters dedicados ACK são gratuitos. Para obter mais informações, consulte Visão geral de faturamento.
Taxas do SLS: Faturadas conforme o uso (pay-as-you-go) e cobradas pelo SLS. Para obter mais informações, consulte Visão geral de faturamento.
Perguntas frequentes
Como copiar logs de um projeto para outro?
Para copiar os logs de acesso de logstore-a em project-a para o recém-criado logstore-b em project-b visando consulta e análise unificadas em project-b, consulte Replicar dados do Logstore.
O que fazer se o status da coleta de logs estiver anormal?
Se o status de coleta estiver anormal ao usar o Logtail para coletar logs de contêineres, como contêineres padrão ou Kubernetes, siga as instruções em Como solucionar problemas de coleta anormal de logs de contêineres para resolver o problema, verificar o status de execução e realizar outras operações de O&M.
Perguntas frequentes sobre perda de logs, exclusão de logs e redução de custos de armazenamento
Para obter informações sobre como alterar o período de retenção de logs e como desativar a coleta de logs, consulte Problemas relacionados ao Logstore.
Problemas relacionados ao Logtail
Para obter informações sobre latência na coleta de logs do Logtail, como coletar logs históricos e quanto tempo leva para as alterações de configuração do Logtail entrarem em vigor, consulte Problemas básicos do Logtail.