Colete logs de contêineres de clusters do Container Service for Kubernetes (ACK) pertencentes a diferentes contas Alibaba Cloud e centralize-os em um único projeto do Simple Log Service.
Contexto
Uma empresa de e-commerce executa dois aplicativos em clusters Kubernetes na região China (Hangzhou) e utiliza o Simple Log Service na mesma região para gerenciar seus logs.
O Aplicativo A está implantado em um cluster Kubernetes da conta Alibaba Cloud A (12****456). O Simple Log Service dessa conta gerencia os logs do aplicativo.
O Aplicativo B está implantado em um cluster Kubernetes da conta Alibaba Cloud B (17****397). O Simple Log Service dessa conta gerencia os logs do aplicativo.
A empresa deseja centralizar os logs de ambos os aplicativos no projeto do Simple Log Service da conta Alibaba Cloud A (12****456), armazenando os logs de cada aplicativo em um Logstore separado. Para isso, crie uma configuração de coleta Logtail, um grupo de máquinas e um Logstore para o Aplicativo B. A configuração existente de coleta de logs para o Aplicativo A permanece inalterada.
Etapa 1: Definir o identificador da conta Alibaba Cloud
Componente Loongcollector
-
Defina o identificador de usuário como a conta Alibaba Cloud A.
Faça login no console ACK com a conta Alibaba Cloud B.
Na página Clusters, clique em nome do cluster desejado.
No painel de navegação à esquerda, selecione .
Na página Helm, selecione o namespace kube-system e clique em Update na coluna Actions do aplicativo loongcollector.
-
Na caixa de diálogo Update Release, na seção Target Helm Chart Values Configuration:
Configure aliUid com o ID de uma conta Alibaba Cloud. Use vírgula (,) para separar vários IDs de conta, por exemplo,
17****397,12****456.Anote o valor de baseMachineGroupName. Este é o identificador personalizado do grupo de máquinas. Ao criar um grupo de máquinas no Simple Log Service, defina o parâmetro Custom Identifier com esse valor, por exemplo,
k8s-group-cc47****54428. Os camposaccessKeyID,accessKeySecreteclusterAgenttambém são obrigatórios nesta seção.
Marque a caixa de seleção I acknowledge that the current parameters will be completely overwritten during the update and I understand the related risks outlined in the "Disclaimer" e clique em OK.
No painel de navegação à esquerda, clique em . No namespace kube-system, clique em loongcollector-ds para abrir sua página de detalhes. Confirme se todos os pods estão com status Running e foram criados após a atualização da configuração.
Componente Logtail-ds
-
Defina o identificador de usuário como a conta Alibaba Cloud A.
Faça login no console ACK com a conta Alibaba Cloud B.
Na página Clusters, clique em cluster desejado.
No painel de navegação à esquerda, selecione .
Defina o Namespace como kube-system. Em seguida, na lista de ConfigMaps, localize alibaba-log-configuration e clique em Edit.
-
No painel Edit, execute as etapas a seguir e clique em OK.
Adicione o ID da conta Alibaba Cloud A ao ConfigMap log-ali-uid e anote o valor do ConfigMap log-machine-group (por exemplo, k8s-group-cc47****54428) para usar como Custom Identifier ao criar um grupo de máquinas.
Separe vários IDs de conta com vírgulas (,). Exemplo:
17****397,12****456.
-
Reinicie o logtail-ds para aplicar a configuração.
Na página de detalhes do logtail-ds, confirme se todos os pods estão com status Running e foram criados após a atualização da configuração.
Etapa 2: Criar um grupo de máquinas
Faça login no console do Simple Log Service com a conta Alibaba Cloud A.
Na seção Projects, clique em Project desejado.
No painel de navegação à esquerda, selecione .
À direita de Machine Groups, clique em .
-
Na caixa de diálogo Create Machine Group, configure os parâmetros a seguir e clique em OK.
Defina o Custom Identifier com o identificador do grupo de máquinas obtido na Etapa 1: Definir o identificador da conta Alibaba Cloud, por exemplo, k8s-group-cc47****54428. Para mais informações sobre outros parâmetros, consulte Create a machine group with a custom identifier. Defina Name como
k8s-group, selecione Custom Identifier para Machine Group Identifier e insira o valor do identificador personalizado, comok8s-group-cc{Instance ID}, na caixa de texto Custom Identifier. -
Verifique se o status de heartbeat de todos os servidores no grupo de máquinas está OK.
Na lista de grupos de máquinas, clique em grupo de máquinas desejado.
-
Na página Machine Group Configurations, visualize o status de heartbeat dos nós de contêiner (ECS).
Um status de Heartbeat igual a OK indica que o nó de contêiner está conectado ao Simple Log Service. Se o status for FAIL, consulte Logtail machine group has no heartbeat. O grupo de máquinas estará pronto quando todos os nós exibirem OK.
Etapa 3: Criar uma configuração de coleta Logtail
Faça login no console do Simple Log Service com a conta Alibaba Cloud A.
Na área Data Collection, clique em Kubernetes - File.
Selecione o Project e o LogStore desejados e clique em Next.
Clique em Use Existing Machine Groups.
Selecione o grupo de máquinas criado na Etapa 2: Criar um grupo de máquinas, mova-o de Source Machine Group para Applied Machine Group e clique em Next.
-
Configure a coleta Logtail e clique em Next.
Para mais informações sobre os parâmetros, consulte Collect container text logs in DaemonSet mode by using the console.
Importante-
Por padrão, apenas uma configuração de coleta Logtail pode corresponder a um arquivo. Como a configuração de coleta da conta B ainda está ativa, a nova configuração da conta A não entra em vigor. Use um dos métodos a seguir para ativar a configuração da conta A:
Interrompa a coleta de logs da conta B. Para isso, faça login no console SLS com a conta B e remova a configuração de coleta Logtail do grupo de máquinas de destino. Para mais informações, consulte Apply a Logtail configuration to a specified machine group.
Adicione uma configuração de coleta forçada para a conta A. Para mais informações, consulte How to collect logs from a file multiple times.
Após criar a configuração de coleta Logtail, exclua a configuração original da conta Alibaba Cloud B para evitar duplicidade na coleta de logs. Para mais informações, consulte Delete a Logtail configuration.
-
-
Visualize os dados, configure um índice e clique em Next.
O Simple Log Service habilita a indexação de texto completo por padrão. Você também pode criar índices de campo manual ou automaticamente com base nos logs coletados. Para mais informações, consulte Create indexes.
Operações relacionadas
Para migrar dados históricos da conta Alibaba Cloud B para o Logstore atual, crie uma tarefa de transformação de dados no Logstore de origem. Para mais informações, consulte Replicate data from a LogStore.
Ao transformar dados entre contas, use uma função personalizada para autorização.
O primeiro Role ARN concede à tarefa de transformação de dados acesso de leitura ao Logstore de origem. Para mais informações, consulte Grant a RAM role read-only access to a source LogStore.
O segundo Role ARN concede à tarefa de transformação de dados acesso de gravação ao Logstore de destino. Para mais informações, consulte Grant a RAM role the permissions to write data to a target LogStore (cross-account).
> Create Machine Group