O recurso de monitoramento do plano de dados do Kubernetes baseia-se nas capacidades de monitoramento não intrusivo desenvolvidas em conjunto pelo Simple Log Service e pela comunidade OpenAnolis. Esse recurso permite visualizar fluxos de dados em todo o ambiente Kubernetes, identificar gargalos e gerenciar sistemas nativos da nuvem complexos com facilidade.
Pré-requisitos
Crie uma instância do Full-stack Observability. Para mais informações, consulte Criar uma instância.
Se você usar o console, instale um componente de monitoramento. Para mais informações, consulte Instalar um componente de monitoramento.
Limitações
O monitoramento do plano de dados do Kubernetes requer um host x86_64 com kernel Linux versão 4.19 ou posterior, ou kernel versão 3.1.0 (apenas para CentOS 7.6 a 7.9). Execute o comando uname -r para verificar as informações do kernel.
Configurar pelo console
Faça login no console do Simple Log Service.
Na seção Log Application, clique na aba Intelligent O&M. Em seguida, clique em Full-stack Observability.
Na página Simple Log Service Full-stack Observability, clique na instância desejada.
-
No painel de navegação à esquerda, clique em Full-stack Monitoring.
Se esta for a primeira vez que você utiliza o Full-stack Monitoring para esta instância, clique em Enable.
-
No painel de navegação à esquerda, clique em Data Collection. Na página Data Import Configurations, localize Non-intrusive Service Observation na seção Kubernetes Monitoring.
Se for a primeira configuração de acesso a dados para o item de monitoramento alvo, ative a chave para abrir a página de configuração. Caso já exista uma configuração, clique no ícone
para abrir a página de configuração. -
Crie um grupo de máquinas:
Se você já criou um grupo de máquinas, pule esta etapa.
Para criar um grupo de máquinas para um cluster ACK, consulte Criar um grupo de máquinas baseado em endereço IP.
Para criar um grupo de máquinas para um cluster Kubernetes autogerenciado, consulte Criar um grupo de máquinas baseado em identificador personalizado.
Configurar pela CLI
-
Baixe a ferramenta Logtail CRD para gerar configurações de coleta.
Método
Descrição
Instalar fora do cluster
Requer um arquivo
~/.kube/configna máquina local com permissões para executar comandos kubectl no cluster alvo.Instalar de dentro de um contêiner
Utiliza as permissões do componente
alibaba-log-controllerpara criar CRDs. Use este método se não houver um arquivo~/.kube/configou se problemas de rede impedirem a conexão com o cluster.Instalar fora do cluster
-
Faça login no cluster e baixe a ferramenta de modelo.
-
China
curl https://logtail-release-cn-hangzhou.oss-cn-hangzhou.aliyuncs.com/kubernetes/crd-tool.tar.gz -o /tmp/crd-tool.tar.gz -
Regiões fora da China
curl https://logtail-release-ap-southeast-1.oss-ap-southeast-1.aliyuncs.com/kubernetes/crd-tool.tar.gz -o /tmp/crd-tool.tar.gz
-
-
Instale a ferramenta de modelo. Uma instalação bem-sucedida gera o executável
sls-crd-toolno diretório atual.tar -xvf /tmp/crd-tool.tar.gz -C /tmp &&chmod 755 /tmp/crd-tool/install.sh && sh -x /tmp/crd-tool/install.sh Execute
./sls-crd-tool listpara verificar a instalação. A instalação é considerada bem-sucedida se o comando retornar qualquer saída.
Instalar de dentro de um contêiner
-
Faça login no cluster e acesse o contêiner
alibaba-log-controller.kubectl get pods -n kube-system -o wide |grep alibaba-log-controller | awk -F ' ' '{print $1}' kubectl exec -it {pod} -n kube-system bash cd ~ -
Baixe a ferramenta de modelo.
-
Se o cluster tiver acesso a redes públicas, execute um dos seguintes comandos:
-
China
curl https://logtail-release-cn-hangzhou.oss-cn-hangzhou.aliyuncs.com/kubernetes/crd-tool.tar.gz -o /tmp/crd-tool.tar.gz -
Regiões fora da China
curl https://logtail-release-ap-southeast-1.oss-ap-southeast-1.aliyuncs.com/kubernetes/crd-tool.tar.gz -o /tmp/crd-tool.tar.gz
-
Caso o cluster não tenha acesso a redes públicas, baixe a ferramenta fora do cluster e transfira-a para o contêiner usando um comando como
kubectl cp <source> <destination>ou outros métodos de transferência de arquivos suportados pelo ACK.-
Instale a ferramenta de modelo. Uma instalação bem-sucedida gera o executável
sls-crd-toolno diretório atual.tar -xvf /tmp/crd-tool.tar.gz -C /tmp &&chmod 755 /tmp/crd-tool/install.sh && sh -x /tmp/crd-tool/install.sh Execute
./sls-crd-tool listpara verificar a instalação. A instalação é considerada bem-sucedida se o comando retornar qualquer saída.-
Use a ferramenta Logtail CRD para gerar uma configuração de coleta.
-
Visualize a definição do modelo.
./sls-crd-tool get ebpfK8sPlugin -
Substitua
REQUIREDpelo ID da instância atual e execute o comando a seguir para visualizar os parâmetros../sls-crd-tool apply -f template-ebpfK8sPlugin.yaml --create=false -
Confirme se o parâmetro
projectestá definido como o Projeto associado à instância atual. Em seguida, execute o comando abaixo para implantar o arquivo de coleta do modelo../sls-crd-tool apply -f template-ebpfK8sPlugin.yaml Retorne à página Data Import Configurations. Uma instalação bem-sucedida incrementa a contagem de Configurations na seção Resource Monitoring em uma unidade. A contagem permanece inalterada se a instalação falhar.
-
-
Clique em Use Existing Machine Groups.
Após a instalação do componente de monitoramento, o Simple Log Service cria automaticamente um grupo de máquinas chamado
k8s-group-${your_k8s_cluster_id}. Use esse grupo de máquinas diretamente. -
Selecione o grupo de máquinas alvo, como
k8s-group-${your_k8s_cluster_id}. Mova o grupo de Source Machine Group para Applied Machine Group e clique em Next.ImportanteSe o status do heartbeat do grupo de máquinas for FAIL, clique em Automatic Retry. Caso o problema persista, consulte O que fazer se um grupo de máquinas Logtail não tiver heartbeats? para solução de problemas.
-
Na etapa Configure Data Source, defina os parâmetros a seguir e clique em Complete.
Parâmetro
Descrição
Configurações gerais
Configuration Name
Nome da configuração de coleta do Logtail.
Cluster
Nome do cluster.
Após definir este parâmetro, o Simple Log Service adiciona um rótulo
cluster=cluster_nameaos dados de monitoramento coletados por meio desta configuração.ImportanteGaranta que o nome do cluster seja único para evitar conflitos de dados.
Monitor Application Layer Protocols
Ao ativar a chave Monitor Application Layer Protocols, o Logtail analisa protocolos de rede da camada de aplicação, como HTTP, MySQL e Redis.
Statistical Interval of Network Metrics
Intervalo, em segundos, para agregação e relatório de dados de rede da Camada 4. Recomenda-se um valor de 600 segundos ou menos.
Statistical Interval of Protocol Metrics
Intervalo, em segundos, para agregação e relatório de dados de rede de protocolo da Camada 7. Recomenda-se um valor de 60 segundos ou menos.
Protocol Sample Rate
Taxa de amostragem para dados de rede. Esta configuração filtra apenas dados de rede da Camada 7 e não afeta as estatísticas de rede da Camada 4.
Protocol allowlist
Selecione os protocolos da camada de aplicação que deseja analisar.
Kubernetes Selector
Namespace allowlist
Insira uma expressão regular para corresponder aos nomes dos Namespaces dos quais coletar dados.
Namespace denylist
Insira uma expressão regular para corresponder aos nomes dos Namespaces a serem excluídos da coleta de dados.
Pod allowlist
Insira uma expressão regular para corresponder aos nomes dos Pods dos quais coletar dados.
Pod denylist
Insira uma expressão regular para corresponder aos nomes dos Pods a serem excluídos da coleta de dados.
Container allowlist
Insira uma expressão regular para corresponder aos nomes dos contêineres dos quais coletar dados.
Container denylist
Insira uma expressão regular para corresponder aos nomes dos contêineres a serem excluídos da coleta de dados.
Label allowlist
Especifica de quais contêineres coletar dados com base em seus rótulos.
Defina Label key com um nome específico e Label value com uma expressão regular. Por exemplo, definir Label key como io.kubernetes.container.name e Label value como ^(nginx|cube)$ corresponde a contêineres chamados
nginxoucube.Múltiplas entradas são combinadas usando lógica OR. Um contêiner será correspondido se satisfizer qualquer uma das condições especificadas.
Label denylist
Especifica quais contêineres excluir da coleta de dados com base em seus rótulos.
Defina Label key com um nome específico e Label value com uma expressão regular. Por exemplo, definir Label key como io.kubernetes.container.name e Label value como ^(nginx|cube)$ exclui contêineres chamados
nginxoucube.Múltiplas entradas são combinadas usando lógica OR. Um contêiner será excluído se satisfizer qualquer uma das condições especificadas.
Environment Variable Whitelist
Especifica de quais contêineres coletar dados com base em suas variáveis de ambiente.
Defina Env key com um nome específico e Env value com uma expressão regular. Por exemplo, definir Env key como NGINX_SERVICE_PORT e Env value como ^(80|6379)$ corresponde a contêineres onde a variável de ambiente
NGINX_SERVICE_PORTestá definida como80ou6379.Múltiplas entradas são combinadas usando lógica OR. Um contêiner será correspondido se satisfizer qualquer uma das condições especificadas.
Environment Variable Blacklist
Especifica quais contêineres excluir da coleta de dados com base em suas variáveis de ambiente.
Defina Env key com um nome específico e Env value com uma expressão regular. Por exemplo, definir Env key como NGINX_SERVICE_PORT e Env value como ^(80|6379)$ exclui contêineres onde a variável de ambiente
NGINX_SERVICE_PORTestá definida como80ou6379.Múltiplas entradas são combinadas usando lógica OR. Um contêiner será excluído se satisfizer qualquer uma das condições especificadas.
Advanced Settings
Drop Local Packets
Ao ativar a chave Drop Local Packets, o Logtail descarta requisições de rede com endereço de destino local.
Drop Unix Packets
Ao ativar a chave Drop Unix Packets, o Logtail descarta requisições de rede do domínio UNIX.
O domínio UNIX é tipicamente usado para interação de rede local.
Drop Unknown Packets
Ao ativar a chave Drop Unknown Packets, o Logtail descarta requisições de rede que não sejam dos domínios INET ou UNIX.
Read Interval of Container Data
Intervalo, em segundos, para leitura completa dos metadados do contêiner. Recomenda-se um valor de 60 segundos ou menos.
Read Interval of Socket Data
Intervalo, em segundos, para leitura de metadados de socket. Recomenda-se um valor de 30 segundos ou menos.
Protocol Aggregation Window
Tamanho da janela de agregação de dados no nível de processo dentro do intervalo estatístico de métricas de protocolo. Este parâmetro ajuda a controlar o consumo de recursos e evita alto uso de memória pelo Logtail quando há muitas chamadas distintas. O valor padrão é 500 para clientes e 5.000 para servidores.
Após concluir a configuração, o Simple Log Service cria automaticamente ativos, como um Metricstore.
Configurar coleta de dados
Próximos passos
Após a coleta dos dados de monitoramento do plano de dados do Kubernetes, o aplicativo Full-stack Observability gera automaticamente um painel dedicado. Use esse painel para analisar os dados de monitoramento. Para mais informações, consulte Visualizar painéis.
-
-