En este documento, se explica cómo crear y administrar receptores para enrutar entradas de registro a destinos compatibles.
Descripción general
Los receptores controlan cómo Cloud Logging enruta los registros. Con los receptores, puedes enrutar algunos o todos tus registros a los siguientes destinos:
- Buckets de registro de Cloud Logging: Proporciona almacenamiento en Cloud Logging. Un bucket de registro puede almacenar registros transferidos por varios proyectos de Google Cloud. Puedes combinar tus datos de Cloud Logging con otros datos si actualizas un bucket de registros para usar el análisis de registros y, luego, creas un conjunto de datos de BigQuery vinculado. Para obtener información sobre la visualización de los registros almacenados en buckets de registros, consulta Descripción general de consultas y vistas de registros y Visualiza registros enrutados a buckets de Cloud Logging.
- Proyectos de Google Cloud: Enruta las entradas de registro a un proyecto de Google Cloud diferente. Cuando enrutas registros a un proyecto de Google Cloud diferente, el enrutador de registros del proyecto de destino recibe los registros y los procesa. Los receptores en el proyecto de destino determinan cómo se enrutan las entradas de registro recibidas.
- Temas de Pub/Sub: Proporciona compatibilidad con integraciones de terceros, como Splunk. Las entradas de registro tienen formato JSON y, luego, se enrutan a un tema de Pub/Sub. Para obtener información sobre cómo visualizar los registros enrutados a Pub/Sub, consulta Visualiza los registros enrutados a Pub/Sub.
- Conjuntos de datos de BigQuery: proporciona almacenamiento de entradas de registro en conjuntos de datos de BigQuery. Puedes usar las capacidades de análisis de macrodatos en los registros almacenados. Para combinar tus datos de Cloud Logging con otras fuentes de datos, te recomendamos actualizar tus buckets de registros a fin de usar estadísticas de registros y, luego, crear un conjunto de datos vinculado de BigQuery. Para obtener información sobre cómo visualizar los registros enrutados a BigQuery, consulta Visualiza los registros enrutados a BigQuery.
- Buckets de Cloud Storage: Proporciona almacenamiento de datos de registro en Cloud Storage. Las entradas de registro se almacenan como archivos JSON. Para obtener información sobre cómo visualizar los registros enrutados a Cloud Storage, consulta Visualiza registros enrutados a Cloud Storage.
Los receptores pertenecen a un recurso determinado de Google Cloud: proyectos, cuentas de facturación, carpetas y organizaciones de Google Cloud. Cuando el recurso recibe una entrada de registro, enruta la entrada de registro de acuerdo con los receptores contenidos en ese recurso. La entrada de registro se envía al destino asociado con cada receptor coincidente.
Un receptor agregado es un tipo de receptor que combina y enruta entradas de registro de los recursos de Google Cloud contenidos en una organización o carpeta. Para obtener instrucciones, consulta Cómo recopilar y enrutar registros a nivel de organización a destinos compatibles.
Para crear y administrar receptores, puedes usar la consola de Google Cloud, la API de Cloud Logging y Google Cloud CLI. Usar Google Cloud Console tiene las siguientes ventajas sobre los otros métodos:
- Ver y administrar todos tus receptores en un solo lugar.
- Obtén una vista previa de las entradas de registro que coincidan con el filtro de tu receptor antes de crearlo.
- Crea y autoriza destinos para tus receptores.
Antes de comenzar
En las instrucciones de este documento, se describe cómo crear y administrar receptores a nivel de proyecto de Google Cloud, pero puedes crear receptores (no agregados) para cuentas de facturación, carpetas y organizaciones.
Para comenzar, haz lo siguiente:
Tienes un proyecto de Google Cloud con registros que puedes ver en el Explorador de registros.
A fin de crear, modificar o borrar un receptor, debes tener una de las siguientes funciones de Identity and Access Management para el proyecto de Google Cloud desde el que enrutas los registros.
- Escritor de configuración de registros (
roles/logging.configWriter
) - Administrador de Logging (
roles/logging.admin
) - Propietario (
roles/owner
)
Para obtener información sobre cómo otorgar funciones de IAM, consulta la Guía de control de acceso de Logging.
- Escritor de configuración de registros (
Tienes un recurso en un destino admitido o tienes la capacidad de crear uno.
Para enrutar los registros a un destino, el destino debe existir antes de crear el receptor. Puedes crear el destino en cualquier proyecto de Google Cloud en cualquier organización.
Es posible que se apliquen algunas limitaciones cuando enrutas los registros a otros destinos. Para obtener más información, consulta Limitaciones de destino.
Crea un receptor
A continuación, se brindan las instrucciones para crear un receptor en un proyecto de Google Cloud. En lugar de un proyecto de Google Cloud, puedes especificar una cuenta de facturación, organización o carpeta.
Puedes crear hasta 200 receptores por proyecto de Google Cloud.
Después de crear el receptor, asegúrate de que Logging tenga los permisos adecuados para escribir registros en el destino de tu receptor; consulta Configura los permisos de destino.
Para crear un receptor, haz lo siguiente:
Consola
En la consola de Google Cloud, selecciona Registros en el menú de navegación y haz clic en Enrutador de registros:
Ir a Enrutador de registrosSelecciona un proyecto de Google Cloud existente.
Selecciona Crear receptor.
En el panel Detalles del receptor, ingresa los siguientes detalles:
Nombre del receptor: Proporciona un identificador para el receptor; ten en cuenta que después de crear el receptor no puedes cambiarle el nombre, pero puedes borrarlo y crear uno nuevo.
Descripción del receptor (opcional): Describe el propósito o el caso de uso del receptor.
En el panel Destino del receptor, usa el menú Seleccionar servicio del receptor para seleccionar el servicio y el destino del receptor.
Para enrutar registros a un servicio que se encuentra en el mismo proyecto de Google Cloud, selecciona una de las siguientes opciones:
- Bucket de Cloud Logging: selecciona o crea un bucket de Logging.
- Tabla de BigQuery: selecciona o crea el conjunto de datos particular para recibir los registros enrutados. También tienes la opción de usar tablas particionadas.
- Bucket de Cloud Storage: Selecciona o crea el bucket de Cloud Storage en particular para recibir los registros enrutados.
- Tema de Pub/Sub: selecciona o crea el tema específico para recibir los registros enrutados.
- Splunk: Selecciona el tema de Pub/Sub para tu servicio de Splunk.
- (Vista previa) Otro proyecto: Propaga el campo Destino del receptor como se describe en Formatos de la ruta de destino.
En el panel Elige registros para incluirlos en el receptor, haz lo siguiente:
En el campo Crear filtro de inclusión, ingresa una expresión de filtro que coincida con las entradas de registro que deseas incluir. Si quieres obtener más información sobre la sintaxis para escribir filtros, consulta Lenguaje de consulta de Logging.
Si no configuras un filtro, todos los registros del recurso seleccionado se enrutan al destino.
Por ejemplo, es posible que desees crear un filtro para enrutar todos los registros de acceso a los datos a un solo bucket de Logging. Este filtro se verá de la siguiente manera:
LOG_ID("cloudaudit.googleapis.com/data_access") OR LOG_ID("externalaudit.googleapis.com/data_access")
Ten en cuenta que la longitud de un filtro no puede superar los 20,000 caracteres.
Para verificar si ingresaste el filtro correcto, selecciona Vista previa de los registros. Se abrirá el Explorador de registros en una pestaña nueva con el filtro ya propagado.
En el panel Elige registros para filtrar fuera del receptor, elige lo siguiente (opcional):
En el campo Nombre del filtro de exclusión, ingresa un nombre.
En el campo Crear un filtro de exclusión, ingresa una expresión de filtros que coincida con las entradas de registro que deseas excluir. También puedes usar la función
sample
para seleccionar una parte de las entradas de registro que se excluirán.
Puedes crear hasta 50 filtros de exclusión por receptor. Ten en cuenta que la longitud de un filtro no puede superar los 20,000 caracteres.
Selecciona Crear receptor.
API
Para crear un receptor de registros en tu proyecto de Google Cloud, usa projects.sinks.create en la API de Logging. En el objeto LogSink, proporciona los valores necesarios apropiados en el cuerpo de la solicitud del método:
name
: Es un identificador para el receptor. Ten en cuenta que, después de crear el receptor, no puedes cambiarle el nombre al receptor, pero puedes borrarlo y crear un receptor nuevo.destination
: Es el servicio y el destino al que deseas enrutar tus registros. Para enrutar los registros a un proyecto diferente o a un destino que esté en otro proyecto, configura el campodestination
con la ruta de acceso adecuada, como se describe en Formatos de ruta de destino (Destination path).Por ejemplo, si tu destino de receptor es un conjunto de datos de BigQuery,
destination
se verá de la siguiente manera:bigquery.googleapis.com/projects/PROJECT_ID/datasets/DATASET_ID
En el objeto LogSink, proporciona la información opcional adecuada:
filter
: Configura la propiedadfilter
para que coincida con las entradas de registro que deseas incluir en tu receptor. Si no configuras un filtro, todos los registros de tu proyecto de Google Cloud se enrutan al destino. Ten en cuenta que la longitud de un filtro no puede superar los 20,000 caracteres.exclusions
: Configura esta propiedad para que coincida con las entradas de registro que deseas excluir de tu receptor. También puedes usar la funciónsample
para seleccionar una parte de las entradas de registro que se excluirán. Puedes crear hasta 50 filtros de exclusión por receptor.description
: Configura esta propiedad para describir el propósito o caso de uso del receptor.
Llama a projects.sinks.create para crear el receptor.
Si la respuesta de la API contiene una clave JSON con la etiqueta
"writerIdentity"
, otorga a la cuenta de servicio del receptor el permiso para escribir en el destino del receptor. Si deseas obtener más información, consulta Cómo establecer permisos de destino.No es necesario establecer permisos de destino cuando la respuesta de la API no contiene una clave JSON etiquetada como
"writerIdentity"
.
Si quieres obtener más información para crear receptores con la API de Logging, consulta la referencia de LogSink.
gcloud
Para crear un receptor, ejecuta el siguiente comando:gcloud logging sinks create
Proporciona los valores adecuados para las variables en el comando de la siguiente manera:
- SINK_NAME: Es un identificador para el receptor. Ten en cuenta que después de crear el receptor no puedes cambiarle el nombre, pero puedes borrarlo y crear uno nuevo.
SINK_DESTINATION: Es el servicio y el destino al que deseas enrutar tus registros. Para enrutar los registros a un proyecto diferente o a un destino que esté en otro proyecto, configura SINK_DESTINATION con la ruta de acceso adecuada, como se describe en Formatos de ruta de destino.
Por ejemplo, si el destino del receptor es un conjunto de datos de BigQuery, SINK_DESTINATION se verá de la siguiente manera:
bigquery.googleapis.com/projects/PROJECT_ID/datasets/DATASET_ID
OPTIONAL_FLAGS incluye las siguientes marcas:
--log-filter
: Usa esta marca para configurar un filtro que coincida con las entradas de registro que deseas incluir en tu receptor. Si no configuras un filtro, todos los registros de tu proyecto de Google Cloud se enrutan al destino.--exclusion
: Usa esta marca a fin de establecer un filtro de exclusión para las entradas de registro que deseas excluir del receptor. También puedes usar la funciónsample
para seleccionar una parte de las entradas de registro que se excluirán. Esta marca se puede repetir; puedes crear hasta 50 filtros de exclusión por receptor.--description
: Usa esta marca para describir el propósito o caso de uso del receptor.
gcloud logging sinks create SINK_NAME SINK_DESTINATION OPTIONAL_FLAGS
Por ejemplo, para crear un receptor a un bucket de Logging, tu comando se podría ver de la siguiente manera:
gcloud logging sinks create my-sink logging.googleapis.com/projects/myproject123/locations/global/buckets/my-bucket \ --log-filter='logName="projects/myproject123/logs/matched"' --description="My first sink"
Si quieres obtener más información para crear receptores mediante Google Cloud CLI, incluidos más ejemplos y marcas, consulta la referencia de gcloud logging sinks
.
Los nuevos receptores de registros para buckets de Cloud Storage pueden tardar varias horas en comenzar a enrutar los registros. Los receptores de Cloud Storage se procesan cada hora, mientras que otros tipos de destino se procesan en tiempo real.
Los receptores no definen el esquema para los conjuntos de datos de BigQuery. En cambio, la primera entrada de registro que recibe BigQuery determina el esquema de la tabla de destino. Si deseas obtener más información, consulta Esquema de BigQuery para registros enrutados.
Para obtener información sobre cómo ver los registros en los destinos del receptor, consulta Visualiza los registros enrutados a los buckets de Cloud Logging.
Después de crear el receptor, puedes ver la cantidad y el volumen de las entradas de registro recibidas con las métricas de logging.googleapis.com/exports/
.
Si recibes notificaciones de error, consulta Solucionar problemas de enrutamiento y receptores.
Formatos de ruta de destino
Si enrutas a un destino que está en otro proyecto, debes proporcionar la información de destino y servicio de Logging, BigQuery, Cloud Storage o Pub/Sub:
Para enrutar entradas de registro a un bucket de registros de Cloud Logging que se encuentra en un proyecto de Google Cloud diferente, el destino del receptor es el siguiente:
logging.googleapis.com/projects/DESTINATION_PROJECT_ID/locations/LOCATION/buckets/BUCKET
Para enrutar entradas de registro a otro proyecto de Google Cloud, la ruta de destino del receptor es la siguiente:
logging.googleapis.com/projects/DESTINATION_PROJECT_ID
Para enrutar entradas de registro a un conjunto de datos de BigQuery, el destino del receptor es el siguiente:
bigquery.googleapis.com/projects/PROJECT_ID/datasets/DATASET_ID
Para enrutar entradas de registro a un bucket de Cloud Storage, el destino del receptor es el siguiente:
storage.googleapis.com/BUCKET
Para enrutar entradas de registro a un tema de Pub/Sub, el destino del receptor es el siguiente:
pubsub.googleapis.com/projects/PROJECT_ID/topics/TOPIC_ID
Administrar receptores
Después de crear tus receptores, puedes realizar las siguientes acciones en ellos:
- Ver detalles del receptor
- Actualizar el receptor
- Inhabilitar receptor
- Borrar receptor
- Solucionar problemas del receptor
- Visualiza las tasas de error y el volumen de registro del receptor
Antes de borrar un receptor, ten en cuenta lo siguiente:
- No puedes borrar los receptores
_Default
y_Required
, pero puedes inhabilitar los receptores_Default
para detener el enrutamiento de registros a los buckets de Logging_Default
. - Cuando se borra un receptor, se dejan de enrutar las entradas de registro.
- Si el receptor tiene una cuenta de servicio dedicada, su eliminación también la borra. Los receptores creados antes del 22 de mayo de 2023 tienen cuentas de servicio dedicadas. Los receptores creados a partir del 22 de mayo de 2023 tienen una cuenta de servicio compartida. Si borras el receptor, no se borra la cuenta de servicio compartida.
Cualquier cambio que se realice en un receptor puede tardar unos minutos en aplicarse.
A continuación, se brindan las instrucciones para administrar un receptor en un proyecto de Google Cloud. En lugar de un proyecto de Google Cloud, puedes especificar una cuenta de facturación, organización o carpeta:
Consola
En la consola de Google Cloud, selecciona Registros en el menú de navegación y haz clic en Enrutador de registros:
Ir a Enrutador de registrosSelecciona el proyecto de Google Cloud que contiene tu receptor mediante el selector de recursos desde cualquier lugar de Google Cloud Console:
Para ver tus receptores agregados, selecciona la organización, la carpeta o la cuenta de facturación que contiene el receptor.
La página Enrutador de registros contiene una tabla de resumen de los receptores. Cada fila de la tabla contiene información sobre las propiedades de un receptor:
- Enabled: Indica si el estado del receptor está habilitado o inhabilitado.
- Tipo: El servicio de destino del receptor, por ejemplo,
Cloud Logging bucket
- Nombre: Es el identificador del receptor, como se proporciona cuando se creó; por ejemplo,
_Default
. - Descripción: la descripción del receptor, tal como se proporcionó cuando se creó
- Destino: Es el nombre completo del destino al que se enviarán las entradas de registro enrutadas.
- Creado: La fecha y hora en que se creó el receptor.
- Última actualización: la fecha y hora de la última modificación del receptor
Cada fila de la tabla tiene un menú more_vert y cuenta con las siguientes opciones:
- Ver detalles del receptor: Muestra el nombre, la descripción, el servicio de destino, el destino, y los filtros de inclusión y exclusión del receptor. Si seleccionas Editar, se abrirá el panel Editar receptor.
- Editar receptor: Abre un panel de Editar receptor en el que puedes actualizar los parámetros del receptor.
- Inhabilitar el receptor: te permite inhabilitar el receptor y dejar de enrutar registros al destino del receptor. Para obtener más información sobre cómo inhabilitar receptores, consulta Detener la transferencia de registros.
- Habilitar el receptor: te permite habilitar un receptor inhabilitado y reiniciar los registros de enrutamiento al destino del receptor.
- Borrar receptor: Te permite borrar el receptor y detener el enrutamiento de los registros al destino del receptor.
- Solucionar problemas del receptor: abre el Explorador de registros donde puedes solucionar los errores del receptor.
- Visualiza el volumen de registro del receptor y las tasas de error: abre el Explorador de métricas en el que puedes ver y analizar datos del receptor.
Hacer clic en cualquiera de los nombres de columna te permite ordenar los datos de forma ascendente o descendente.
API
Para ver los receptores de tu proyecto de Google Cloud, llama a
projects.sinks.list
.Para ver los detalles de un receptor, llama a
projects.sinks.get
.Para actualizar un receptor, llama a
projects.sink.update
.Puedes actualizar el destino, los filtros y la descripción de un receptor. También puedes inhabilitar o volver a habilitar el receptor.
Para inhabilitar un receptor, llama a
projects.sink.update
y establece la propiedaddisabled
entrue
.Para volver a habilitar el receptor, llama a
projects.sink.update
y establece la propiedaddisabled
enfalse
.Para borrar un receptor, llama a
projects.sinks.delete
.Si quieres obtener más información sobre cualquiera de estos métodos para administrar receptores mediante la API de Logging, consulta la referencia de LogSink.
gcloud
A fin de ver una lista de receptores para tu proyecto de Google Cloud, usa el comando
gcloud logging sinks list
, que corresponde al métodoprojects.sinks.list
de la API de Logging:gcloud logging sinks list
Si deseas ver tu lista de receptores agregados, usa la marca adecuada para especificar el recurso que contiene el receptor. Por ejemplo, si creaste el receptor a nivel de la organización, usa la marca
--organization=ORGANIZATION_ID
para enumerar los receptores de la organización.Para describir un receptor, usa el comando
gcloud logging sinks describe
, que corresponde al método de la API de Loggingprojects.sinks.get
:gcloud logging sinks describe SINK_NAME
Para actualizar un receptor, usa el comando
gcloud logging sinks update
, que corresponde al método de la APIprojects.sink.update
.Puedes actualizar un receptor para cambiar el destino, los filtros y la descripción, o bien para inhabilitar o volver a habilitar el receptor:
gcloud logging sinks update SINK_NAME NEW_DESTINATION --log-filter=NEW_FILTER
Omite NEW_DESTINATION o
--log-filter
si esas partes no cambian.Por ejemplo, para actualizar el destino de tu receptor llamado
my-project-sink
a un nuevo destino de bucket de Cloud Storage llamadomy-second-gcs-bucket
, tu comando se ve de la siguiente manera:gcloud logging sinks update my-project-sink storage.googleapis.com/my-second-gcs-bucket
Para inhabilitar un receptor, usa el comando
gcloud logging sinks update
, que corresponde al métodoprojects.sink.update
de la API, y agrega la marca--disabled
:gcloud logging sinks update _Default --disabled
Para volver a habilitar el receptor, usa el comando
gcloud logging sinks update
, quita la marca--disabled
y agrega la marca--no-disabled
:gcloud logging sinks update _Default --no-disabled
Para borrar un receptor, usa el comando
gcloud logging sinks delete
, que corresponde al métodoprojects.sinks.delete
de la API:gcloud logging sinks delete SINK_NAME
Si quieres obtener más información para administrar receptores mediante Google Cloud CLI, consulta la referencia de
gcloud logging sinks
.
Detener la transferencia de registros
Para cada proyecto de Google Cloud, Logging crea dos buckets de registro: _Required
y _Default
.
Logging crea automáticamente dos receptores de registros, _Required
y _Default
, que enrutan los registros a los buckets con nombre correspondientes.
No puedes inhabilitar el receptor _Required
; ni los precios de transferencia ni los de almacenamiento se aplican a los datos de registro almacenados en el bucket de registros _Required
. Puedes inhabilitar el receptor _Default
para evitar que los registros se transfieran al bucket _Default
. También puedes inhabilitar cualquier receptor definido por el usuario.
Cuando detienes la transferencia de registros para el bucket _Default
mediante la inhabilitación de todos los receptores en el proyecto de Google Cloud que envían registros al bucket _Default
, el proyecto de Google Cloud del bucket _Default
no genera cargos de transferencia de Cloud Logging nuevos. El bucket _Default
está vacío cuando todos los registros transferidos antes en el bucket _Default
cumplen con el período de retención del bucket.
Para inhabilitar los receptores de tu proyecto de Google Cloud que enrutan registros al bucket _Default
, completa los siguientes pasos:
Consola
En la consola de Google Cloud, selecciona Registros en el menú de navegación y haz clic en Enrutador de registros:
Ir a Enrutador de registrosPara encontrar todos los receptores que enrutan los registros al bucket
_Default
, filtra los receptores por destino y, luego, ingresa_Default
.Para cada receptor, selecciona Menú more_vert y, luego, Inhabilitar receptor.
Los receptores ahora están inhabilitados y los receptores de la ruta de Google Cloud ya no llevan registros de ruta al bucket _Default
.
Para volver a habilitar un receptor inhabilitado y reiniciar los registros de enrutamiento al destino del receptor, haz lo siguiente:
En la consola de Google Cloud, selecciona Registros en el menú de navegación y haz clic en Enrutador de registros:
Ir a Enrutador de registrosA fin de encontrar todos los receptores inhabilitados antes configurados para enrutar registros al bucket
_Default
, filtra los receptores por destino y, luego, ingresa_Default
.Para cada receptor, selecciona Menú more_vert y, luego, Habilitar receptor.
API
Para ver los receptores de tu proyecto de Google Cloud, llama al método
projects.sinks.list
de la API de Logging.Identifica los receptores que enrutan al bucket
_Default
.Por ejemplo, para inhabilitar el receptor
_Default
, llama aprojects.sink.update
y establece la propiedaddisabled
entrue
.
El receptor _Default
ahora está inhabilitado y ya no enruta los registros al bucket _Default
.
Para inhabilitar los otros receptores en el proyecto de Google Cloud que enrutan al bucket _Default
, repite los pasos anteriores.
Para volver a habilitar un receptor, llama a projects.sink.update
y establece la propiedad disabled
en false
.
gcloud
A fin de ver una lista de receptores para tu proyecto de Google Cloud, usa el comando
gcloud logging sinks list
, que corresponde al métodoprojects.sinks.list
de la API de Logging:gcloud logging sinks list
Identifica los receptores que enrutan al bucket
_Default
. Para describir un receptor, incluido el nombre del destino, usa el comandogcloud logging sinks describe
, que corresponde al métodoprojects.sinks.get
de la API de Logging:gcloud logging sinks describe SINK_NAME
Por ejemplo, para inhabilitar el receptor
_Default
, usa el comandogcloud logging sinks update
y agrega la marca--disabled
:gcloud logging sinks update _Default --disabled
El receptor _Default
ahora está inhabilitado y ya no enruta los registros al bucket _Default
.
Para inhabilitar los otros receptores en el proyecto de Google Cloud que enrutan al bucket _Default
, repite los pasos anteriores.
Para volver a habilitar un receptor, usa el comando gcloud logging sinks update
, quita la marca --disabled
y agrega la marca --no-disabled
:
gcloud logging sinks update _Default --no-disabled
Configura los permisos de destino
En esta sección, se describe cómo otorgar a Logging los permisos de Identity and Access Management para escribir los registros en el destino de tu receptor. Para obtener la lista completa de las funciones y los permisos de Logging, consulta Control de acceso.
Cloud Logging crea una cuenta de servicio compartida para un recurso cuando se crea un receptor de registros, a menos que la cuenta de servicio requerida ya exista. La cuenta de servicio puede existir porque se usa la misma cuenta de servicio para todos los receptores en el recurso subyacente. Los recursos pueden ser un proyecto de Google Cloud, una organización, una carpeta o una cuenta de facturación.
La identidad de escritor de un receptor es el identificador de la cuenta de servicio asociada con ese receptor. Todos los receptores tienen una identidad de escritor, excepto los receptores que escriben en un bucket de registros en el proyecto actual de Google Cloud.
Cuando el destino de un receptor es un bucket de registros en el proyecto actual de Google Cloud, el receptor no requiere ningún permiso de destino adicional. Por lo tanto, el valor del campo identidad de escritor se muestra como None
en la consola, y la API y los comandos de Google Cloud CLI no lo informan.
A continuación, se brindan instrucciones a fin de configurar permisos a nivel de proyecto de Google Cloud para que tu receptor se enrute a su destino. En lugar de un proyecto de Google Cloud, puedes especificar una cuenta de facturación, una organización o una carpeta:
Consola
Para obtener la identidad de escritor del receptor, una dirección de correo electrónico, del receptor nuevo, haz lo siguiente:
En la consola de Google Cloud, selecciona Registros en el menú de navegación y haz clic en Enrutador de registros:
Ir a Enrutador de registrosSelecciona Menú y, luego, more_vert Ver detalles del receptor. La identidad del escritor aparece en el panel Detalles del receptor.
Si el valor del campo
writerIdentity
contiene una dirección de correo electrónico, continúa con el siguiente paso. Cuando el valor esNone
, no necesitas configurar los permisos de destino para el receptor.Haz clic en Copiar content_copy para copiar la identidad de escritor del receptor en el portapapeles.
Si tienes acceso de Propietario al destino, agrega la cuenta de servicio como una principal de IAM en el proyecto de destino:
- Para los destinos de Cloud Storage, agrega la identidad de escritor del receptor como principal mediante IAM y, luego, otórgale la función de creador de objetos de almacenamiento (
roles/storage.objectCreator
). - Para los destinos de BigQuery, agrega la identidad de escritor del receptor como principal mediante IAM y, luego, otórgale la función de editor de datos de BigQuery (
roles/bigquery.dataEditor
). - Para los destinos de Pub/Sub, incluido Splunk, agrega la identidad de escritor del receptor como principal mediante IAM y, luego, otórgale la función de publicador de Pub/Sub (
roles/pubsub.publisher
). - Para los destinos de bucket de Logging en diferentes proyectos de Google Cloud, agrega la identidad de escritor del receptor como principal mediante IAM y, luego, otórgale la función de escritor de buckets de registros (
roles/logging.bucketWriter
). - (Vista previa) Para diferentes destinos de proyectos de Google Cloud, agrega la identidad de escritor del receptor como principal mediante IAM y, luego, otórgale la función de escritor de registros (
roles/logging.logWriter
). Específicamente, una principal necesita el permisologging.logEntries.route
.
- Para los destinos de Cloud Storage, agrega la identidad de escritor del receptor como principal mediante IAM y, luego, otórgale la función de creador de objetos de almacenamiento (
API
Llama al método de la API projects.sinks.list para enumerar los receptores en tu proyecto de Google Cloud.
Ubica el receptor cuyos permisos deseas modificar y, si los detalles del receptor contienen una clave JSON etiquetada como
"writerIdentity"
, continúa con el siguiente paso. Cuando los detalles no incluyen un campo"writerIdentity"
, no es necesario configurar los permisos de destino para el receptor.Si tienes acceso de propietario de IAM al destino, puedes agregar la cuenta de servicio al destino de la siguiente manera:
- Para los destinos de Cloud Storage, agrega la identidad de escritor del receptor como principal mediante IAM y, luego, otórgale la función de creador de objetos de almacenamiento (
roles/storage.objectCreator
). - Para los destinos de BigQuery, agrega la identidad de escritor del receptor como principal mediante IAM y, luego, otórgale la función de editor de datos de BigQuery (
roles/bigquery.dataEditor
). - Para los destinos de Pub/Sub, incluido Splunk, agrega la identidad de escritor del receptor como principal mediante IAM y, luego, otórgale la función de publicador de Pub/Sub (
roles/pubsub.publisher
). - Para los destinos de bucket de Logging en diferentes proyectos de Google Cloud, agrega la identidad de escritor del receptor como principal mediante IAM y, luego, otórgale la función de escritor de buckets de registros (
roles/logging.bucketWriter
). - (Vista previa) Para diferentes destinos de proyectos de Google Cloud, agrega la identidad de escritor del receptor como principal mediante IAM y, luego, otórgale la función de escritor de registros (
roles/logging.logWriter
). Específicamente, una principal necesita el permisologging.logEntries.route
.
- Para los destinos de Cloud Storage, agrega la identidad de escritor del receptor como principal mediante IAM y, luego, otórgale la función de creador de objetos de almacenamiento (
gcloud
Obtén la cuenta de servicio del campo
writerIdentity
en tu receptor:gcloud logging sinks describe SINK_NAME
Ubica el receptor cuyos permisos deseas modificar y, si los detalles del receptor contienen una línea con
writerIdentity
, continúa con el paso siguiente. Cuando los detalles no incluyen un campowriterIdentity
, no es necesario configurar los permisos de destino para el receptor.El valor del campo SERVICE_ACCOUNT en los siguientes pasos es la identidad del escritor, que es similar a la siguiente:
serviceAccount:service-p-123456789012@gcp-sa-logging.iam.gserviceaccount.com
Si tienes acceso de propietario de IAM al destino, puedes agregar la cuenta de servicio al destino de la siguiente manera:
- Para los destinos de Cloud Storage, agrega la identidad de escritor del receptor como principal mediante IAM y, luego, otórgale la función de creador de objetos de almacenamiento (
roles/storage.objectCreator
). - Para los destinos de BigQuery, agrega la identidad de escritor del receptor como principal mediante IAM y, luego, otórgale la función de editor de datos de BigQuery (
roles/bigquery.dataEditor
). - Para los destinos de Pub/Sub, incluido Splunk, agrega la identidad de escritor del receptor como principal mediante IAM y, luego, otórgale la función de publicador de Pub/Sub (
roles/pubsub.publisher
). - Para los destinos de bucket de Logging en diferentes proyectos de Google Cloud, agrega la identidad de escritor del receptor como principal mediante IAM y, luego, otórgale la función de escritor de buckets de registros (
roles/logging.bucketWriter
). - (Vista previa) Para diferentes destinos de proyectos de Google Cloud, agrega la identidad de escritor del receptor como principal mediante IAM y, luego, otórgale la función de escritor de registros (
roles/logging.logWriter
). Específicamente, una principal necesita el permisologging.logEntries.route
.
Por ejemplo, si enrutas registros entre buckets de Logging en diferentes proyectos de Google Cloud, debes agregar
roles/logging.bucketWriter
a la cuenta de servicio de la siguiente manera:Obtén la política de Identity and Access Management del proyecto de Google Cloud de destino y escríbela en un archivo local en formato JSON:
gcloud projects get-iam-policy DESTINATION_PROJECT_ID --format json > output.json
Agrega una condición de IAM que permita que la cuenta de servicio escriba solo en el bucket de Cloud Logging que creaste. Por ejemplo:
{ "bindings": [ { "members": [ "user:username@gmail.com" ], "role": "roles/owner" }, { "members": [ "SERVICE_ACCOUNT" ], "role": "roles/logging.bucketWriter", "condition": { "title": "Bucket writer condition example", "description": "Grants logging.bucketWriter role to service account SERVICE_ACCOUNT used by log sink [SINK_NAME]", "expression": "resource.name.endsWith(\'locations/global/buckets/BUCKET_ID\')" } } ], "etag": "BwWd_6eERR4=", "version": 3 }
Actualiza la política de IAM:
gcloud projects set-iam-policy DESTINATION_PROJECT_ID output.json
- Para los destinos de Cloud Storage, agrega la identidad de escritor del receptor como principal mediante IAM y, luego, otórgale la función de creador de objetos de almacenamiento (
Limitaciones de destino
Según el destino al que enrutes tus registros, puede haber algunas limitaciones.
Ruta para registrar buckets en diferentes proyectos de Google Cloud
Se aplican las siguientes limitaciones cuando enrutas tus registros a buckets de registros en diferentes proyectos de Google Cloud:
Si enrutas registros a un bucket de registros almacenado en un proyecto diferente, Error Reporting no puede analizar esos registros.
Error Reporting está inhabilitado en los registros almacenados en buckets de registros que usan claves de encriptación administradas por el cliente.
Enrutar a diferentes proyectos de Google Cloud
Se aplican las siguientes limitaciones cuando enrutas tus registros a diferentes proyectos de Google Cloud:
Si enrutas registros a un proyecto diferente, Error Reporting no puede analizar esos registros.
Hay un límite de un salto. Por ejemplo, si enrutas las entradas de registro del proyecto A al proyecto B, no puedes enrutar las entradas de registro del proyecto B a un proyecto diferente.
Los registros de auditoría no se enrutan al bucket
_Required
en el proyecto de destino. Debes crear otro receptor o bucket para almacenarlos.Si la organización o la carpeta que contiene el proyecto de Google Cloud al que enrutas tiene receptores agregados existentes, esos receptores no enrutan los registros.
Muestras de código
Si deseas usar el código de la biblioteca cliente para configurar receptores en los lenguajes que elegiste, consulta Registra bibliotecas cliente: receptores de registros.
Filtra ejemplos
A continuación, se muestran algunos ejemplos de filtros que son particularmente útiles cuando se crean receptores.
Para obtener ejemplos adicionales que podrían ser útiles a medida que compilas los filtros de inclusión y exclusión, visita Consultas de muestra.
Restablece el filtro de receptor _Default
Si editaste el filtro para el receptor _Default
, te recomendamos restablecer su filtro predeterminado. Para ello, ingresa el siguiente filtro de inclusión:
NOT LOG_ID("cloudaudit.googleapis.com/activity") AND NOT \
LOG_ID("externalaudit.googleapis.com/activity") AND NOT \
LOG_ID("cloudaudit.googleapis.com/system_event") AND NOT \
LOG_ID("externalaudit.googleapis.com/system_event") AND NOT \
LOG_ID("cloudaudit.googleapis.com/access_transparency") AND NOT \
LOG_ID("externalaudit.googleapis.com/access_transparency")
Excluye los registros de contenedores y Pods de Google Kubernetes Engine
A fin de excluir los registros de contenedores y Pods de Google Kubernetes Engine para el sistema de GKE namespaces
, usa el siguiente filtro:
resource.type = ("k8s_container" OR "k8s_pod")
resource.labels.namespace_name = (
"cnrm-system" OR
"config-management-system" OR
"gatekeeper-system" OR
"gke-connect" OR
"gke-system" OR
"istio-system" OR
"knative-serving" OR
"monitoring-system" OR
"kube-system")
A fin de excluir los registros de nodos de Google Kubernetes Engine para el sistema de GKE logNames
, usa el siguiente filtro:
resource.type = "k8s_node"
logName:( "logs/container-runtime" OR
"logs/docker" OR
"logs/kube-container-runtime-monitor" OR
"logs/kube-logrotate" OR
"logs/kube-node-configuration" OR
"logs/kube-node-installation" OR
"logs/kubelet" OR
"logs/kubelet-monitor" OR
"logs/node-journal" OR
"logs/node-problem-detector")
Para ver el volumen de los nodos, pod y container de Google Kubernetes Engine que se transfieren a Cloud Logging, usa el Explorador de métricas en Cloud Monitoring.
Excluya los registros de Dataflow que no son necesarios para la compatibilidad
A fin de excluir los registros de Dataflow que no son necesarios para la compatibilidad, usa el siguiente filtro:
resource.type="dataflow_step"
labels."dataflow.googleapis.com/log_type"!="system" AND labels."dataflow.googleapis.com/log_type"!="supportability"
Para ver el volumen de datos de registros de Dataflow transferidos a Cloud Logging, usa el Explorador de métricas en Cloud Monitoring.
Compatibilidad
Si bien Cloud Logging te permite excluir la transferencia de registros, te recomendamos conservar los registros que facilitan la compatibilidad. El uso de estos registros puede ayudarte a identificar y solucionar con rapidez los problemas con tus aplicaciones.
Por ejemplo, los registros del sistema de GKE son útiles para solucionar problemas de tus aplicaciones y clústeres de GKE porque se generan para eventos que ocurren en tu clúster. Estos registros pueden ayudarte a determinar si el código de tu aplicación o el clúster de GKE subyacente está causando el error de tu aplicación. Los registros del sistema de GKE también incluyen el registro de auditoría de Kubernetes generado por el componente del servidor de la API de Kubernetes, que incluye los cambios realizados con el comando de kubectl y los eventos de Kubernetes.
Para Dataflow, recomendamos que, como mínimo, transfieras los registros del sistema (labels."dataflow.googleapis.com/log_type"="system"
) y los de compatibilidad (labels."dataflow.googleapis.com/log_type"="supportability"
). Estos registros son esenciales para que los desarrolladores observen y solucionen sus canalizaciones de Dataflow, y es posible que los usuarios no puedan usar la página Detalles del trabajo de Dataflow a fin de ver los registros del trabajo.
¿Qué sigue?
Si tienes problemas cuando usas receptores para enrutar registros, consulta Soluciona problemas de registros de enrutamiento.
Si deseas obtener información para ver tus registros enrutados en sus destinos, así como la forma y el formato de los registros, consulta Visualiza registros en destinos de receptores.
Si deseas obtener más información sobre cómo consultar y filtrar con el lenguaje de consulta de Logging, visita Lenguaje de consulta de Logging.