Varios servicios generan logs automáticamente. Puede generar paquetes de logs en vRealize Automation. También puede configurar el entorno para enviar los logs a vRealize Log Insight.

Utilice el argumento --help en la línea de comandos vracli (por ejemplo, vracli log-bundle --help) para obtener información sobre la utilidad de línea de comandos vracli.

Para obtener información relacionada con el uso de vRealize Log Insight, consulte Cómo se configura el reenvío de logs a vRealize Log Insight en vRealize Automation.

Comandos de paquetes de logs

Puede crear un paquete de logs para que contenga todos los logs generados por los servicios que se ejecutan. Un paquete de logs contiene todos los logs de servicio. Puede utilizar un paquete de logs para solucionar problemas.

En un entorno de clústeres (modo de alta disponibilidad), ejecute el comando vracli log-bundle en un solo nodo. Los logs se extraen de todos los nodos del entorno. Sin embargo, en el caso de un problema de red u otro problema de clúster, los logs se extraen de todos los nodos que puedan alcanzarse. Por ejemplo, si un nodo está desconectado en un clúster de tres nodos, solo se recopilan logs de los dos nodos en buen estado. Los resultados del comando vracli log-bundle contienen información sobre los problemas encontrados y pasos para su solución alternativa.

  • Para crear un paquete de logs, utilice SSH en cualquier nodo y ejecute el siguiente comando vracli:

    vracli log-bundle

  • Para cambiar el valor de tiempo de espera de la recopilación de logs en cada nodo, ejecute el siguiente comando vracli:

    vracli log-bundle --collector-timeout $CUSTOM_TIMEOUT_IN_SECONDS

    Por ejemplo, si su entorno contiene archivos de log grandes, redes lentas o un uso elevado de CPU, puede establecer el tiempo de espera en un valor superior al predeterminado de 1.000 segundos.

  • Para determinar el espacio de disco que consume un log de servicio específico (como ebs o vro), ejecute el siguiente comando vracli y examine la salida del comando:

    vracli disk-mgr

  • Para configurar otras opciones, como el tiempo de espera del ensamblado y la ubicación del búfer, utilice el siguiente comando de ayuda vracli:

    vracli log-bundle --help

Estructura de paquetes de logs

El paquete de logs es un archivo tar con marca de hora. El nombre del paquete coincide con el patrón de archivo log-bundle-<date>T<time>.tar, por ejemplo log-bundle-20200629T131312.tar. Generalmente, el paquete de logs contiene los logs de todos los nodos del entorno. Si se produce un error, este contiene tantos logs como sea posible. Como mínimo, contiene los logs del nodo local.

El paquete de logs se compone del siguiente contenido:
  • Archivo de entorno

    El archivo de entorno contiene los resultados de diversos comandos de mantenimiento de Kubernetes. Proporciona información sobre el uso de recursos actual por nodo y por pod. También contiene información del clúster y descripciones de todas las entidades de Kubernetes disponibles.

  • Configuración y logs de hosts

    La configuración de cada host (por ejemplo, su directorio /etc) y los logs específicos del host (por ejemplo, journald) se recopilan en un directorio para cada host o nodo del clúster. El nombre del directorio coincide con el nombre de host del nodo. El contenido interno del directorio coincide con el sistema de archivos del host. El número de directorios coincide con el número de nodos del clúster.

  • Logs de servicios
    Los registros de los servicios de Kubernetes se encuentran en la siguiente estructura de carpetas:
    • <hostname>/services-logs/<namespace>/<app-name>/file-logs/<container-name>.log
    • <hostname>/services-logs/<namespace>/<app-name>/console-logs/<container-name>.log

    Un nombre de archivo de ejemplo es my-host-01/services-logs/prelude/vco-app/file-logs/vco-server-app.log.

    • hostname es el nombre de host del nodo en el que se ejecuta o se estaba ejecutando el contenedor de la aplicación. Por lo general, hay una instancia para cada uno de los nodos de cada servicio. Por ejemplo, 3 nodos = 3 instancias.
    • namespace es el espacio de nombres de Kubernetes en el que se implementó la aplicación. Para los servicios orientados al usuario, este valor es prelude.
    • app-name es el nombre de la aplicación de Kubernetes que generó los logs (por ejemplo, provisioning-service-app).
    • container-name es el nombre del contenedor que generó los logs. Algunas aplicaciones constan de varios contenedores. Por ejemplo, el contenedor de vco-app incluye los contenedores vco-server-app y vco-controlcenter-app.
  • Logs de pod (heredado)

    Antes de los cambios en la arquitectura de logs realizados en vRealize Automation 8.2, los logs de servicios estaban ubicados en el directorio de cada pod en el paquete de logs. Si bien es posible seguir generando logs de pods en el paquete mediante el comando vracli log-bundle --include-legacy-pod-logs, no se recomienda hacerlo, dado que toda la información de los logs ya reside en los logs de cada uno de los servicios. La inclusión de los logs de pod puede aumentar de forma innecesaria el tiempo y el espacio necesarios para generar el paquete de logs.

