# Controlador de registro Google Cloud Logging


El controlador de registro Google Cloud Logging envía los registros de los contenedores a [Google Cloud Logging](https://cloud.google.com/logging/docs/).

## Uso

Para usar el controlador `gcplogs` como el controlador de registro predeterminado, establece las claves `log-driver` y `log-opt` con los valores adecuados en el archivo `daemon.json`. Para obtener más información sobre cómo configurar Docker mediante `daemon.json`, consulta [daemon.json](/reference/cli/dockerd/#daemon-configuration-file).



> [!NOTE]
>
> Si usas Docker Desktop, edita la configuración del demonio a través del
> panel de Docker Desktop. Abre **Settings** y selecciona **Docker Engine**.
> Para más detalles, consulta
> [Configuración de Docker Engine](/desktop/settings-and-maintenance/settings/#docker-engine).


El siguiente ejemplo establece el controlador de registro en `gcplogs` y configura la opción `gcp-meta-name`.

```json
{
  "log-driver": "gcplogs",
  "log-opts": {
    "gcp-meta-name": "example-instance-12345"
  }
}
```

Reinicia Docker para que los cambios surtan efecto.

Puedes establecer el controlador de registro para un contenedor específico utilizando la opción `--log-driver` en `docker run`:

```console
$ docker run --log-driver=gcplogs ...
```

Si Docker detecta que se está ejecutando en un proyecto de Google Cloud, descubre la configuración a partir del [servicio de metadatos de la instancia](https://cloud.google.com/compute/docs/metadata). De lo contrario, el usuario debe especificar en qué proyecto registrar los eventos utilizando la opción de registro `--gcp-project`, y Docker intentará obtener las credenciales a partir de las [Credenciales predeterminadas de la aplicación de Google](https://developers.google.com/identity/protocols/application-default-credentials). La opción `--gcp-project` tiene prioridad sobre la información descubierta del servidor de metadatos, por lo que se puede invalidar un demonio de Docker que se ejecuta en un proyecto de Google Cloud para registrar los eventos en un proyecto diferente mediante `--gcp-project`.

Docker obtiene los valores de zona, nombre de la instancia e ID de la instancia del servidor de metadatos de Google Cloud. Esos valores se pueden proporcionar a través de opciones si el servidor de metadatos no está disponible. No invalidan los valores del servidor de metadatos.

## Opciones de gcplogs

Puedes utilizar la opción `--log-opt NOMBRE=VALOR` para especificar estas opciones adicionales del controlador de registro Google Cloud Logging:

| Opción          | Requerido | Descripción                                                                                                                                                                          |
| :-------------- | :-------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `gcp-project`   | opcional  | El proyecto de Google Cloud en el que registrar los eventos. Por defecto, descubre este valor del servidor de metadatos de Google Cloud.                                            |
| `gcp-log-cmd`   | opcional  | Si se debe registrar el comando con el que se inició el contenedor. El valor predeterminado es false.                                                                                |
| `labels`        | opcional  | Lista de claves de etiquetas separadas por comas que deben incluirse en el mensaje, si estas etiquetas se especifican para el contenedor.                                            |
| `labels-regex`  | opcional  | Similar y compatible con `labels`. Una expresión regular para hacer coincidir etiquetas relacionadas con el registro. Se utiliza para opciones avanzadas de [etiquetas de registro](/engine/logging/drivers/gcplogs/log_tags/). |
| `env`           | opcional  | Lista de claves de variables de entorno separadas por comas que deben incluirse en el mensaje, si estas variables se especifican para el contenedor.                                |
| `env-regex`     | opcional  | Similar y compatible con `env`. Una expresión regular para hacer coincidir variables de entorno relacionadas con el registro. Se utiliza para opciones avanzadas de [etiquetas de registro](/engine/logging/drivers/gcplogs/log_tags/). |
| `gcp-meta-zone` | opcional  | Nombre de la zona de la instancia.                                                                                                                                                   |
| `gcp-meta-name` | opcional  | Nombre de la instancia.                                                                                                                                                              |
| `gcp-meta-id`   | opcional  | ID de la instancia.                                                                                                                                                                  |

Si hay una colisión entre las claves de `label` y `env`, el valor de `env` tiene prioridad. Ambas opciones añaden campos adicionales a los atributos de un mensaje de registro.

El siguiente es un ejemplo de las opciones de registro requeridas para registrar en el destino de registro predeterminado, el cual se descubre consultando el servidor de metadatos de Google Cloud.

```console
$ docker run \
    --log-driver=gcplogs \
    --log-opt labels=location \
    --log-opt env=TEST \
    --log-opt gcp-log-cmd=true \
    --env "TEST=false" \
    --label location=west \
    su/aplicacion
```

Esta configuración también indica al controlador que incluya en la carga útil (payload) la etiqueta `location`, la variable de entorno `ENV` y el comando utilizado para iniciar el contenedor.

El siguiente ejemplo muestra las opciones de registro para ejecutarse fuera de Google Cloud. La variable de entorno `GOOGLE_APPLICATION_CREDENTIALS` debe configurarse para el demonio, por ejemplo a través de systemd:

```ini
[Service]
Environment="GOOGLE_APPLICATION_CREDENTIALS=uQWVCPkMTI34bpssr1HI"
```

```console
$ docker run \
    --log-driver=gcplogs \
    --log-opt gcp-project=test-project \
    --log-opt gcp-meta-zone=west1 \
    --log-opt gcp-meta-name=`hostname` \
    su/aplicacion
```

