Vários serviços geram logs automaticamente. Você pode gerar pacotes de log no VMware Aria Automation. Você também pode configurar seu ambiente para enviar logs ao VMware Aria Operations for Logs.
Use o argumento --help
na linha de comando vracli
(por exemplo, vracli log-bundle --help
) para obter informações sobre o utilitário de linha de comando vracli
.
Para obter informações relacionadas sobre como usar o VMware Aria Operations for Logs, consulte Como configurar o encaminhamento de logs ao VMware Aria Operations for Logs no VMware Aria Automation .
Comandos de pacotes de logs
É possível criar um pacote de logs para conter todos os logs que são gerados pelos serviços que você executa. Um pacote de log contém todos os seus logs de serviço. Você pode usar um pacote de log para solução de problemas.
Em um ambiente em cluster (modo de alta disponibilidade), execute o comando vracli log-bundle
em apenas um nó. Logs são extraídos de todos os nós do ambiente. No entanto, no caso de um problema de rede ou outro problema de cluster, os logs serão extraídos de quantos nós puderem ser alcançados. Por exemplo, se um nó for desconectado em um cluster de três nós, logs serão coletados apenas dos dois nós íntegros. A saída do comando vracli log-bundle
contém informações sobre quaisquer problemas encontrados e suas etapas de solução alternativa.
- Para criar um pacote de logs, aplique SSH a qualquer nó e execute o seguinte comando
vracli
:vracli log-bundle
- Para alterar o valor de tempo limite para a coleta de logs de cada nó, execute o seguinte comando
vracli
:vracli log-bundle --collector-timeout $CUSTOM_TIMEOUT_IN_SECONDS
Por exemplo, se o seu ambiente contiver arquivos de log grandes, rede lenta ou alto uso de CPU, você poderá definir o tempo limite para mais do que o valor padrão de 1000 segundos.
- Para determinar o espaço em disco consumido por um log de serviço específico, como o
ebs
ou ovro
, execute o seguinte comandovracli
e examine a saída do comando:vracli disk-mgr
- Para configurar outras opções, como tempo limite de assembly e local do buffer, use o seguinte comando de ajuda
vracli
:vracli log-bundle --help
Estrutura do pacote de logs
O pacote de logs é um arquivo tar com carimbo de data/hora. O nome do pacote corresponde ao formato de arquivo padrão log-bundle-<date>T<time>.tar
, por exemplolog-bundle-20200629T131312.tar
. Normalmente, o pacote de logs configurável contém logs de todos os nós no ambiente. Em caso de erro, ele conterá o máximo de logs possível. Ele contém pelo menos os logs do nó local.
- Arquivo de ambiente
O arquivo de ambiente contém a saída de vários comandos de manutenção do Kubernetes. Ele fornece informações sobre o uso atual de recursos por nó e por pod. Ele também contém informações de cluster e a descrição de todas as entidades Kubernetes disponíveis.
- Logs e configuração de host
A configuração de cada host (por exemplo, seu diretório
/etc
) e os logs específicos do host (por exemplo,journald
) são coletados em um único diretório para cada nó ou host do cluster. O nome do diretório corresponde ao nome do host do nó. O conteúdo interno do diretório corresponde ao sistema de arquivos do host. O número de diretórios corresponde ao número de nós do cluster. - Logs de serviços
Logs para serviços Kubernetes estão localizados na seguinte estrutura de pastas:
<hostname>/services-logs/<namespace>/<app-name>/file-logs/<container-name>.log
<hostname>/services-logs/<namespace>/<app-name>/console-logs/<container-name>.log
Um exemplo de nome de arquivo é
my-host-01/services-logs/prelude/vco-app/file-logs/vco-server-app.log
.- nome do host é o nome do host do nó no qual o contêiner do aplicativo está ou estava em execução. Normalmente, há uma instância para cada nó de cada serviço. Por exemplo, 3 nós = 3 instâncias.
- namespace é o namespace Kubernetes no qual o aplicativo está implantado. Para serviços voltados para o usuário, esse valor é
prelude
. - app-name é o nome do aplicativo Kubernetes que produziu os logs (por exemplo
provisioning-service-app
). - container-name é o nome do contêiner que produziu os logs. Alguns aplicativos consistem em vários contêineres. Por exemplo, o contêiner
vco-app
inclui os contêineresvco-server-app
evco-controlcenter-app
.
- Logs de pod (legados)
Embora você possa continuar a gerar logs de pods no pacote usando o comando
vracli log-bundle --include-legacy-pod-logs
, isso não é aconselhável, pois todas as informações de logs já residem nos logs de cada serviço. Incluir logs de pod pode aumentar desnecessariamente o tempo e o espaço necessários para gerar o pacote de logs.
Reduzindo o tamanho do pacote de logs
Para gerar um pacote de logs menor, use um dos seguintes comandos vracli log-bundle
:
vracli log-bundle --since-days n
Use este comando para coletar apenas arquivos de log que foram gerados nos últimos dias. Caso contrário, os logs serão retidos e coletados nos últimos 2 dias. Por exemplo:
vracli log-bundle --since-days 1
vracli log-bundle --services serviço_A,serviço_B,serviço_C
Use esse comando para coletar apenas os logs dos serviços fornecidos nomeados. Por exemplo:
vracli log-bundle --services ebs-app,vco-app
vracli log-bundle --skip-heap-dumps
Use esse comando para excluir todos os dumps de heap do pacote de log gerado.
Exibindo logs
Você pode gerar os logs de um pod ou aplicativo de serviço usando o comando vracli logs <pod_name>
.
- --service
Exibe um log mesclado para todos os nós do aplicativo em vez de um único pod
Exemplo:
vracli logs --service abx-service-app
- --tail n
Exibe as últimas n linhas do log. O valor padrão de n é 10.
Exemplo:
vracli logs --tail 20 abx-service-app-8598fcd4b4-tjwhk
- --file
Exibe apenas o arquivo especificado. Se um nome de arquivo não for fornecido, todos os arquivos serão mostrados.
Exemplo:
vracli logs --file abx-service-app.log abx-service-app-8598fcd4b4-tjwhk
Compreendendo a rotação de log
- Todos os serviços produzem logs. Os logs de serviço são armazenados em um disco
/var/log/services-logs
dedicado. - Todos os logs são rotacionados regularmente. A rotação ocorre de hora em hora ou quando um determinado limite de tamanho é atingido.
- Todas as rotações de log antigas são eventualmente compactadas.
- Não há quota por serviço para rotações de log.
- O sistema mantém o máximo de logs possível. A automação verifica regularmente o espaço em disco usado para logs. Quando o espaço fica 70% cheio, os logs mais antigos são limpos até que o espaço em disco dos logs fique 60% cheio.
- Você poderá redimensionar seu disco de logs se precisar de mais espaço. Consulte Aumentar o espaço em disco do dispositivo VMware Aria Automation.
Para verificar o espaço em disco dos logs, execute os seguintes comandos vracli
. O espaço livre de /dev/sdc(/var/log)
deve ser próximo a 30% ou mais para cada nó.
# vracli cluster exec -- bash -c 'current_node; vracli disk-mgr; exit 0' sc1-10-182-1-103.eng.vmware.com /dev/sda4(/): Total size: 47.80GiB Free: 34.46GiB(72.1%) Available(for non-superusers): 32.00GiB(66.9%) SCSI ID: (0:0) /dev/sdb(/data): Total size: 140.68GiB Free: 116.68GiB(82.9%) Available(for non-superusers): 109.47GiB(77.8%) SCSI ID: (0:1) /dev/sdc(/var/log): Total size: 21.48GiB Free: 20.76GiB(96.6%) Available(for non-superusers): 19.64GiB(91.4%) SCSI ID: (0:2) /dev/sdd(/home): Total size: 29.36GiB Free: 29.01GiB(98.8%) Available(for non-superusers): 27.49GiB(93.7%) SCSI ID: (0:3)