Reducir el tamaño del paquete de registros

Para generar un paquete de registros más pequeño, utilice uno de los siguientes comandos vracli log-bundle:

  • vracli log-bundle --since-days n

    Utilice este comando para recopilar solo los archivos de registro que se generaron en el último número de días. De lo contrario, los logs se conservan y se recopilan durante los últimos 2 días. Por ejemplo:

    vracli log-bundle --since-days 1

  • vracli log-bundle --services service_A,service_B,service_C

    Utilice este comando para recopilar solo los registros de los servicios proporcionados con nombre. Por ejemplo:

    vracli log-bundle --services ebs-app,vco-app

  • vracli log-bundle --skip-heap-dumps

    Utilice este comando para excluir todos los volcados de pila del paquete de registros generado.

Mostrar logs

Puede generar los registros de una aplicación o un pod de servicio mediante el comando vracli logs <pod_name>.

Las siguientes opciones de comando están disponibles:
  • --service

    Muestra un registro combinado para todos los nodos de la aplicación en lugar de un solo pod

    Ejemplo: vracli logs --service abx-service-app

  • --tail n

    Muestra las últimas líneas n del registro. El valor de n predeterminado es 10.

    Ejemplo: vracli logs --tail 20 abx-service-app-8598fcd4b4-tjwhk

  • --file

    Muestra solo el archivo especificado. Si no se proporciona un nombre de archivo, se muestran todos los archivos.

    Ejemplo: vracli logs --file abx-service-app.log abx-service-app-8598fcd4b4-tjwhk

Comprender la rotación de logs

En cuanto a la rotación de logs, debe tener en cuenta las siguientes consideraciones sobre logs del servicio:
  • Todos los servicios generan logs. Los logs de servicio se almacenan en un disco /var/log/services-logs dedicado.
  • Todos los logs se rotan con regularidad. La rotación se produce cada hora o cuando se alcanza un límite de tamaño determinado.
  • Todas las rotaciones de logs antiguas se acaban comprimiendo.
  • No hay ninguna cuota por servicio por las rotaciones de logs.
  • El sistema conserva tantos logs como sea posible. La automatización comprueba regularmente el espacio de disco utilizado para los logs. Cuando el espacio se llena en un 70 %, los logs más antiguos se purgan hasta que el espacio de disco de los logs alcanza el 60 % de su capacidad.
  • Puede cambiar el tamaño del disco de logs si necesita más espacio. Consulte Aumentar el espacio de disco del dispositivo de vRealize Automation.

Para comprobar el espacio de disco de los logs, ejecute los siguientes comandos vracli. El espacio libre de /dev/sdc(/var/log) debe estar cerca del 30 % o más para cada nodo.

# 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)