La recopilación de registros en Google Distributed Cloud (GDC) aislado te permite agregar eventos operativos
de tus flujos de trabajo de Kubernetes para supervisar y solucionar problemas. Implementa un recurso personalizado LoggingTarget en el servidor de la API de Management para extraer, indexar y etiquetar los registros del proyecto de las máquinas virtuales (VMs) de los nodo trabajador de Kubernetes. Esta
canalización no admite la recopilación de registros de VMs de usuario independientes.
Después de configurar la recopilación de registros, puedes consultar y ver los registros en Grafana o a través de la API de Log Query. Para obtener recomendaciones sobre la instrumentación, consulta los lineamientos de registro de Kubernetes.
Antes de comenzar
Para obtener los permisos que necesitas para administrar los recursos personalizados de LoggingTarget, pídele a tu administrador de la organización de IAM o al administrador del proyecto de IAM que te otorgue uno
de los roles de LoggingTarget asociados.
Según el nivel de acceso y los permisos que necesites, puedes obtener roles de creador, editor o visualizador para este recurso en una organización o un proyecto. Para obtener más información, consulta Prepara los permisos de IAM.
Configura el recurso personalizado LoggingTarget
El recurso personalizado LoggingTarget indica a la canalización de registro que recopile
registros dentro de tu proyecto de GDC. Puedes especificar los
destinos para los que recopilas registros, un analizador de registros, niveles de acceso y cualquier
parámetro de configuración adicional.
Este recurso define los siguientes parámetros de configuración:
- Destinos: Son los criterios para seleccionar los Pods y contenedores de los que deseas recopilar registros. Puedes especificar nombres de clústeres, prefijos de nombres de Pods y prefijos de nombres de contenedores.
- Analizador de registros: Es un analizador predefinido para interpretar entradas de registro, asignar salidas de registro a etiquetas y extraer campos relevantes.
- Identificación del servicio: Es el nombre del servicio que se aplica como etiqueta a las entradas de registro para facilitar la identificación y el filtrado.
Autorización: Es el nivel de acceso para las entradas de registro, que controla quién puede ver los registros recopilados.
Si configuras estos parámetros en el recurso personalizado LoggingTarget, puedes
controlar con precisión la recopilación y la organización de los registros.
Sigue estos pasos para recopilar registros operativos:
- Determina el proyecto de GDC del que deseas recopilar registros.
En la configuración de
LoggingTarget, especifica los Pods para recopilar los registros operativos, el espacio de nombres del proyecto y cualquier parámetro de configuración adicional.En el siguiente archivo YAML, se muestra un ejemplo de una configuración de
LoggingTargetenmy-project-namespace, en la que el prefijo del nombre del Pod del que se recopilan los registros esmy-pod-prefix, el nivel de acceso para las entradas de registro se otorga a los operadores de aplicaciones (ao), el nombre del servicio esmy-service-namey el formato de registro es JSON:# Configures a log scraping job apiVersion: logging.gdc.goog/v1 kind: LoggingTarget metadata: # Choose a namespace that matches the namespace of the workload pods. namespace: my-project-namespace name: my-logging-target spec: selector: matchPodNames: - my-pod-prefix parser: json logAccessLevel: ao serviceName: my-service-nameConsulta la especificación completa de
LoggingTargety la documentación de referencia de la API para obtener más campos y opciones.Aplica la configuración de
LoggingTargetal servidor de la API de Management dentro del mismo espacio de nombres que tus Pods de destino:kubectl --kubeconfig KUBECONFIG_PATH apply -f LOGGING_TARGET_NAME.yamlReemplaza lo siguiente:
KUBECONFIG_PATH: Es la ruta de acceso al archivo kubeconfig del servidor de la API de administración.LOGGING_TARGET_NAME: Es el nombre del archivo de definición deLoggingTarget, comomy-logging-target.
La canalización de registros comienza a recopilar registros de los componentes adicionales de tu proyecto.
Puedes consultar los registros recopilados con la interfaz de usuario de Grafana o la API de consulta de registros. Para obtener más información, consulta Consulta y visualiza registros.
Si usas Grafana para consultar tus registros, puedes usar la función integrada de codificación por colores para diferentes niveles de registro. Para obtener más información sobre cómo configurar los valores de nivel de registro, consulta https://grafana.com/docs/grafana/latest/explore/logs-integration/.
Especificación de LoggingTarget completa
En el siguiente archivo YAML, se muestra un ejemplo de la especificación completa del
recurso personalizado LoggingTarget. Para obtener más información y una descripción completa
de los campos, consulta la
documentación de referencia de la API.
# Configures a log scraping job
apiVersion: logging.gdc.goog/v1
kind: LoggingTarget
metadata:
# Choose a namespace that matches the namespace of the workload pods.
namespace: PROJECT_NAMESPACE
name: LOGGING_TARGET_NAME
spec:
# Choose a matching pattern that identifies the pods for this job.
# Optional.
# Relationship between different selectors: 'AND'
selector:
# The clusters to collect logs from.
# The default configuration is to collect logs from all clusters.
# The relationship between different clusters is an 'OR' relationship.
# Optional
matchClusters:
- my-cluster
- another-cluster
# The pod name prefixes to collect logs from.
# The logging platform scrapes all pods with names
# that start with the specified prefixes.
# The values must contain '[a-z0-9-]' characters only.
# The relationship between different list elements is an 'OR' relationship.
# Optional.
matchPodNames:
- my-pod-prefix
- another-pod-prefix
# The container name prefixes to collect logs from.
# The logging platform scrapes all containers with names
# that start with the specified prefixes.
# The values must contain '[a-z0-9-]' characters only.
# The relationship between different list elements is an 'OR' relationship.
# Optional.
matchContainerNames:
- my-container-prefix
- another-container-prefix
# Choose the predefined parser for log entries.
# Use parsers to map the log output to labels and extract fields.
# Specify the log format.
# Optional.
# Options: klog_text, klog_json, klogr, gdch_json, json
parser: klog_text
# Specify an access level for log entries.
# The default value is 'ao'.
# Optional.
# Options: ao, pa, io
logAccessLevel: ao
# Specify a service name to be applied as a label.
# For user workloads consider this field as a workload name.
# Required.
serviceName: my-service-name
# The additional static fields to apply to log entries.
# The field is a key-value pair, where the field name is the key and
# the field value is the value.
# Optional.
additionalFields:
app: workload2
key: value
Reemplaza lo siguiente:
PROJECT_NAMESPACE: Es el espacio de nombres de tu proyecto.LOGGING_TARGET_NAME: Es el nombre del archivo de definición deLoggingTarget.