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_SECONDSPor 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
ebsovro), ejecute el siguiente comandovracliy 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.
- 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-appincluye los contenedoresvco-server-appyvco-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 nUtilice 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 1vracli log-bundle --services service_A,service_B,service_CUtilice este comando para recopilar solo los registros de los servicios proporcionados con nombre. Por ejemplo:
vracli log-bundle --services ebs-app,vco-appvracli log-bundle --skip-heap-dumpsUtilice 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>.
- --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
- Todos los servicios generan logs. Los logs de servicio se almacenan en un disco
/var/log/services-logsdedicado. - 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)