Vários serviços geram logs automaticamente. Você pode gerar pacotes de log no vRealize Automation. Você também pode configurar seu ambiente para enviar logs ao vRealize Log Insight.

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 vRealize Log Insight, consulte Como configurar o encaminhamento de logs ao vRealize Log Insight no vRealize 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 o vro, execute o seguinte comando vracli 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.

O pacote de logs inclui o seguinte conteúdo:
  • 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êineres vco-server-app e vco-controlcenter-app.
  • Logs de pod (legados)

    Antes das alterações na arquitetura de registro feitas no vRealize Automation 8.2, os logs de serviços estavam localizados no diretório de cada pod do pacote de log. 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>.

As seguintes opções de comando estão disponíveis:
  • --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

Quanto à rotação de log, reconheça as seguintes considerações de log de serviço:
  • 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 vRealize 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)