Defina variáveis de ambiente para direcionar logs do ECI a projetos, Logstores e grupos de máquinas personalizados no SLS.
Contexto
O Simple Log Service (SLS) é uma solução completa para dados de log que permite coletar, consumir, enviar, consultar e analisar logs sem desenvolvimento personalizado. Para mais informações, consulte Introdução ao Simple Log Service.
O SLS é cobrado conforme o uso. Consulte Visão geral do faturamento.
Ao ativar a coleta de logs durante a criação da instância ECI, o sistema cria um projeto e um grupo de máquinas padrão:
Nome do projeto:
eci-log-default-project-{Region}-{AccountID}.Nome do grupo de máquinas:
eci-log-default-machine-group-{Region}.
Para usar um projeto, Logstore ou grupo de máquinas personalizado, defina as configurações de log como variáveis de ambiente do contêiner. Se os recursos especificados não existirem no SLS, o sistema os criará automaticamente.
Observações de uso
As variáveis de ambiente relacionadas a logs têm efeito apenas na criação da instância. O sistema ignora variáveis definidas durante atualizações.
Exclua projetos personalizados e configurações do Logtail não utilizados para evitar cobranças.
Renomear uma variável de ambiente não exclui a configuração original. Exclua-a manualmente para evitar custos adicionais.
Configuração
Transmita configurações personalizadas de log (projeto, Logstore, configuração do Logtail, grupo de máquinas, quantidade de shards, período de retenção e tag) como variáveis de ambiente do contêiner.
Os nomes das variáveis de ambiente relacionadas a logs devem começar com aliyun_logs_{key}, onde {key} é o nome da configuração do Logtail. A chave aceita apenas letras minúsculas, dígitos e hifens (-).
|
Parâmetro |
Variável de ambiente |
Descrição do valor |
|
Configuração do Logtail |
aliyun_logs_{key} |
Crie uma configuração do Logtail e especifique o caminho de coleta de logs.
|
|
Projeto |
aliyun_logs_{key}_project |
Especifica o projeto. Requisitos de nomenclatura:
Nota
Os nomes dos projetos devem ser globalmente exclusivos e não podem ser alterados após a criação. Nomes inválidos são ignorados e o projeto padrão é utilizado. |
|
Logstore |
aliyun_logs_{key}_logstore |
Especifica o Logstore. Requisitos de nomenclatura:
Nota
Nomes inválidos são ignorados e o Logstore padrão é utilizado. O nome do Logstore padrão corresponde ao nome da configuração do Logtail |
|
Grupo de máquinas |
aliyun_logs_{key}_machinegroup |
Especifica o grupo de máquinas. Requisitos de nomenclatura:
Nota
Nomes inválidos são ignorados e o grupo de máquinas padrão é utilizado. |
|
Shard |
aliyun_logs_{key}_shard |
Defina o número de shards para o Logstore. O valor deve ser um número inteiro de 1 a 10. Os logs lidos e gravados em um Logstore são armazenados em shards. Cada Logstore possui dois shards por padrão. |
|
Período de retenção de logs |
aliyun_logs_{key}_ttl |
Defina o período de retenção de logs em dias. O valor deve ser um número inteiro de 1 a 3.650.
|
|
Tag |
aliyun_logs_{key}_tags |
Adiciona uma tag aos logs. O valor deve estar no formato |
Após a configuração, o sistema coleta logs da instância ECI para o projeto e o Logstore especificados.
Se o Logstore e a configuração do Logtail especificados não existirem, o sistema os criará automaticamente.
-
Se você utilizar um Logstore e uma configuração do Logtail existentes, verifique se Docker File: está ativado. Caso contrário, a coleta de logs falhará.
NotaPara coletar logs sem ativar Docker File:, monte manualmente o diretório de logs em um volume EmptyDir.
Exemplos
O exemplo a seguir utiliza estas configurações personalizadas de log:
Nomes da configuração do Logtail e do Logstore: Logs de saída padrão são salvos em
stdout-ecie logs de arquivos de texto emfile-eci.Nome do projeto:
project-eci-testNome do grupo de máquinas:
mg-eci-test
Estes são valores de exemplo. Use suas próprias configurações e garanta que o nome do projeto seja globalmente exclusivo.
API
Chame a operação CreateContainerGroup e defina as variáveis de ambiente com os parâmetros Container.N.EnvironmentVar.N.Key e Container.N.EnvironmentVar.N.Value:
ContainerGroupName=test-sls
Container.1.Name=busybox
Container.1.Image=registry-vpc.cn-shanghai.aliyuncs.com/eci_open/busybox:1.30
Container.1.Command.1=/bin/sh
Container.1.Arg.1=-c
Container.1.Arg.2=mkdir -p /log;while true; do echo hello world; date; echo hello sls >> /log/busy.log; sleep 1;done
# Collect stdout logs
Container.1.EnvironmentVar.1.Key=aliyun_logs_stdout-eci
Container.1.EnvironmentVar.1.Value=stdout
Container.1.EnvironmentVar.2.Key=aliyun_logs_stdout-eci_project
Container.1.EnvironmentVar.2.Value=project-eci-test
Container.1.EnvironmentVar.3.Key=aliyun_logs_stdout-eci_machinegroup
Container.1.EnvironmentVar.3.Value=mg-eci-test
# Collect text files
Container.1.EnvironmentVar.4.Key=aliyun_logs_file-eci
Container.1.EnvironmentVar.4.Value=/log/*.log
Container.1.EnvironmentVar.5.Key=aliyun_logs_file-eci_project
Container.1.EnvironmentVar.5.Value=project-eci-test
Container.1.EnvironmentVar.6.Key=aliyun_logs_file-eci_machinegroup
Container.1.EnvironmentVar.6.Value=mg-eci-test
Console
Ao criar uma instância ECI no console do Elastic Container Instance, na seção Container Configurations, selecione um contêiner, expanda Advanced Settings e ative Environment Variable para adicionar suas variáveis.
Para coletar logs de saída padrão, adicione as seguintes variáveis de ambiente: aliyun_logs_stdout-eci = stdout, aliyun_logs_stdout-eci_project = project-eci-test e aliyun_logs_stdout-eci_machinegroup = mg-eci-test. Para coletar logs de arquivos de texto, adicione: aliyun_logs_file-eci = /log/*.log, aliyun_logs_file-eci_project = project-eci-test e aliyun_logs_file-eci_machinegroup = mg-eci-test.
Verifique os resultados
No console do Simple Log Service, abra o projeto desejado para visualizar os logs no Logstore.
Saída padrão
Abra o projeto project-eci-test e selecione o Logstore stdout-eci. Os logs de saída padrão incluem campos como _container_name_, _image_name_, _namespace_, _pod_name_, _pod_uid_, _source_ e content.
Arquivo de texto
Visualize os logs de arquivos de texto coletados da instância ECI no Logstore, com o conteúdo hello sls.