Compartir vía


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 contenedor, necesita los siguientes requisitos previos:

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:

  1. Vaya al área de trabajo de Log Analytics en Azure Portal
  2. En Configuración, seleccione Agents management (Administración de agentes).
  3. 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:

  1. Vaya al área de trabajo de Log Analytics en Azure Portal
  2. En General, seleccione Registros.
  3. Escriba la consulta siguiente: ContainerInstanceLog_CL | limit 50
  4. 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.

Resultados de Búsqueda de registros en Azure Portal

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:

  1. Vaya al área de trabajo de Log Analytics en Azure Portal
  2. En General, seleccione Registros.
  3. Escriba la consulta siguiente: ContainerEvent_CL | limit 50
  4. 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.

Resultados de la búsqueda de registros en Azure Portal

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

Para obtener información sobre el esquema heredado de Azure Monitor para Log Analytics, consulte tablas heredadas de Log Analytics.

Uso de la configuración de diagnóstico

Las tablas más recientes requieren el uso de la configuración de diagnóstico para enrutar información a Log Analytics. La característica de configuración de diagnóstico para Container Instances está en versión preliminar pública y se puede habilitar a través de las opciones de características en versión preliminar en Azure Portal.

Para más información, consulte tablas de Log Analytics de Azure Monitor.

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:

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: