Integrar um cluster registrado ao Simple Log Service proporciona uma forma unificada de gerenciar clusters Kubernetes distribuídos em diferentes ambientes. Este tópico descreve como integrar o Simple Log Service a um cluster registrado por meio de um aplicativo no Container Service for Kubernetes (ACK).
Pré-requisitos
Etapa 1: Configure as permissões de RAM
Use o onectl
Instale e configure o onectl em sua máquina local. Para obter mais informações, consulte Manage registered clusters using onectl.
-
Execute o comando a seguir para configurar as permissões de RAM para o componente Simple Log Service:
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.
Use o console
Antes de instalar componentes em um cluster registrado, crie um par de AccessKey para conceder ao cluster permissões de acesso aos serviços de cloud. Para isso, crie um usuário RAM e conceda as permissões necessárias.
-
Create a custom policy. Utilize o conteúdo de política a seguir.
-
Create an AccessKey para o usuário RAM.
AvisoPara aumentar a segurança, configure uma política de controle de acesso à rede para o AccessKey e restrinja o acesso a ambientes de rede confiáveis. Para obter mais informações, consulte AccessKey-based network access restriction policies.
-
Use o par de AccessKey para criar um Secret chamado
alibaba-addon-secretno cluster registrado.Execute o comando a seguir para criar o Secret usado pelo componente Logtail.
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>'NotaSubstitua
<your AccessKey ID>e<your AccessKey Secret>pelos valores do seu par de AccessKey.
Etapa 2: Instale o componente logtail-ds
Use o onectl
Execute o comando a seguir para instalar o componente logtail-ds:
onectl addon install logtail-ds
Saída esperada:
Addon logtail-ds, version **** installed.
Use o console
Acesse o ACK console. No painel de navegação à esquerda, clique em Clusters.
Na página Clusters, clique no nome do cluster desejado. No painel de navegação à esquerda, clique em Add-ons.
Na página Add-ons, clique na guia Logs and Monitoring. Encontre o componente logtail-ds e clique em Install no canto inferior direito do cartão.
Na caixa de diálogo Note, clique em OK.
(Opcional) Etapa 3: Configure a coleta de logs dos pods
Logs de texto
Para coletar logs de texto dos pods, conecte-se ao cluster registrado usando kubectl e aplique a seguinte configuração do AliyunLogConfig.
apiVersion: log.alibabacloud.com/v1alpha1
kind: AliyunLogConfig
metadata:
name: test-file # The name of the resource. The name must be unique in the Kubernetes cluster.
spec:
project: k8s-log-c326bc86**** # Optional. The name of the project. You can customize the name. We recommend that you name the project in the k8s-log-<cluster-id> format.
logstore: test-file # Required. The name of the Logstore. If the specified Logstore does not exist, Simple Log Service automatically creates it.
logtailConfig: # The Logtail configuration.
inputType: file # The type of the data source. Set the value to file for text logs or plugin for stdout.
configName: test-file # The name of the Logtail configuration. The name must be the same as the resource name specified by metadata.name.
inputDetail: # The details of the Logtail configuration.
logType: common_reg_log # Collects text logs in simple mode.
logPath: /log/ # The path where the log files are stored.
filePattern: "*.log" # The name of the log file. You can use asterisks (*) and question marks (?) as wildcards. Example: log_*.log.
dockerFile: true # Specifies whether to collect logs from files in containers. Set the value to true.
advanced: # Specifies the conditions to filter containers.
k8s:
K8sNamespaceRegex: ^(default)$
K8sPodRegex: '^(nginx-log-demo.*)$'
K8sContainerRegex: ^(nginx-log-demo-0)$
IncludeK8sLabel:
job-name: "^(nginx-log-demo.*)$"
Para obter mais informações sobre os parâmetros, consulte Logtail configurations (Legacy).
Stdout
Para coletar o stdout dos pods, conecte-se ao cluster registrado usando kubectl e aplique a seguinte configuração do AliyunLogConfig. Essa configuração cria automaticamente um Logstore chamado stdout-logstore e coleta os logs nele.
apiVersion: log.alibabacloud.com/v1alpha1
kind: AliyunLogConfig
metadata:
# The name of your configuration. The name must be unique in your Kubernetes cluster.
name: stdout-collector
spec:
# The name of the Logstore to which logs are uploaded.
logstore: stdout-logstore
# The details of the Logtail configuration.
logtailConfig:
# The input type for Docker stdout. Must be 'plugin'.
inputType: plugin
# The name of the Logtail configuration. Must match metadata.name.
configName: stdout-collector
inputDetail:
plugin:
inputs:
-
type: service_docker_stdout
detail:
# Collects stdout and stderr.
Stdout: true
Stderr: true
# Collects the stdout of all containers except for those with the COLLECT_STDOUT_FLAG:false environment variable.
Etapa 4: Configure o Simple Log Service
Para obter mais informações, consulte Configure Simple Log Service when you create an application.
Para obter mais informações sobre como coletar logs do Ingress, consulte Collect and analyze access logs of NGINX Ingress controllers.