Registro de instancias y grupos de contenedores con registros de Azure Monitor
Las áreas de trabajo de Log Analytics proporcionan una ubicación centralizada para almacenar y consultar datos de registro no solo de los recursos de Azure, sino también de los recursos locales y de los recursos de otras nubes. Azure Container Instances incluye compatibilidad integrada para el envío de registros y datos de evento a los registros de Azure Monitor.
Para enviar un registro de grupo de contenedores y datos de eventos a los registros de Azure Monitor, especifique una clave y un identificador de un área de trabajo de Log Analytics existente al configurar un grupo de contenedores.
En las secciones siguientes se describe cómo crear un grupo de contenedores con el registro habilitado y cómo consultar registros. También puede actualizar un grupo de contenedores con un identificador de área de trabajo y una clave de área de trabajo para habilitar el registro.
Nota:
Este artículo se ha actualizado recientemente para usar el término registros de Azure Monitor en lugar de Log Analytics. Los datos de registro siguen almacenándose en un área de trabajo de Log Analytics y siguen recopilándose y analizándose por el mismo servicio de Log Analytics. Estamos actualizando la terminología para reflejar mejor el rol de los registros de Azure Monitor. Consulte Azure Monitor terminology changes (Cambios en la terminología de Azure Monitor) para obtener más información.
Requisitos previos
Para habilitar el registro en las instancias de los contenedores, necesita lo siguiente:
Obtención de las credenciales de Log Analytics
Azure Container Instances necesita permiso para enviar datos a su área de trabajo de Log Analytics. Para conceder este permiso y habilitar el registro, es preciso proporcionar el identificador del área de trabajo de Log Analytics y una de sus claves (la principal o la secundaria) al crear el grupo de contenedores.
Para obtener el identificador y la clave principal del área de trabajo de Log Analytics:
- Vaya al área de trabajo de Log Analytics en Azure Portal
- En Configuración, seleccione Agents management (Administración de agentes).
- Anote el valor de:
- Id. de área de trabajo
- Clave principal
Creación de un grupo de contenedores
Ahora que tiene el identificador y la clave principal del área de trabajo de Log Analytics, ya puede crear un grupo de contenedores con el registro habilitado.
En los ejemplos siguientes se muestran dos maneras de crear un grupo de contenedores formado por un solo contenedor fluentd: CLI de Azure y la CLI de Azure con una plantilla de YAML. El contenedor fluentd genera varias líneas de salida en su configuración predeterminada. Dado que esta salida se envía a su área de trabajo de Log Analytics, sirve para mostrar la visualización y consulta de registros.
Implementación con la CLI de Azure
Para implementar con la CLI de Azure, especifique los parámetros --log-analytics-workspace
y --log-analytics-workspace-key
en el comando az container create. Antes de ejecutar el siguiente comando, reemplace los dos valores de área de trabajo por los valores obtenidos en el paso anterior (y actualice el nombre del grupo de recursos).
Nota
En el ejemplo siguiente se extrae una imagen de contenedor público de Docker Hub. Se recomienda configurar un secreto de extracción para autenticarse mediante una cuenta de Docker Hub en lugar de realizar una solicitud de extracción anónima. Para mejorar la confiabilidad al trabajar con contenido público, importe y administre la imagen en un registro de contenedor privado de Azure. Más información sobre cómo trabajar con imágenes públicas.
az container create \
--resource-group myResourceGroup \
--name mycontainergroup001 \
--image fluent/fluentd:v1.3-debian-1 \
--log-analytics-workspace <WORKSPACE_ID> \
--log-analytics-workspace-key <WORKSPACE_KEY>
Implementación con YAML
Utilice este método si prefiere implementar grupos de contenedores con YAML. El siguiente fragmento de código YAML define un grupo de contenedores con un solo contenedor. Copie el código YAML en un nuevo archivo y sustituya LOG_ANALYTICS_WORKSPACE_ID
y LOG_ANALYTICS_WORKSPACE_KEY
por los valores que obtuvo en el paso anterior. Guarde el archivo con el nombre deploy-aci.yaml.
Nota
En el ejemplo siguiente se extrae una imagen de contenedor público de Docker Hub. Se recomienda configurar un secreto de extracción para autenticarse mediante una cuenta de Docker Hub en lugar de realizar una solicitud de extracción anónima. Para mejorar la confiabilidad al trabajar con contenido público, importe y administre la imagen en un registro de contenedor privado de Azure. Más información sobre cómo trabajar con imágenes públicas.
apiVersion: 2019-12-01
location: eastus
name: mycontainergroup001
properties:
containers:
- name: mycontainer001
properties:
environmentVariables: []
image: fluent/fluentd:v1.3-debian-1
ports: []
resources:
requests:
cpu: 1.0
memoryInGB: 1.5
osType: Linux
restartPolicy: Always
diagnostics:
logAnalytics:
workspaceId: LOG_ANALYTICS_WORKSPACE_ID
workspaceKey: LOG_ANALYTICS_WORKSPACE_KEY
tags: null
type: Microsoft.ContainerInstance/containerGroups
A continuación, ejecute el siguiente comando para implementar el grupo de contenedores. Reemplace myResourceGroup
por un grupo de recursos de su suscripción (o bien cree antes un grupo de recursos denominado "myResourceGroup"):
az container create --resource-group myResourceGroup --name mycontainergroup001 --file deploy-aci.yaml
Debería recibir una respuesta de Azure con detalles de implementación poco después de emitir el comando.
Ver registros
Después de implementar el grupo de contenedores, las primeras entradas de registro pueden tardar varios minutos (hasta 10) en aparecer en Azure Portal.
Para ver los registros del grupo de contenedores en la tabla ContainerInstanceLog_CL
:
- Vaya al área de trabajo de Log Analytics en Azure Portal
- En General, seleccione Registros.
- Escriba la consulta siguiente:
ContainerInstanceLog_CL | limit 50
- Seleccione Ejecutar.
Debería ver que la consulta muestra varios resultados. Si no ve ninguno, espere unos minutos y seleccione el botón Ejecutar para volver a ejecutar la consulta. De forma predeterminada, las entradas del registro aparecen en formato de tabla. Luego puede expandir una fila para ver el contenido de una entrada de registro individual.
Ver eventos
También puede ver los eventos de las instancias de contenedor en Azure Portal. Los eventos incluyen la hora en que se crea la instancia y cuándo se inicia. Para ver los datos de evento en la tabla ContainerEvent_CL
:
- Vaya al área de trabajo de Log Analytics en Azure Portal
- En General, seleccione Registros.
- Escriba la consulta siguiente:
ContainerEvent_CL | limit 50
- Seleccione Ejecutar.
Debería ver que la consulta muestra varios resultados. Si no ve ninguno, espere unos minutos y seleccione el botón Ejecutar para volver a ejecutar la consulta. De forma predeterminada, las entradas aparecen en formato de tabla. Luego puede expandir una fila para ver el contenido de una entrada individual.
Consulta de registros de contenedores
Los registros de Azure Monitor incluyen un amplio lenguaje de consulta para poder extraer información de miles de líneas de la salida del registro.
La estructura básica de una consulta consiste en la tabla de origen (en este artículo, ContainerInstanceLog_CL
o ContainerEvent_CL
) seguida de una serie de operadores separados por el carácter de barra vertical (|
). Puede encadenar varios operadores para refinar los resultados y realizar funciones avanzadas.
Para ver los resultados de una consulta de ejemplo, pegue la siguiente consulta en el cuadro de texto de consulta y seleccione el botón Ejecutar para ejecutar la consulta. Esta consulta muestra todas las entradas de registro cuyo campo "Message" contiene la palabra "warn":
ContainerInstanceLog_CL
| where Message contains "warn"
También se admiten consultas más complejas. Por ejemplo, esta consulta muestra solo las entradas de registro del grupo de contenedores "mycontainergroup001" generadas en la última hora:
ContainerInstanceLog_CL
| where (ContainerGroup_s == "mycontainergroup001")
| where (TimeGenerated > ago(1h))
Esquema de registro
Nota:
Algunas de las columnas enumeradas en la tabla siguiente solo existen como parte del esquema y no tendrán datos emitidos en los registros. Estas columnas se indican con una descripción de "Empty".
ContainerInstanceLog_CL
Columna | Type | Descripción |
---|---|---|
Computer | string | Vacío |
ContainerGroup_s | string | Nombre del grupo de contenedores asociado al registro. |
ContainerID_s | string | Identificador único para el contenedor asociado al registro. |
ContainerImage_s | string | Nombre de la imagen de contenedor asociada al registro. |
Location_s | string | Ubicación del recurso asociado al registro. |
Message | string | Si procede, el mensaje del contenedor. |
OSType_s | string | Nombre del sistema operativo en el que se basa el contenedor. |
RawData | string | Vacío |
ResourceGroup | string | Nombre del grupo de recursos al que está asociado el registro. |
Source_s | string | Nombre del componente de registro, "LoggingAgent". |
SubscriptionId | string | Identificador único de la suscripción a la que está asociado el registro. |
TimeGenerated | datetime | Marca de tiempo de cuando el servicio de Azure generó el evento que procesó la solicitud correspondiente al evento. |
Tipo | string | Nombre de la tabla. |
_ResourceId | string | Identificador único del recurso al que está asociado el registro. |
_SubscriptionId | string | Identificador único de la suscripción a la que está asociado el registro. |
ContainerEvent_CL
Columna | Type | Descripción |
---|---|---|
Computer | string | Vacío |
ContainerGroupInstanceId_g | string | Identificador único del grupo de contenedores asociado al registro. |
ContainerGroup_s | string | Nombre del grupo de contenedores asociado al registro. |
ContainerName_s | string | Nombre del contenedor asociado al registro. |
Count_d | real | Número de veces que se ha producido el evento desde el último sondeo. |
FirstTimestamp_t | datetime | Marca de tiempo de la primera vez que se produjo el evento. |
Location_s | string | Ubicación del recurso asociado al registro. |
Message | string | Si procede, el mensaje del contenedor. |
OSType_s | string | Nombre del sistema operativo en el que se basa el contenedor. |
RawData | string | Vacío |
Reason_s | string | Estado actual del grupo de contenedores |
ResourceGroup | string | Nombre del grupo de recursos al que está asociado el registro. |
SubscriptionId | string | Identificador único de la suscripción a la que está asociado el registro. |
TimeGenerated | datetime | Marca de tiempo de cuando el servicio de Azure generó el evento que procesó la solicitud correspondiente al evento. |
Tipo | string | Nombre de la tabla. |
_ResourceId | string | Identificador único del recurso al que está asociado el registro. |
_SubscriptionId | string | Identificador único de la suscripción a la que está asociado el registro. |
Uso de la configuración de diagnóstico
La configuración de diagnóstico para grupos de contenedores es una característica en versión preliminar y se puede habilitar a través de las opciones de características en versión preliminar en Azure Portal. Una vez habilitada esta característica para una suscripción, la configuración de diagnóstico se puede aplicar a un grupo de contenedores. La aplicación de la configuración de diagnóstico hace que se reinicie un grupo de contenedores.
Por ejemplo, aquí se muestra cómo se puede usar el comando New-AzDiagnosticSetting para aplicar un objeto Diagnostic Settings a un grupo de contenedores.
$log = @()
$log += New-AzDiagnosticSettingLogSettingsObject -Enabled $true -Category ContainerInstanceLog -RetentionPolicyDay 7 -RetentionPolicyEnabled $true
New-AzDiagnosticSetting -Name test-setting -ResourceId <container-group-resource-id> -WorkspaceId <log-analytics-workspace-id> -Log $log
Pasos siguientes
Registros de Azure Monitor
Para más información acerca de cómo realizar consultas en registros y configurar alertas en registros de Azure Monitor, consulte:
- Descripción de las búsquedas de registros en los registros de Azure Monitor
- Alertas unificadas en Azure Monitor
Supervisión de la CPU y la memoria de los contenedores
Para obtener información acerca de la supervisión de los recursos de CPU y de memoria de un instancia de contenedor, consulte: