En esta página, se describe el proceso para recopilar registros de tus flujos de trabajo en entornos de dispositivos aislados de Google Distributed Cloud (GDC) para facilitar el registro y la observabilidad de los datos.
Los registros registran las condiciones y las acciones a medida que administras las operaciones de tus servicios en GDC. Puedes extraer los registros que producen tus componentes para registrar eventos y actividades. La plataforma de registros ofrece una API personalizada para recopilar registros a nivel del proyecto que generan tus flujos de trabajo a través de destinos de registros.
Para comenzar a recopilar datos de registro, implementa un recurso personalizado LoggingTarget
en el espacio de nombres de tu proyecto en el servidor de la API de Management. Después de que el recopilador de registros extrae datos de tus flujos de trabajo, la plataforma de registro agrega registros de todas las fuentes de registros, agrega índices y asocia registros con etiquetas según la configuración del recurso personalizado LoggingTarget
.
Accede a los registros recopilados con la interfaz de usuario de Grafana, como se detalla en Consulta y visualiza registros.
Para conocer las prácticas recomendadas sobre la implementación del registro para la observabilidad de los datos, consulta los lineamientos de la comunidad de Kubernetes:
Antes de comenzar
Para obtener los permisos que necesitas para administrar recursos personalizados de LoggingTarget
, pídele al administrador de IAM de la organización o al administrador de IAM del proyecto que te otorgue uno de los roles de LoggingTarget
asociados.
Según el nivel de acceso y los permisos que necesites, es posible que obtengas 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.
Operadores de aplicaciones: Para obtener los permisos que necesitas para administrar recursos personalizados de
LoggingTarget
en un proyecto en el servidor de la API de administración, pídele al administrador de IAM del proyecto que te otorgue uno de los siguientes roles en el espacio de nombres de tu proyecto:- LoggingTarget Creator: Crea recursos personalizados
LoggingTarget
. Solicita el rol de creador de LoggingTarget (loggingtarget-creator
). - Editor de LoggingTarget: Edita o modifica recursos personalizados de
LoggingTarget
. Solicita el rol de editor de LoggingTarget (loggingtarget-editor
). - LoggingTarget Viewer: Visualiza recursos personalizados de
LoggingTarget
. Solicita el rol de visualizador de LoggingTarget (loggingtarget-viewer
).
- LoggingTarget Creator: Crea recursos personalizados
Administradores de la plataforma: Para obtener los permisos que necesitas para administrar recursos personalizados de
LoggingTarget
en el espacio de nombres deplatform-obs
en el servidor de la API de administración, pídele al administrador de IAM de la organización que te otorgue uno de los siguientes roles de clúster en el espacio de nombres deplatform-obs
:- LoggingTarget PA Creator: Crea recursos personalizados de
LoggingTarget
. Solicita el rol de clúster de LoggingTarget PA Creator (loggingtarget-pa-creator
). - Editor de PA de LoggingTarget: Edita o modifica recursos personalizados de
LoggingTarget
. Solicita el rol de clúster de editor de PA de LoggingTarget (loggingtarget-pa-editor
). - LoggingTarget PA Viewer: Visualiza recursos personalizados de
LoggingTarget
. Solicita el rol de clúster de LoggingTarget PA Viewer (loggingtarget-pa-viewer
).
- LoggingTarget PA Creator: Crea recursos personalizados de
Recopila registros operativos
Los registros operativos registran las condiciones, los cambios y las acciones a medida que administras las operaciones en curso en las aplicaciones y los servicios de GDC. Implementa el recurso personalizado LoggingTarget
en el servidor de la API de Management para configurar el canal de registro del sistema y recopilar registros operativos de servicios específicos a nivel del proyecto.
Completa los siguientes pasos para recopilar registros operativos de un servicio:
- Configura el recurso personalizado
LoggingTarget
en el servidor de la API de Management, especificando los Pods seleccionados para recopilar tus registros operativos, el espacio de nombres del proyecto y cualquier otro parámetro de configuración adicional. Para saber cómo debe verse elLoggingTarget
, consulta Configura el recurso personalizadoLoggingTarget
. Implementa el recurso personalizado
LoggingTarget
en el espacio de nombres de tu proyecto en el servidor de la API de Management:kubectl --kubeconfig MANAGEMENT_API_SERVER apply -f LOGGING_TARGET_NAME
Reemplaza lo siguiente:
MANAGEMENT_API_SERVER
: Es la ruta de acceso de kubeconfig del servidor de la API de administración zonal.LOGGING_TARGET_NAME
: Es el nombre del recurso personalizado deLoggingTarget
, comomy-service-logging-target.yaml
.
La canalización comienza a recopilar registros de los componentes adicionales de tu proyecto.
Consulta tus registros desde la instancia de Grafana de tu proyecto. Para obtener más información, consulta Cómo consultar y ver registros.
Usa la función de codificación de color integrada de Grafana para los diferentes niveles de registro del servicio. 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/.
Configura el recurso personalizado LoggingTarget
El recurso personalizado LoggingTarget
indica a la canalización de registro que recopile registros de servicios específicos dentro de tu proyecto de GDC. Puedes especificar los destinos para los que recopilas registros, un analizador de registros, niveles de acceso y cualquier otro 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 los 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 las entradas de registro, asignar los resultados del registro a etiquetas y extraer los campos pertinentes.
- 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 dentro del recurso personalizado LoggingTarget
, puedes controlar con precisión la recopilación y organización de los registros de tus servicios.
Sigue estos pasos para recopilar registros operativos de un servicio:
- Determina el proyecto de GDC del que deseas recopilar registros.
En tu configuración de
LoggingTarget
, especifica los Pods para recopilar tus registros operativos, el espacio de nombres del proyecto y cualquier otro parámetro de configuración.El siguiente archivo YAML muestra un ejemplo de una configuración de
LoggingTarget
enmy-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-name
y 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-service-logging-target spec: selector: matchPodNames: - my-pod-prefix parser: json logAccessLevel: ao serviceName: my-service-name
Consulta la especificación completa de
LoggingTarget
y la documentación de referencia de la API para obtener más campos y opciones.Aplica la configuración de
LoggingTarget
al 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.yaml
Reemplaza lo siguiente:
KUBECONFIG_PATH
: Es la ruta al archivo kubeconfig del servidor de la API de administración.LOGGING_TARGET_NAME
: El nombre del archivo de definición deLoggingTarget
, comomy-service-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 Log Query. Para obtener más información, consulta Cómo consultar y ver registros.
Si usas Grafana para consultar tus registros, puedes usar la función de codificación por colores integrada para los diferentes niveles de registro del servicio. 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
.