Ao executar clusters Kubernetes fora do ACK — como em um data center on-premises — você perde a observabilidade nativa oferecida pelos clusters gerenciados. O Simple Log Service (SLS) preenche essa lacuna ao fornecer coleta e análise centralizada de logs em todos os seus clusters registrados, independentemente de onde estejam em execução.
Este tópico orienta você em três tarefas: conceder as permissões do Resource Access Management (RAM) necessárias para o add-on logtail-ds, instale o add-on e, opcionalmente, configure regras de coleta de logs para todo o cluster.
Pré-requisitos
Antes de começar, certifique-se de que:
Você possui um cluster registrado no ACK One com um cluster Kubernetes autogerenciado conectado a ele. Consulte Crie um cluster registrado no ACK One.
O kubeconfig do cluster foi baixado e o kubectl está conectado ao cluster registrado. Consulte Obter o kubeconfig do cluster e conectar-se ao cluster registrado usando kubectl.
Etapa 1: Configure permissões do RAM para componentes do SLS
O add-on logtail-ds requer permissões do RAM para gravar logs no SLS. Dois métodos estão disponíveis:
|
Método |
Mais indicado para |
|
onectl (recomendado) |
Caminho mais rápido — um único comando concede automaticamente todas as permissões necessárias. |
|
Console |
Cenários que exigem controle refinado sobre o usuário e a política do RAM. |
Usar o onectl (recomendado)
Instale o onectl na sua máquina on-premises. Consulte Usar o onectl para gerencie clusters registrados.
-
Conceda permissões do RAM para os componentes do SLS:
onectl ram-user grant --addon logtail-dsSaída esperada:
Ram policy ack-one-registered-cluster-policy-logtail-ds granted to ram user ack-one-user-ce313528c3 successfully.
Usar o console
Este método exige a criação de um usuário do RAM, a anexação de uma política personalizada e o armazenamento das credenciais como um Secret do Kubernetes.
-
Crie uma política personalizada com o seguinte conteúdo:
-
Crie um AccessKey para o usuário do RAM.
AvisoConfigure uma política de rede para restringir chamadas do AccessKey a ambientes de rede confiáveis. Consulte Política de restrição de acesso à rede do AccessKey.
-
Crie um Secret chamado
alibaba-addon-secretno namespacekube-systemusando o AccessKey da etapa anterior:kubectl -n kube-system create secret generic alibaba-addon-secret \ --from-literal='access-key-id=<your AccessKey ID>' \ --from-literal='access-key-secret=<your AccessKey Secret>'
Etapa 2: Instale o componente logtail-ds
Usar o onectl (recomendado)
Instale o logtail-ds com um único comando:
onectl addon install logtail-ds
Saída esperada:
Addon logtail-ds, version **** installed.
Usar o console
Faça login no console do ACK. No painel de navegação à esquerda, clique em Clusters.
Na página Clusters, clique em no nome do seu cluster registrado. No painel de navegação à esquerda, clique em Add-ons.
Na página Add-ons, clique em na aba Logs and Monitoring. Localize o logtail-ds e clique em Install no canto inferior direito do cartão correspondente.
Na caixa de diálogo de confirmação, clique em OK.
(Opcional) Etapa 3: Configure a coleta de logs para todos os pods
Conecte-se ao cluster registrado via kubectl e aplique a configuração correspondente ao tipo de log desejado.
Logs de texto
Implante o seguinte recurso AliyunLogConfig para coletar arquivos de log de texto de todos os pods:
apiVersion: log.alibabacloud.com/v1alpha1
kind: AliyunLogConfig
metadata:
name: test-file # Must be unique in the cluster.
spec:
project: k8s-log-c326bc86**** # Optional. Recommended format: k8s-log-<cluster ID>.
logstore: test-file # Required. SLS creates this Logstore automatically if it does not exist.
logtailConfig:
inputType: file # "file" for text logs; "plugin" for standard output.
configName: test-file # Must match metadata.name.
inputDetail:
logType: common_reg_log # Collect text logs in simple mode.
logPath: /log/ # Directory where log files are located.
filePattern: "*.log" # Supports wildcard characters * and ?.
dockerFile: true # Set to true to collect files inside containers.
advanced: # Optional container filter conditions.
k8s:
K8sNamespaceRegex: ^(default)$
K8sPodRegex: '^(nginx-log-demo.*)$'
K8sContainerRegex: ^(nginx-log-demo-0)$
IncludeK8sLabel:
job-name: "^(nginx-log-demo.*)$"
Para obter a referência completa dos campos de configuração do Logtail, consulte Configurações do Logtail (legado).
Saída padrão
Implante o seguinte recurso AliyunLogConfig para coletar stdout e stderr de todos os contêineres. Após uma implantação bem-sucedida, o SLS cria automaticamente um Logstore chamado stdout-logstore e inicia a coleta de logs nele.
Todos os contêineres são incluídos por padrão, exceto aqueles com COLLECT_STDOUT_FLAG:false defina na configuração de ambiente do Docker.
apiVersion: log.alibabacloud.com/v1alpha1
kind: AliyunLogConfig
metadata:
name: stdout-collector # Must be unique in the cluster.
spec:
logstore: stdout-logstore # Logstore to upload logs to.
logtailConfig:
inputType: plugin # Use "plugin" for Docker stdout.
configName: stdout-collector # Must match metadata.name.
inputDetail:
plugin:
inputs:
- type: service_docker_stdout
detail:
Stdout: true
Stderr: true
# Collects all containers except those with "COLLECT_STDOUT_FLAG:false" in Docker env config.
Etapa 4: Configure o Simple Log Service
Com o logtail-ds instalado e a coleta de logs em execução, configure o SLS para processar e analisar os logs coletados:
Para configure o SLS durante a criação de uma nova aplicação, consulte Configure o Simple Log Service ao crie uma aplicação.
Para coletar e analisar logs de acesso do Nginx Ingress, consulte Coletar e analisar logs de acesso do Nginx Ingress.