Controlador de registro Google Cloud Logging
El controlador de registro Google Cloud Logging envía los registros de los contenedores a Google Cloud Logging.
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.
NoteSi 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.
El siguiente ejemplo establece el controlador de registro en gcplogs y configura la opción gcp-meta-name.
{
"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:
$ 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. 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. 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. |
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. |
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.
$ 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:
[Service]
Environment="GOOGLE_APPLICATION_CREDENTIALS=uQWVCPkMTI34bpssr1HI"$ 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