Uso do log-agent para coletar logs de contêiner
Restrições
- O log-agent está disponível somente em clusters da v1.17 ou posterior.
- Um máximo de 50 regras de log podem ser configuradas para cada cluster.
- O log-agent não pode coletar arquivos de log .gz, .tar ou .zip.
- Durante a coleta de log de arquivo de contêiner, se o driver de armazenamento Device Mapper for usado em nós, o caminho deverá ser o caminho de montagem do disco de dados do nó.
- Se o tempo de execução do contêiner for containerd, os logs de stdout não podem ser multilinhas.
- Em cada cluster, a taxa de coleta de uma única linha de logs não pode exceder 10.000 de registros por segundo e a taxa de coleta de várias linhas de logs não pode exceder 2.000 registros por segundo.
Cobrança
O Log Tank Service (LTS) não cobra pela criação de grupos de logs e oferece uma cota gratuita de um determinado valor para a coleta de logs todos os meses. Você paga apenas pelo volume de log que excede a cota (verifique Calculadora de preços).
Usar log-agent para coletar logs
O CCE integra o LTS para coletar logs de recursos, como contêineres e nós, e relatar os logs ao LTS de acordo com as políticas de log definidas por você.
- Entre ao console do CCE, alcance um conjunto, e escolha Logging no painel de navegação.
Se log-agent não tiver sido instalado, instale-o conforme solicitado ou vá para a página Add-ons para instalar o log-agent.
- Crie um grupo de log do LTS e um fluxo de log.
- Um grupo de logs é a unidade básica para o LTS gerenciar logs. Se você não tiver um grupo de logs, o CCE solicitará que você crie um. O nome padrão é k8s-log-{Cluster ID}, por exemplo, k8s-log-bb7eaa87-07dd-11ed-ab6c-0255ac1001b3.
- Um fluxo de log é a unidade básica para ler e gravar logs. Você pode colocar diferentes tipos de logs em diferentes fluxos para facilitar o gerenciamento. Na página Logging do console do CCE, você é solicitado a criar um fluxo de log. Os logs de serviço coletados pelo CCE são classificados nos seguintes tipos:
- Container standard output: o nome padrão é stdout-{Cluster ID}, por exemplo, stdout-bb7eaa87-07dd-11ed-ab6c-0255ac1001b3.
- Container file log: o nome padrão é containerfile-{Cluster ID}, por exemplo, containerfile-bb7eaa87-07dd-11ed-ab6c-0255ac1001b3.
- Node log: o nome padrão é hostfile-{Cluster ID}, por exemplo, hostfile-bb7eaa87-07dd-11ed-ab6c-0255ac1001b3.
- K8s event: o nome padrão é event-{Cluster ID}, por exemplo, event-bb7eaa87-07dd-11ed-ab6c-0255ac1001b3.
- Crie uma política de coleta de log.
Depois que o complemento log-agent é instalado, a política de saída de contêiner padrão default-stdout e a política de eventos do Kubernetes default-event são geradas por padrão.
Na página Logging, clique em View Log Policy no canto superior direito e edite-a, ou clique em Create Log Policy no canto superior direito e defina os parâmetros relacionados.
Figura 1 Criar uma política de WAF
Tabela 1 Parâmetros de política de HPA Parâmetro
Descrição
Log Type
Tipo de logs a serem coletados.
- Container standard output
- Container file
- Node file
- Kubernetes event
Log Source
Contêineres cujos logs devem ser coletados.
- All containers: você pode especificar um namespace e coletar seus logs de contêiner. Se esse parâmetro não for especificado, os contêineres em todos os namespaces serão coletados.
- Specified workloads: você pode especificar um contêiner e coletar seus logs ou pode especificar logs a serem coletados. Se este parâmetro não for especificado, os logs de todos os contêineres serão coletados.
- Specified pod labels: você pode especificar um contêiner e coletar seus logs com base em um rótulo ou pode especificar os logs a serem coletados. Se esse parâmetro não for especificado, os logs de todos os contêineres serão coletados.
Log Format
- Single-line text
Cada log contém apenas uma linha de texto. O caractere de nova linha \n é usado como limite de cada log.
- Multi-line text
Alguns logs de programas (por exemplo, logs de programas Java) contêm um log que ocupa várias linhas. Por padrão, o sistema de coleta de logs coleta logs por linha. Se você quiser exibir logs como uma única mensagem de log no sistema de coleta de log, você pode ativar a função de texto com várias linhas e usar o padrão regular. Se você selecionar o texto de várias linhas, insira o formato de correspondência de log.
Exemplo:
Se o formato dos logs a serem coletados for o seguinte, digite \d{4}-\d{2}-\d{2} \d{2}\:\d{2}\:\d{2}.*.
As seguintes três linhas que começam com a data são consideradas um log completo.
2022-01-01 00:00:00 Exception in thread "main" java.lang.RuntimeException: Something has gone wrong, aborting!
at com.myproject.module.MyProject.badMethod(MyProject.java:22)
at com.myproject.module.MyProject.oneMoreMethod(MyProject.java:18)
2022-01-01 00:00:10 Normal
LTS Configuration
- Centralized collection: todos os logs são armazenados no fluxo de log criado em2.
- Custom collection: especifique um fluxo de log para armazenar logs.
- Depois que a política de registro for criada, você poderá clicar em View Log Policy no canto superior direito para exibir ou editar a política de log.
Visualização de logs
Depois que os logs são coletados, faça logon no console do CCE, acesse um cluster e escolha Logging no painel de navegação. Na página de guia Service Logs, visualize logs por tipo de log. Você pode ver logs no console do LTS como você faz no console do CCE. Para obter detalhes, consulte Guia de usuário do LTS.
Você também pode acessar o console do LTS e encontrar o grupo de logs (chamado k8s-log-{Cluster ID}) correspondente ao cluster para exibir os logs.