Uso de la extensión Diagnostics de Linux para supervisar métricas y registrosUse Linux Diagnostic Extension to monitor metrics and logs

En este documento se describen las versiones 3.0 y posteriores de la extensión Diagnostics de Linux.This document describes version 3.0 and newer of the Linux Diagnostic Extension.

Importante

Para obtener información sobre las versiones 2.3 y anteriores, consulte este documento.For information about version 2.3 and older, see this document.

IntroducciónIntroduction

La extensión Diagnostics de Linux ayuda a los usuarios a supervisar el mantenimiento de máquinas virtuales Linux que se ejecuten en Microsoft Azure.The Linux Diagnostic Extension helps a user monitor the health of a Linux VM running on Microsoft Azure. Ofrece la siguiente funcionalidad:It has the following capabilities:

  • Recopila métricas de rendimiento del sistema de la máquina virtual y las almacena en una tabla específica de una cuenta de almacenamiento designada.Collects system performance metrics from the VM and stores them in a specific table in a designated storage account.
  • Recupera eventos de registro de syslog y los almacena en una tabla específica de la cuenta de almacenamiento designada.Retrieves log events from syslog and stores them in a specific table in the designated storage account.
  • Permite a los usuarios personalizar las métricas de datos que se recopilan y se cargan.Enables users to customize the data metrics that are collected and uploaded.
  • Permite a los usuarios personalizar las utilidades de syslog y los niveles de gravedad de los eventos que se recopilan y se cargan.Enables users to customize the syslog facilities and severity levels of events that are collected and uploaded.
  • Permite a los usuarios cargar los archivos de registro especificados en la tabla de almacenamiento designada.Enables users to upload specified log files to a designated storage table.
  • Admite el envío de métricas y eventos de registro a puntos de conexión arbitrarios de EventHub y blobs con formato JSON en la cuenta de almacenamiento designada.Supports sending metrics and log events to arbitrary EventHub endpoints and JSON-formatted blobs in the designated storage account.

Esta extensión funciona con los dos modelos de implementación de Azure.This extension works with both Azure deployment models.

Instalación de la extensión en la máquina virtualInstalling the extension in your VM

Puede habilitar esta extensión mediante cmdlets de Azure PowerShell, scripts de la CLI de Azure, plantillas de ARM o Azure Portal.You can enable this extension by using the Azure PowerShell cmdlets, Azure CLI scripts, ARM templates, or the Azure portal. Para obtener más información, consulte Funciones de la extensión.For more information, see Extensions Features.

Nota

Algunos componentes de la extensión de máquina virtual de Diagnostics también se incluyen en la extensión de máquina virtual de Log Analytics.Certain components of the Diagnostics VM extension are also shipped in the Log Analytics VM extension. Debido a esta arquitectura, se pueden producir conflictos si se crean instancias de las dos extensiones en la misma plantilla de ARM.Due to this architecture, conflicts can arise if both extensions are instantiated in the same ARM template. Para evitar estos conflictos en tiempo de instalación, use la directiva dependsOn para asegurarse de que las extensiones se instalan de forma secuencial.To avoid these install-time conflicts, use the dependsOn directive to ensure the extensions are installed sequentially. Las extensiones se pueden instalar en cualquier orden.The extensions can be installed in either order.

Mediante estas instrucciones de instalación y una configuración de ejemplo descargable se configura LAD 3.0 para:These installation instructions and a downloadable sample configuration configure LAD 3.0 to:

  • capturar las mismas métricas que las proporcionadas por LAD 2.3 y almacenarlas,capture and store the same metrics as were provided by LAD 2.3;
  • capturar un conjunto útil de métricas del sistema de archivos (función nueva de LAD 3.0),capture a useful set of file system metrics, new to LAD 3.0;
  • capturar la recopilación predeterminada de syslog habilitada por LAD 2.3, ycapture the default syslog collection enabled by LAD 2.3;
  • habilitar la experiencia de Azure Portal para la creación de gráficos y desencadenamiento de alertas en métricas de máquinas virtuales.enable the Azure portal experience for charting and alerting on VM metrics.

La configuración que se puede descargar es solo un ejemplo; modifíquela como corresponda para adaptarla a sus necesidades.The downloadable configuration is just an example; modify it to suit your own needs.

Distribuciones de Linux compatiblesSupported Linux distributions

La extensión Diagnostics de Linux admite las siguientes distribuciones y versiones.The Linux Diagnostic Extension supports the following distributions and versions. La lista de distribuciones y versiones es válida únicamente con las imágenes de proveedor de Linux aprobadas por Azure.The list of distributions and versions applies only to Azure-endorsed Linux vendor images. Por lo general, las imágenes BYOL y BYOS de terceros (como los dispositivos) no suelen admitirse en la extensión Diagnostics de Linux.Third-party BYOL and BYOS images, like appliances, are generally not supported for the Linux Diagnostic Extension.

En todas las versiones secundarias también se admite una distribución que enumera solo versiones principales, como Debian 7.A distribution that lists only major versions, like Debian 7, is also supported for all minor versions. Si se especifica una versión secundaria específica, solo se admitirá esa versión en concreto; si "+" aparece anexado, se admitirán las versiones secundarias iguales o superiores que la versión especificada.If a specific minor version is specified, only that specific version is supported; if "+" is appended, minor versions equal to or greater than the specified version are supported.

Distribuciones y versiones admitidas:Supported distributions and versions:

  • Ubuntu 18.04, 16.04, 14.04Ubuntu 18.04, 16.04, 14.04
  • CentOS 7, 6.5+CentOS 7, 6.5+
  • Oracle Linux 7, 6.4+Oracle Linux 7, 6.4+
  • OpenSUSE 13.1+OpenSUSE 13.1+
  • SUSE Linux Enterprise Server 12SUSE Linux Enterprise Server 12
  • Debian 9, 8, 7Debian 9, 8, 7
  • RHEL 7, 6.7+RHEL 7, 6.7+

Requisitos previosPrerequisites

  • Versión 2.2.0 o posterior del agente Linux de Azure.Azure Linux Agent version 2.2.0 or later. La mayoría de las imágenes de la galería de máquina virtual Linux de Azure incluyen la versión 2.2.7 o posterior.Most Azure VM Linux gallery images include version 2.2.7 or later. Ejecute /usr/sbin/waagent -version para confirmar la versión instalada en la máquina virtual.Run /usr/sbin/waagent -version to confirm the version installed on the VM. Si la máquina virtual está ejecutando una versión anterior del agente invitado, siga estas instrucciones para actualizarla.If the VM is running an older version of the guest agent, follow these instructions to update it.
  • Azure CLI.Azure CLI. Instale el entorno de la CLI de Azure en la máquina.Set up the Azure CLI environment on your machine.
  • El comando wget, si aún no lo tiene: Ejecute sudo apt-get install wget.The wget command, if you don't already have it: Run sudo apt-get install wget.
  • Una suscripción a Azure existente y una cuenta de almacenamiento de uso general existente para almacenar los datos.An existing Azure subscription and an existing general purpose storage account to store the data in. Las cuentas de almacenamiento de uso general admiten el almacenamiento en tablas, que es necesario.General purpose storage accounts support Table storage which is required. Una cuenta de Blob Storage no funcionará.A Blob storage account will not work.
  • Python 2Python 2

Requisito de PythonPython requirement

La extensión Diagnostics de Linux requiere Python 2.The Linux Diagnostic Extension requires Python 2. Si la máquina virtual usa un distribución que no incluye Python 2 de forma predeterminada, debe instalarlo.If your virtual machine is using a distro that doesn't include Python 2 by default then you must install it. Los siguientes comandos de ejemplo instalarán Python 2 en diferentes distribuciones.The following sample commands will install Python 2 on different distros.

  • Red Hat, CentOS, Oracle: yum install -y python2Red Hat, CentOS, Oracle: yum install -y python2
  • Ubuntu, Debian: apt-get install -y python2Ubuntu, Debian: apt-get install -y python2
  • SUSE: zypper install -y python2SUSE: zypper install -y python2

El ejecutable python2 debe tener un alias para python.The python2 executable must be aliased to python. A continuación se ofrece un método que puede usar para establecer este alias:Following is one method that you can use to set this alias:

  1. Ejecute el siguiente comando para quitar los alias existentes.Run the following command to remove any existing aliases.

    sudo update-alternatives --remove-all python
    
  2. Para crear el alias, ejecute el siguiente comando.Run the following command to create the alias.

    sudo update-alternatives --install /usr/bin/python python /usr/bin/python2 1
    

Instalación de ejemploSample installation

Nota

Para cualquiera de los ejemplos, rellene valores correctos de las variables de la primera sección antes de ejecutar lo siguiente.For either of the samples, fill in the correct values for the variables in the first section before running.

La configuración de ejemplo descargada en estos ejemplos recopila un conjunto de datos estándar y los envía a un almacenamiento de tabla.The sample configuration downloaded in these examples collects a set of standard data and sends them to table storage. La dirección URL de la configuración de muestreo y su contenido están sujetos a cambios.The URL for the sample configuration and its contents are subject to change. En la mayoría de los casos, conviene descargar una copia del archivo JSON de configuración del portal y personalizarlo según sus necesidades y, tras ello, hacer que las plantillas o automatizaciones que se creen usen su propia versión del archivo de configuración, en lugar de tener que descargar esa dirección URL una y otra vez.In most cases, you should download a copy of the portal settings JSON file and customize it for your needs, then have any templates or automation you construct use your own version of the configuration file rather than downloading that URL each time.

Ejemplo de la CLI de AzureAzure CLI sample

# Set your Azure VM diagnostic variables correctly below
my_resource_group=<your_azure_resource_group_name_containing_your_azure_linux_vm>
my_linux_vm=<your_azure_linux_vm_name>
my_diagnostic_storage_account=<your_azure_storage_account_for_storing_vm_diagnostic_data>

# Should login to Azure first before anything else
az login

# Select the subscription containing the storage account
az account set --subscription <your_azure_subscription_id>

# Download the sample Public settings. (You could also use curl or any web browser)
wget https://raw.githubusercontent.com/Azure/azure-linux-extensions/master/Diagnostic/tests/lad_2_3_compatible_portal_pub_settings.json -O portal_public_settings.json

# Build the VM resource ID. Replace storage account name and resource ID in the public settings.
my_vm_resource_id=$(az vm show -g $my_resource_group -n $my_linux_vm --query "id" -o tsv)
sed -i "s#__DIAGNOSTIC_STORAGE_ACCOUNT__#$my_diagnostic_storage_account#g" portal_public_settings.json
sed -i "s#__VM_RESOURCE_ID__#$my_vm_resource_id#g" portal_public_settings.json

# Build the protected settings (storage account SAS token)
my_diagnostic_storage_account_sastoken=$(az storage account generate-sas --account-name $my_diagnostic_storage_account --expiry 2037-12-31T23:59:00Z --permissions wlacu --resource-types co --services bt -o tsv)
my_lad_protected_settings="{'storageAccountName': '$my_diagnostic_storage_account', 'storageAccountSasToken': '$my_diagnostic_storage_account_sastoken'}"

# Finallly tell Azure to install and enable the extension
az vm extension set --publisher Microsoft.Azure.Diagnostics --name LinuxDiagnostic --version 3.0 --resource-group $my_resource_group --vm-name $my_linux_vm --protected-settings "${my_lad_protected_settings}" --settings portal_public_settings.json

Ejemplo de la CLI de Azure para la instalación de la extensión LAD 3.0 en la instancia de VMSSAzure CLI sample for Installing LAD 3.0 extension on the VMSS instance

#Set your Azure VMSS diagnostic variables correctly below
$my_resource_group=<your_azure_resource_group_name_containing_your_azure_linux_vm>
$my_linux_vmss=<your_azure_linux_vmss_name>
$my_diagnostic_storage_account=<your_azure_storage_account_for_storing_vm_diagnostic_data>

# Should login to Azure first before anything else
az login

# Select the subscription containing the storage account
az account set --subscription <your_azure_subscription_id>

# Download the sample Public settings. (You could also use curl or any web browser)
wget https://raw.githubusercontent.com/Azure/azure-linux-extensions/master/Diagnostic/tests/lad_2_3_compatible_portal_pub_settings.json -O portal_public_settings.json

# Build the VMSS resource ID. Replace storage account name and resource ID in the public settings.
$my_vmss_resource_id=$(az vmss show -g $my_resource_group -n $my_linux_vmss --query "id" -o tsv)
sed -i "s#__DIAGNOSTIC_STORAGE_ACCOUNT__#$my_diagnostic_storage_account#g" portal_public_settings.json
sed -i "s#__VM_RESOURCE_ID__#$my_vmss_resource_id#g" portal_public_settings.json

# Build the protected settings (storage account SAS token)
$my_diagnostic_storage_account_sastoken=$(az storage account generate-sas --account-name $my_diagnostic_storage_account --expiry 2037-12-31T23:59:00Z --permissions wlacu --resource-types co --services bt -o tsv)
$my_lad_protected_settings="{'storageAccountName': '$my_diagnostic_storage_account', 'storageAccountSasToken': '$my_diagnostic_storage_account_sastoken'}"

# Finally tell Azure to install and enable the extension
az vmss extension set --publisher Microsoft.Azure.Diagnostics --name LinuxDiagnostic --version 3.0 --resource-group $my_resource_group --vmss-name $my_linux_vmss --protected-settings "${my_lad_protected_settings}" --settings portal_public_settings.json

Ejemplo de PowerShellPowerShell sample

$storageAccountName = "yourStorageAccountName"
$storageAccountResourceGroup = "yourStorageAccountResourceGroupName"
$vmName = "yourVMName"
$VMresourceGroup = "yourVMResourceGroupName"

# Get the VM object
$vm = Get-AzVM -Name $vmName -ResourceGroupName $VMresourceGroup

# Get the public settings template from GitHub and update the templated values for storage account and resource ID
$publicSettings = (Invoke-WebRequest -Uri https://raw.githubusercontent.com/Azure/azure-linux-extensions/master/Diagnostic/tests/lad_2_3_compatible_portal_pub_settings.json).Content
$publicSettings = $publicSettings.Replace('__DIAGNOSTIC_STORAGE_ACCOUNT__', $storageAccountName)
$publicSettings = $publicSettings.Replace('__VM_RESOURCE_ID__', $vm.Id)

# If you have your own customized public settings, you can inline those rather than using the template above: $publicSettings = '{"ladCfg":  { ... },}'

# Generate a SAS token for the agent to use to authenticate with the storage account
$sasToken = New-AzStorageAccountSASToken -Service Blob,Table -ResourceType Service,Container,Object -Permission "racwdlup" -Context (Get-AzStorageAccount -ResourceGroupName $storageAccountResourceGroup -AccountName $storageAccountName).Context -ExpiryTime $([System.DateTime]::Now.AddYears(10))

# Build the protected settings (storage account SAS token)
$protectedSettings="{'storageAccountName': '$storageAccountName', 'storageAccountSasToken': '$sasToken'}"

# Finally install the extension with the settings built above
Set-AzVMExtension -ResourceGroupName $VMresourceGroup -VMName $vmName -Location $vm.Location -ExtensionType LinuxDiagnostic -Publisher Microsoft.Azure.Diagnostics -Name LinuxDiagnostic -SettingString $publicSettings -ProtectedSettingString $protectedSettings -TypeHandlerVersion 3.0 

Actualización de la configuración de la extensiónUpdating the extension settings

Después de cambiar la Configuración pública o protegida, ejecute el mismo comando para implementarla en la VM.After you've changed your Protected or Public settings, deploy them to the VM by running the same command. Si se ha realizado cualquier modificación en la configuración, la configuración actualizada se envía a la extensión.If anything changed in the settings, the updated settings are sent to the extension. LAD recarga la configuración y se reinicia automáticamente.LAD reloads the configuration and restarts itself.

Migración desde versiones anteriores de la extensiónMigration from previous versions of the extension

La versión más reciente de la extensión es la 3.0.The latest version of the extension is 3.0. Todas las versiones anteriores (2.x) están en desuso y pueden retirarse a partir del 31 de julio de 2018.Any old versions (2.x) are deprecated and may be unpublished on or after July 31, 2018.

Importante

En esta extensión se introducen importantes cambios de configuración.This extension introduces breaking changes to the configuration of the extension. La finalidad de uno de estos cambios era aumentar la seguridad de la extensión; por tanto, no se pudo conservar la compatibilidad con las versiones 2.x anteriores.One such change was made to improve the security of the extension; as a result, backwards compatibility with 2.x could not be maintained. Además, el publicador de esta extensión es diferente del de las versiones 2.x.Also, the Extension Publisher for this extension is different than the publisher for the 2.x versions.

Para migrar a esta nueva versión de la extensión desde versiones 2.x, debe desinstalar la antigua (con el nombre de publicador anterior) y, a continuación, instalar la versión 3.To migrate from 2.x to this new version of the extension, you must uninstall the old extension (under the old publisher name), then install version 3 of the extension.

Recomendaciones:Recommendations:

  • Instale la extensión con la actualización de versión secundaria automática habilitada.Install the extension with automatic minor version upgrade enabled.
    • En máquinas virtuales con el modelo de implementación clásica, especifique "3.*" como versión si va a instalar la extensión mediante la CLI xPLAT de Azure o PowerShell.On classic deployment model VMs, specify '3.*' as the version if you are installing the extension through Azure XPLAT CLI or Powershell.
    • En las máquinas virtuales del modelo de implementación de Azure Resource Manager, incluya ""autoUpgradeMinorVersion": true" en la plantilla de implementación de máquina virtual.On Azure Resource Manager deployment model VMs, include '"autoUpgradeMinorVersion": true' in the VM deployment template.
  • Use una cuenta de almacenamiento nueva o diferente para LAD 3.0.Use a new/different storage account for LAD 3.0. Hay varias pequeñas incompatibilidades entre LAD 2.3 y LAD 3.0 que hacen que compartir una cuenta sea problemático:There are several small incompatibilities between LAD 2.3 and LAD 3.0 that make sharing an account troublesome:
    • LAD 3.0 almacena los eventos de syslog en una tabla con un nombre diferente.LAD 3.0 stores syslog events in a table with a different name.
    • Las cadenas de counterSpecifier para las métricas de builtin son diferentes en LAD 3.0.The counterSpecifier strings for builtin metrics differ in LAD 3.0.

Configuración protegidaProtected settings

Este conjunto de información de configuración contiene información confidencial que debería protegerse de la vista pública, por ejemplo, las credenciales de almacenamiento.This set of configuration information contains sensitive information that should be protected from public view, for example, storage credentials. Esta configuración se transmite la extensión y es almacenada por esta de forma cifrada.These settings are transmitted to and stored by the extension in encrypted form.

{
    "storageAccountName" : "the storage account to receive data",
    "storageAccountEndPoint": "the hostname suffix for the cloud for this account",
    "storageAccountSasToken": "SAS access token",
    "mdsdHttpProxy": "HTTP proxy settings",
    "sinksConfig": { ... }
}
NombreName ValueValue
storageAccountNamestorageAccountName Es el nombre de la cuenta de almacenamiento en la que la extensión escribe los datos.The name of the storage account in which data is written by the extension.
storageAccountEndPointstorageAccountEndPoint (Opcional) es el punto de conexión que identifica la nube en la que existe la cuenta de almacenamiento.(optional) The endpoint identifying the cloud in which the storage account exists. Si no hubiera configuración, LAD selecciona la nube pública de Azure (https://core.windows.net) de forma predeterminada.If this setting is absent, LAD defaults to the Azure public cloud, https://core.windows.net. Para usar una cuenta de almacenamiento en Azure Alemania, Azure Government o Azure China, establezca este valor como corresponda.To use a storage account in Azure Germany, Azure Government, or Azure China, set this value accordingly.
storageAccountSasTokenstorageAccountSasToken Es un token de SAS de cuenta para Blob services y Table services (ss='bt') aplicable a contenedores y objetos (srt='co'), que otorga permisos, los crea, los enumera, los actualiza y los escribe (sp='acluw').An Account SAS token for Blob and Table services (ss='bt'), applicable to containers and objects (srt='co'), which grants add, create, list, update, and write permissions (sp='acluw'). No incluya el signo de interrogación principal (?).Do not include the leading question-mark (?).
mdsdHttpProxymdsdHttpProxy (Opcional) es información del proxy HTTP necesaria para habilitar la extensión para conectarse a la cuenta de almacenamiento y el punto de conexión especificados.(optional) HTTP proxy information needed to enable the extension to connect to the specified storage account and endpoint.
sinksConfigsinksConfig (Opcional) es información sobre destinos alternativos a los que pueden enviarse métricas y eventos.(optional) Details of alternative destinations to which metrics and events can be delivered. La información específica de cada receptor de datos admitido por la extensión se trata en las siguientes secciones.The specific details of each data sink supported by the extension are covered in the sections that follow.

Para obtener un token de SAS en una plantilla de Resource Manager, utilice la función listAccountSas.To get a SAS token within a Resource Manager template, use the listAccountSas function. Para ver una plantilla de ejemplo, consulte un ejemplo de función de lista.For an example template, see List function example.

Es posible construir el token de SAS necesario de forma muy sencilla mediante Azure Portal.You can easily construct the required SAS token through the Azure portal.

  1. Seleccione la cuenta de almacenamiento de uso general en la que quiere que escriba la extensión.Select the general-purpose storage account to which you want the extension to write
  2. Seleccione "Firma de acceso compartido" de la sección Configuración del menú izquierdo.Select "Shared access signature" from the Settings part of the left menu
  3. Cree las secciones pertinentes, conforme a lo descrito anteriormente.Make the appropriate sections as previously described
  4. Haga clic en el botón "Generar SAS".Click the "Generate SAS" button.

Captura de pantalla que muestra la página Firma de acceso compartido con la opción Generar SAS.

Copie la SAS generada en el campo storageAccountSasToken. Elimine el signo de interrogación principal ("?").Copy the generated SAS into the storageAccountSasToken field; remove the leading question-mark ("?").

sinksConfigsinksConfig

"sinksConfig": {
    "sink": [
        {
            "name": "sinkname",
            "type": "sinktype",
            ...
        },
        ...
    ]
},

En esta sección opcional se definen destinos adicionales a los que la extensión envía la información que recopila.This optional section defines additional destinations to which the extension sends the information it collects. La matriz "sink" contiene un objeto para cada receptor de datos adicional.The "sink" array contains an object for each additional data sink. El atributo "type" determina los demás atributos del objeto.The "type" attribute determines the other attributes in the object.

ElementoElement ValueValue
namename Una cadena usada para hacer referencia a este receptor en cualquier otra parte de la configuración de la extensión.A string used to refer to this sink elsewhere in the extension configuration.
typetype Es el tipo de receptor que se va a definir.The type of sink being defined. Determina los demás valores (si los hubiera) en instancias de este tipo.Determines the other values (if any) in instances of this type.

La versión 3.0 de la extensión Diagnostics de Linux admite dos tipos de receptores: de EventHub y Json BLOB.Version 3.0 of the Linux Diagnostic Extension supports two sink types: EventHub, and JsonBlob.

El receptor de EventHubThe EventHub sink

"sink": [
    {
        "name": "sinkname",
        "type": "EventHub",
        "sasURL": "https SAS URL"
    },
    ...
]

La entrada "sasURL" contiene la URL completa, incluido el token SAS, para la instancia de EventHub en la que deberían publicarse los datos.The "sasURL" entry contains the full URL, including SAS token, for the Event Hub to which data should be published. LAD necesita una directiva de denominación de SAS que habilite la notificación Send.LAD requires a SAS naming a policy that enables the Send claim. Por ejemplo:An example:

  • Cree un espacio de nombres de Event Hubs llamado contosohub.Create an Event Hubs namespace called contosohub
  • Cree un Event Hub en el espacio de nombres llamado syslogmsgs.Create an Event Hub in the namespace called syslogmsgs
  • Cree una directiva de acceso compartido en el Event Hub llamada writer que habilite la notificación Send.Create a Shared access policy on the Event Hub named writer that enables the Send claim

Si creó una SAS válida hasta la medianoche en horario UTC del 1 de enero de 2018, el valor de sasURL podría ser:If you created a SAS good until midnight UTC on January 1, 2018, the sasURL value might be:

https://contosohub.servicebus.windows.net/syslogmsgs?sr=contosohub.servicebus.windows.net%2fsyslogmsgs&sig=xxxxxxxxxxxxxxxxxxxxxxxxx&se=1514764800&skn=writer

Para obtener más información sobre la generación y recuperación de información sobre tokens de SAS para Event Hubs, consulte esta página web.For more information about generating and retrieving information on SAS tokens for Event Hubs, see this web page.

El receptor de Json BLOBThe JsonBlob sink

"sink": [
    {
        "name": "sinkname",
        "type": "JsonBlob"
    },
    ...
]

Los datos dirigidos a un receptor de Json BLOB se almacenan en blobs en Azure Storage.Data directed to a JsonBlob sink is stored in blobs in Azure storage. Cada instancia de LAD crea un blob cada hora para cada nombre de receptor.Each instance of LAD creates a blob every hour for each sink name. Todos los blobs siempre contienen una matriz de objeto JSON válida sintácticamente.Each blob always contains a syntactically valid JSON array of object. Se agregan nuevas entradas a la matriz automáticamente.New entries are atomically added to the array. Los blobs se almacenan en un contenedor con el mismo nombre que el receptor.Blobs are stored in a container with the same name as the sink. Las reglas de Azure Storage para los nombres de contenedores de blobs se aplican a los nombres de los receptores de Json BLOB: entre 3 y 63 caracteres alfanuméricos ASCII o guiones.The Azure storage rules for blob container names apply to the names of JsonBlob sinks: between 3 and 63 lower-case alphanumeric ASCII characters or dashes.

Configuración públicaPublic settings

Esta estructura contiene varios bloques de valores de configuración que controlan la información recopilada por la extensión.This structure contains various blocks of settings that control the information collected by the extension. Cada valor de configuración es opcional.Each setting is optional. Si especifica ladCfg, también debe especificar StorageAccount.If you specify ladCfg, you must also specify StorageAccount.

{
    "ladCfg":  { ... },
    "perfCfg": { ... },
    "fileLogs": { ... },
    "StorageAccount": "the storage account to receive data",
    "mdsdHttpProxy" : ""
}
ElementoElement ValueValue
StorageAccountStorageAccount Es el nombre de la cuenta de almacenamiento en la que la extensión escribe los datos.The name of the storage account in which data is written by the extension. Debe ser el mismo nombre que se especifique en la Configuración protegida.Must be the same name as is specified in the Protected settings.
mdsdHttpProxymdsdHttpProxy (Opcional) es el mismo que en la Configuración protegida.(optional) Same as in the Protected settings. El valor público reemplaza al privado, en caso de estar establecido.The public value is overridden by the private value, if set. Coloque elementos de configuración de proxy que contengan un secreto, como una contraseña, en la Configuración protegida.Place proxy settings that contain a secret, such as a password, in the Protected settings.

El resto de los elementos se describen con más detalle en las secciones siguientes.The remaining elements are described in detail in the following sections.

ladCfgladCfg

"ladCfg": {
    "diagnosticMonitorConfiguration": {
        "eventVolume": "Medium",
        "metrics": { ... },
        "performanceCounters": { ... },
        "syslogEvents": { ... }
    },
    "sampleRateInSeconds": 15
}

Esta estructura opcional controla la recopilación de métricas y registros para enviarlos al servicio de Métricas de Azure y otros receptores de datos.This optional structure controls the gathering of metrics and logs for delivery to the Azure Metrics service and to other data sinks. Debe especificar performanceCounters, syslogEvents o ambos.You must specify either performanceCounters or syslogEvents or both. Debe especificar la estructura de metrics.You must specify the metrics structure.

ElementoElement ValueValue
eventVolumeeventVolume (Opcional) controla el número de particiones creadas en la tabla de almacenamiento.(optional) Controls the number of partitions created within the storage table. Debe ser uno de los siguientes valores: "Large", "Medium" o "Small".Must be one of "Large", "Medium", or "Small". Si no se especifica, el valor predeterminado es "Medium".If not specified, the default value is "Medium".
sampleRateInSecondssampleRateInSeconds (Opcional) es el intervalo predeterminado entre la recopilación de métricas sin procesar (sin agregar).(optional) The default interval between collection of raw (unaggregated) metrics. La frecuencia de muestreo más pequeña admitida es de 15 segundos.The smallest supported sample rate is 15 seconds. Si no se especifica, el valor predeterminado es 15.If not specified, the default value is 15.

Métricasmetrics

"metrics": {
    "resourceId": "/subscriptions/...",
    "metricAggregation" : [
        { "scheduledTransferPeriod" : "PT1H" },
        { "scheduledTransferPeriod" : "PT5M" }
    ]
}
ElementoElement ValueValue
resourceIdresourceId El identificador de recurso de Azure Resource Manager de la VM o del conjunto de escalado de máquinas virtuales al que pertenezca la VM.The Azure Resource Manager resource ID of the VM or of the virtual machine scale set to which the VM belongs. Esta configuración también debe especificarse en caso de usar cualquier receptor de Json BLOB en la configuración.This setting must be also specified if any JsonBlob sink is used in the configuration.
scheduledTransferPeriodscheduledTransferPeriod La frecuencia con la que se computarán métricas agregadas y se transferirán a Métricas de Azure, expresadas en forma de intervalo de tiempo ISO 8601.The frequency at which aggregate metrics are to be computed and transferred to Azure Metrics, expressed as an IS 8601 time interval. El período de transferencia mínimo es de 60 segundos, es decir, PT1M.The smallest transfer period is 60 seconds, that is, PT1M. Debe especificar al menos un elemento scheduledTransferPeriod.You must specify at least one scheduledTransferPeriod.

Se recopilan muestras de las métricas especificadas en la sección performanceCounters cada 15 segundos o a la frecuencia de muestreo definida para el contador de forma explícita.Samples of the metrics specified in the performanceCounters section are collected every 15 seconds or at the sample rate explicitly defined for the counter. Si aparecen varias frecuencias de scheduledTransferPeriod (como en el ejemplo), cada agregación se computa de forma independiente.If multiple scheduledTransferPeriod frequencies appear (as in the example), each aggregation is computed independently.

performanceCountersperformanceCounters

"performanceCounters": {
    "sinks": "",
    "performanceCounterConfiguration": [
        {
            "type": "builtin",
            "class": "Processor",
            "counter": "PercentIdleTime",
            "counterSpecifier": "/builtin/Processor/PercentIdleTime",
            "condition": "IsAggregate=TRUE",
            "sampleRate": "PT15S",
            "unit": "Percent",
            "annotation": [
                {
                    "displayName" : "Aggregate CPU %idle time",
                    "locale" : "en-us"
                }
            ]
        }
    ]
}

Esta sección opcional controla la recopilación de métricas.This optional section controls the collection of metrics. Se agregan muestras sin procesar para cada elemento scheduledTransferPeriod a fin de generar estos valores:Raw samples are aggregated for each scheduledTransferPeriod to produce these values:

  • meanmean
  • minimumminimum
  • maximummaximum
  • last-collected valuelast-collected value
  • Número de muestras sin procesar usadas para computar el agregadocount of raw samples used to compute the aggregate
ElementoElement ValueValue
sinkssinks (Opcional) es una lista separada por comas de nombres de receptores a los que LAD envía los resultados de las métricas agregadas.(optional) A comma-separated list of names of sinks to which LAD sends aggregated metric results. Todas las métricas agregadas se publican en cada receptor indicado.All aggregated metrics are published to each listed sink. Consulte sinksConfig.See sinksConfig. Ejemplo: "EHsink1, myjsonsink".Example: "EHsink1, myjsonsink".
typetype Identifica el proveedor real de la métrica.Identifies the actual provider of the metric.
classclass Junto con "counter", identifica la métrica específica en el espacio de nombres del proveedor.Together with "counter", identifies the specific metric within the provider's namespace.
countercounter Junto con "class", identifica la métrica específica en el espacio de nombres del proveedor.Together with "class", identifies the specific metric within the provider's namespace.
counterSpecifiercounterSpecifier Identifica la métrica específica en el espacio de nombres de Métricas de Azure.Identifies the specific metric within the Azure Metrics namespace.
condicióncondition (Opcional) selecciona una instancia específica del objeto al que se aplica la métrica o selecciona la agregación en todas las instancias de este objeto.(optional) Selects a specific instance of the object to which the metric applies or selects the aggregation across all instances of that object. Para más información, consulte las definiciones de las métricas builtin.For more information, see the builtin metric definitions.
sampleRatesampleRate Intervalo de ISO 8601 que establece la frecuencia de recopilación de muestras sin procesar de esta métrica.IS 8601 interval that sets the rate at which raw samples for this metric are collected. Si no se establece, el intervalo de recopilación se establece a partir del valor de sampleRateInSeconds.If not set, the collection interval is set by the value of sampleRateInSeconds. La frecuencia de muestreo más corta admitida es de 15 segundos (PT15S).The shortest supported sample rate is 15 seconds (PT15S).
unitunit Debería ser una de estas cadenas: "Count", "Bytes", "Seconds", "Percent", "CountPerSecond", "BytesPerSecond" o "Millisecond".Should be one of these strings: "Count", "Bytes", "Seconds", "Percent", "CountPerSecond", "BytesPerSecond", "Millisecond". Define la unidad para la métrica.Defines the unit for the metric. Los consumidores de los datos recopilados esperan que los valores de los datos recopilados coincidan con esta unidad.Consumers of the collected data expect the collected data values to match this unit. LAD omite este campo.LAD ignores this field.
DisplayNamedisplayName La etiqueta (en el idioma especificado por la configuración regional correspondiente) que va a adjuntarse a estos datos en el servicio de Métricas de Azure.The label (in the language specified by the associated locale setting) to be attached to this data in Azure Metrics. LAD omite este campo.LAD ignores this field.

El elemento counterSpecifier es un identificador arbitrario.The counterSpecifier is an arbitrary identifier. Los consumidores de métricas, como la característica de creación de grafos y desencadenamiento alertas de Azure Portal, usan counterSpecifier como "clave" para identificar una métrica o instancia de una métrica.Consumers of metrics, like the Azure portal charting and alerting feature, use counterSpecifier as the "key" that identifies a metric or an instance of a metric. Para las métricas de builtin, se recomienda usar valores counterSpecifier que empiecen por /builtin/.For builtin metrics, we recommend you use counterSpecifier values that begin with /builtin/. Si va a recopilar una instancia específica de una métrica, se recomienda adjuntar el identificador de la instancia al valor de counterSpecifier.If you are collecting a specific instance of a metric, we recommend you attach the identifier of the instance to the counterSpecifier value. He aquí algunos ejemplos:Some examples:

  • /builtin/Processor/PercentIdleTime: tiempo de inactividad promediado en todas las vCPU/builtin/Processor/PercentIdleTime - Idle time averaged across all vCPUs
  • /builtin/Disk/FreeSpace(/mnt): espacio libre para el elemento /mnt filesystem/builtin/Disk/FreeSpace(/mnt) - Free space for the /mnt filesystem
  • /builtin/Disk/FreeSpace: espacio libre promediado entre todos los elementos filesystem montados/builtin/Disk/FreeSpace - Free space averaged across all mounted filesystems

Ni LAD ni Azure Portal esperan que el valor de counterSpecifier concuerde con ningún patrón.Neither LAD nor the Azure portal expects the counterSpecifier value to match any pattern. Sea coherente en el modo de construcción de valores counterSpecifier.Be consistent in how you construct counterSpecifier values.

Si especifica performanceCounters, LAD siempre escribe datos en una tabla en Azure Storage.When you specify performanceCounters, LAD always writes data to a table in Azure storage. Puede hacer que se escriban los mismos datos a blobs JSON o Event Hubs, pero no puede deshabilitar el almacenamiento de datos en una tabla.You can have the same data written to JSON blobs and/or Event Hubs, but you cannot disable storing data to a table. Todas las instancias de la extensión de diagnóstico configuradas para usar el mismo nombre de cuenta de almacenamiento y el mismo punto de conexión agregan sus métricas y registros a la misma tabla.All instances of the diagnostic extension configured to use the same storage account name and endpoint add their metrics and logs to the same table. Si hay demasiadas máquinas virtuales escribiendo en la misma partición de tabla, Azure puede limitar las escrituras a dicha partición.If too many VMs are writing to the same table partition, Azure can throttle writes to that partition. El valor eventVolume hace que las entradas se repartan entre 1 (Small), 10 (Medium) o 100 (Large) particiones diferentes.The eventVolume setting causes entries to be spread across 1 (Small), 10 (Medium), or 100 (Large) different partitions. Por lo general, un valor "Medium" es suficiente para asegurarse de que el tráfico no se vea limitado.Usually, "Medium" is sufficient to ensure traffic is not throttled. La característica de las métricas de Azure de Azure Portal usa los datos de esta tabla para crear gráficos o desencadenar alertas.The Azure Metrics feature of the Azure portal uses the data in this table to produce graphs or to trigger alerts. El nombre de tabla es la concatenación de las siguientes cadenas:The table name is the concatenation of these strings:

  • WADMetrics
  • El elemento "scheduledTransferPeriod" para los valores agregados almacenados en la tablaThe "scheduledTransferPeriod" for the aggregated values stored in the table
  • P10DV2S
  • Una fecha en formato "AAAAMMDD", que cambia cada 10 díasA date, in the form "YYYYMMDD", which changes every 10 days

Algunos ejemplos son WADMetricsPT1HP10DV2S20170410 y WADMetricsPT1MP10DV2S20170609.Examples include WADMetricsPT1HP10DV2S20170410 and WADMetricsPT1MP10DV2S20170609.

syslogEventssyslogEvents

"syslogEvents": {
    "sinks": "",
    "syslogEventConfiguration": {
        "facilityName1": "minSeverity",
        "facilityName2": "minSeverity",
        ...
    }
}

Esta sección opcional controla la recopilación de eventos de registro de syslog.This optional section controls the collection of log events from syslog. Si se omite la sección, no se captura ningún evento de syslog.If the section is omitted, syslog events are not captured at all.

La recopilación de syslogEventConfiguration tiene una entrada para cada recurso de syslog de interés.The syslogEventConfiguration collection has one entry for each syslog facility of interest. Si el valor de minSeverity es "NONE" para un recurso en particular, o si el recurso no aparece en el elemento, no se captura ningún evento de dicho recurso.If minSeverity is "NONE" for a particular facility, or if that facility does not appear in the element at all, no events from that facility are captured.

ElementoElement ValueValue
sinkssinks Es una lista separada por comas de nombres de receptores en los que se publican los eventos de registros individuales.A comma-separated list of names of sinks to which individual log events are published. Todos los eventos de registro que coincidan con las restricciones de syslogEventConfiguration se publican en cada receptor indicado.All log events matching the restrictions in syslogEventConfiguration are published to each listed sink. Ejemplo: "EHforsyslog"Example: "EHforsyslog"
facilityNamefacilityName Es un nombre de recurso de syslog (como "LOG_USER" o "LOG_LOCAL0").A syslog facility name (such as "LOG_USER" or "LOG_LOCAL0"). Consulte la sección "facility" de la página man de syslog para obtener la lista completa.See the "facility" section of the syslog man page for the full list.
minSeverityminSeverity Es un nivel de gravedad de syslog (como "LOG_ERR" o "LOG_INFO").A syslog severity level (such as "LOG_ERR" or "LOG_INFO"). Consulte la sección "level" de la página man de syslog para obtener la lista completa.See the "level" section of the syslog man page for the full list. La extensión captura eventos enviados al recurso al nivel especificado o uno superior.The extension captures events sent to the facility at or above the specified level.

Si especifica syslogEvents, LAD siempre escribe datos en una tabla en Azure Storage.When you specify syslogEvents, LAD always writes data to a table in Azure storage. Puede hacer que se escriban los mismos datos a blobs JSON o Event Hubs, pero no puede deshabilitar el almacenamiento de datos en una tabla.You can have the same data written to JSON blobs and/or Event Hubs, but you cannot disable storing data to a table. El compartimiento de la creación de particiones para esta tabla es el mismo descrito para performanceCounters.The partitioning behavior for this table is the same as described for performanceCounters. El nombre de tabla es la concatenación de las siguientes cadenas:The table name is the concatenation of these strings:

  • LinuxSyslog
  • Una fecha en formato "AAAAMMDD", que cambia cada 10 díasA date, in the form "YYYYMMDD", which changes every 10 days

Algunos ejemplos son LinuxSyslog20170410 y LinuxSyslog20170609.Examples include LinuxSyslog20170410 and LinuxSyslog20170609.

perfCfgperfCfg

Esta sección opcional controla la exclusión de consultas OMI arbitrarias.This optional section controls execution of arbitrary OMI queries.

"perfCfg": [
    {
        "namespace": "root/scx",
        "query": "SELECT PercentAvailableMemory, PercentUsedSwap FROM SCX_MemoryStatisticalInformation",
        "table": "LinuxOldMemory",
        "frequency": 300,
        "sinks": ""
    }
]
ElementoElement ValueValue
espacio de nombresnamespace (Opcional) es el espacio de nombres OMI en el que la consulta debería ejecutarse.(optional) The OMI namespace within which the query should be executed. Si no se especifica, el valor predeterminado es "root/scx", implementado por los proveedores multiplataforma de System Center.If unspecified, the default value is "root/scx", implemented by the System Center Cross-platform Providers.
Queryquery Es la consulta de OMI que va a ejecutarse.The OMI query to be executed.
tabletable (Opcional) es la tabla de almacenamiento de Azure, en la cuenta de almacenamiento designada (consulte Configuración protegida).(optional) The Azure storage table, in the designated storage account (see Protected settings).
frequencyfrequency (Opcional) es el número de segundos entre la ejecución de la consulta.(optional) The number of seconds between execution of the query. El valor predeterminado es de 300 (5 minutos) y el mínimo es de 15 segundos.Default value is 300 (5 minutes); minimum value is 15 seconds.
sinkssinks (Opcional) es una lista separada por comas de nombres de receptores adicionales en los que deberían publicarse los resultados de las métricas de muestra sin procesar.(optional) A comma-separated list of names of additional sinks to which raw sample metric results should be published. Ni la extensión ni Métricas de Azure computan ninguna agregación de estos ejemplos sin procesar.No aggregation of these raw samples is computed by the extension or by Azure Metrics.

Deben especificarse "table", "sinks" o ambos.Either "table" or "sinks", or both, must be specified.

fileLogsfileLogs

Controla la captura de los archivos de registro.Controls the capture of log files. LAD captura nuevas líneas de texto a medida que se escriben en el archivo y las escribe en filas de tabla o en cualquier receptor especificado (de JsonBlob o EventHub).LAD captures new text lines as they are written to the file and writes them to table rows and/or any specified sinks (JsonBlob or EventHub).

Nota

Un subcomponente de LAD denominado omsagent captura fileLogs.fileLogs are captured by a subcomponent of LAD called omsagent. Para recopilar fileLogs, debe asegurarse de que el usuario omsagent tenga permisos de lectura en los archivos especificados, así como permisos de ejecución en todos los directorios de la ruta de acceso a ese archivo.In order to collect fileLogs, you must ensure that the omsagent user has read permissions on the files you specify, as well as execute permissions on all directories in the path to that file. Puede comprobarlo si ejecuta sudo su omsagent -c 'cat /path/to/file' después de instalar LAD.You can check this by running sudo su omsagent -c 'cat /path/to/file' after LAD is installed.

"fileLogs": [
    {
        "file": "/var/log/mydaemonlog",
        "table": "MyDaemonEvents",
        "sinks": ""
    }
]
ElementoElement ValueValue
archivofile Es la ruta de acceso completa del archivo de registro que va a inspeccionarse y capturarse.The full pathname of the log file to be watched and captured. La ruta de acceso debe denominar un único archivo. No puede denominar un directorio ni contener caracteres comodín.The pathname must name a single file; it cannot name a directory or contain wildcards. La cuenta de usuario "omsagent" debe tener acceso de lectura a la ruta de acceso del archivo.The 'omsagent' user account must have read access to the file path.
tabletable (Opcional) es la tabla de Azure Storage en la cuenta de almacenamiento designada (especificada en la configuración protegida) en la que se escriben nuevas líneas de la "cola" del archivo.(optional) The Azure storage table, in the designated storage account (as specified in the protected configuration), into which new lines from the "tail" of the file are written.
sinkssinks (Opcional) es una lista separada por combas de nombres de receptores adicionales a la que se envían líneas de registro.(optional) A comma-separated list of names of additional sinks to which log lines sent.

Deben especificarse "table", "sinks" o ambos.Either "table" or "sinks", or both, must be specified.

Métricas admitidas por el proveedor de builtinMetrics supported by the builtin provider

El proveedor de métricas builtin es una fuente de métricas del máximo interés para una gran cantidad de usuarios.The builtin metric provider is a source of metrics most interesting to a broad set of users. Estas métricas se dividen en cinco clases amplias:These metrics fall into five broad classes:

  • ProcesadorProcessor
  • MemoriaMemory
  • RedNetwork
  • Sistema de archivosFilesystem
  • DiscoDisk

Métricas builtin para la clase Processorbuiltin metrics for the Processor class

La clase de métricas Processor proporciona información sobre el uso del procesador en la máquina virtual.The Processor class of metrics provides information about processor usage in the VM. Al agregar porcentajes, el resultado es el promedio de todas las CPU.When aggregating percentages, the result is the average across all CPUs. En una máquina virtual de dos vCPU, si una de ellas estaba activa al 100 % y la otra, inactiva al 100 %, el valor de PercentIdleTime sería de 50.In a two-vCPU VM, if one vCPU was 100% busy and the other was 100% idle, the reported PercentIdleTime would be 50. Si la actividad de cada vCPU era del 50 % durante el mismo período, el resultado indicado también sería de 50.If each vCPU was 50% busy for the same period, the reported result would also be 50. En una máquina virtual de cuatro vCPU, si una de ellas estaba activa al 100 % y todas las demás, inactivas, el valor de PercentIdleTime sería de 75.In a four-vCPU VM, with one vCPU 100% busy and the others idle, the reported PercentIdleTime would be 75.

countercounter SignificadoMeaning
PercentIdleTimePercentIdleTime Porcentaje de tiempo del período de agregación durante el que los procesadores ejecutaban el bucle de inactividad del kernelPercentage of time during the aggregation window that processors were executing the kernel idle loop
PercentProcessorTimePercentProcessorTime Porcentaje de tiempo de ejecución de un subproceso no inactivoPercentage of time executing a non-idle thread
PercentIOWaitTimePercentIOWaitTime Porcentaje de tiempo de espera para la finalización de operaciones de E/SPercentage of time waiting for IO operations to complete
PercentInterruptTimePercentInterruptTime Porcentaje de tiempo de ejecución de interrupciones de hardware o software y DPC (llamadas a procedimiento aplazadas)Percentage of time executing hardware/software interrupts and DPCs (deferred procedure calls)
PercentUserTimePercentUserTime Del tiempo no inactivo durante el período de agregación, el porcentaje empleado en modo de usuario en prioridad normalOf non-idle time during the aggregation window, the percentage of time spent in user more at normal priority
PercentNiceTimePercentNiceTime Del tiempo no inactivo, el porcentaje empleado en prioridad disminuida (nice)Of non-idle time, the percentage spent at lowered (nice) priority
PercentPrivilegedTimePercentPrivilegedTime Del tiempo no inactivo, el porcentaje empleado en modo privilegiado (kernel)Of non-idle time, the percentage spent in privileged (kernel) mode

Los cuatro primeros contadores deberían sumar un 100 %.The first four counters should sum to 100%. Los tres últimos contadores también suman 100 %. Subdividen la suma de PercentProcessorTime, PercentIOWaitTime y PercentInterruptTime.The last three counters also sum to 100%; they subdivide the sum of PercentProcessorTime, PercentIOWaitTime, and PercentInterruptTime.

Para obtener un único agregado de métricas de todos los procesadores, establezca "condition": "IsAggregate=TRUE".To obtain a single metric aggregated across all processors, set "condition": "IsAggregate=TRUE". Para obtener una métrica para un procesador específico, como el segundo procesador lógico de una máquina virtual de cuatro vCPU, establezca "condition": "Name=\\"1\\"".To obtain a metric for a specific processor, such as the second logical processor of a four-vCPU VM, set "condition": "Name=\\"1\\"". Los números de procesador lógico se encuentran en el rango [0..n-1].Logical processor numbers are in the range [0..n-1].

Métricas builtin para la clase Memorybuiltin metrics for the Memory class

La clase de métricas Memory proporciona información sobre utilización, paginación e intercambio de memoria.The Memory class of metrics provides information about memory utilization, paging, and swapping.

countercounter SignificadoMeaning
AvailableMemoryAvailableMemory Memoria física disponible en MiBAvailable physical memory in MiB
PercentAvailableMemoryPercentAvailableMemory Memoria física disponible en forma de porcentaje del total de memoriaAvailable physical memory as a percent of total memory
UsedMemoryUsedMemory Memoria física en uso (MiB)In-use physical memory (MiB)
PercentUsedMemoryPercentUsedMemory Memoria física en uso en forma de porcentaje del total de memoriaIn-use physical memory as a percent of total memory
PagesPerSecPagesPerSec Paginación total (lectura y escritura)Total paging (read/write)
PagesReadPerSecPagesReadPerSec Páginas leídas desde la memoria auxiliar (archivo de intercambio, archivo de programa, archivo asignado, etc.)Pages read from backing store (swap file, program file, mapped file, etc.)
PagesWrittenPerSecPagesWrittenPerSec Páginas escritas en la memoria auxiliar (archivo de intercambio, archivo asignado, etc.)Pages written to backing store (swap file, mapped file, etc.)
AvailableSwapAvailableSwap Espacio de intercambio sin usar (MiB)Unused swap space (MiB)
PercentAvailableSwapPercentAvailableSwap Espacio de intercambio sin usar en forma de porcentaje del total de intercambioUnused swap space as a percentage of total swap
UsedSwapUsedSwap Espacio de intercambio (MiB) en usoIn-use swap space (MiB)
PercentUsedSwapPercentUsedSwap Espacio de intercambio en uso en forma de porcentaje del total de intercambioIn-use swap space as a percentage of total swap

Esta clase de métricas tiene una sola instancia.This class of metrics has only a single instance. El atributo "condition" no tiene valores de configuración útiles y debería omitirse.The "condition" attribute has no useful settings and should be omitted.

Métricas builtin para la clase Networkbuiltin metrics for the Network class

La clase de métricas Network proporciona información sobre la actividad de red de una interfaz de red concreta desde el arranque.The Network class of metrics provides information about network activity on an individual network interfaces since boot. LAD no expone las métricas de ancho de banda, las cuales pueden recuperarse a partir de métricas de host.LAD does not expose bandwidth metrics, which can be retrieved from host metrics.

countercounter SignificadoMeaning
BytesTransmittedBytesTransmitted Total de bytes enviados desde el arranqueTotal bytes sent since boot
BytesReceivedBytesReceived Total de bytes recibidos desde el arranqueTotal bytes received since boot
BytesTotalBytesTotal Total de bytes enviados o recibidos desde el arranqueTotal bytes sent or received since boot
PacketsTransmittedPacketsTransmitted Total de paquetes enviados desde el arranqueTotal packets sent since boot
PacketsReceivedPacketsReceived Total de paquetes recibidos desde el arranqueTotal packets received since boot
TotalRxErrorsTotalRxErrors Número de errores de recepción desde el arranqueNumber of receive errors since boot
TotalTxErrorsTotalTxErrors Número de errores de transmisión desde el arranqueNumber of transmit errors since boot
TotalCollisionsTotalCollisions Número de colisiones notificadas por los puertos de red desde el arranqueNumber of collisions reported by the network ports since boot

Aunque esta clase está instanciada, LAD no admite la captura de agregados de métricas Network de todos los dispositivos de red.Although this class is instanced, LAD does not support capturing Network metrics aggregated across all network devices. Para obtener las métricas de una interfaz instanciada, como eth0, establezca "condition": "InstanceID=\\"eth0\\"".To obtain the metrics for a specific interface, such as eth0, set "condition": "InstanceID=\\"eth0\\"".

Métricas builtin para la clase Filesystembuiltin metrics for the Filesystem class

La clase de métricas Filesystem proporciona información sobre el uso del sistema de archivos.The Filesystem class of metrics provides information about filesystem usage. Los valores absolutos y porcentuales se notifican como se hubieran mostrado a un usuario normal (no raíz).Absolute and percentage values are reported as they'd be displayed to an ordinary user (not root).

countercounter SignificadoMeaning
FreeSpaceFreeSpace Espacio disponible en disco en bytesAvailable disk space in bytes
UsedSpaceUsedSpace Espacio usado en disco en bytesUsed disk space in bytes
PercentFreeSpacePercentFreeSpace Porcentaje de espacio librePercentage free space
PercentUsedSpacePercentUsedSpace Porcentaje de espacio usadoPercentage used space
PercentFreeInodesPercentFreeInodes Porcentaje de inodes sin usarPercentage of unused inodes
PercentUsedInodesPercentUsedInodes Porcentaje de inodes asignados (en uso) sumado de todos los sistemas de archivosPercentage of allocated (in use) inodes summed across all filesystems
BytesReadPerSecondBytesReadPerSecond Bytes leídos por segundoBytes read per second
BytesWrittenPerSecondBytesWrittenPerSecond Bytes escritos por segundoBytes written per second
BytesPerSecondBytesPerSecond Bytes leídos o escritos por segundoBytes read or written per second
ReadsPerSecondReadsPerSecond Operaciones de lectura por segundoRead operations per second
WritesPerSecondWritesPerSecond Operaciones de escritura por segundoWrite operations per second
TransfersPerSecondTransfersPerSecond Operaciones de lectura o escritura por segundoRead or write operations per second

Los valores agregados de todos los archivos del sistema pueden obtenerse estableciendo "condition": "IsAggregate=True".Aggregated values across all file systems can be obtained by setting "condition": "IsAggregate=True". Los valores para un sistema de archivos montado específico, como "/mnt", pueden obtenerse estableciendo "condition": 'Name="/mnt"'.Values for a specific mounted file system, such as "/mnt", can be obtained by setting "condition": 'Name="/mnt"'.

NOTA: Si usa Azure Portal en lugar de JSON, el formato correcto para el campo de condición es Name="/mnt".NOTE: If using the Azure Portal instead of JSON, the correct condition field form is Name='/mnt'

Métricas builtin para la clase Diskbuiltin metrics for the Disk class

La clase de métricas Disk proporciona información sobre el uso de dispositivos de disco.The Disk class of metrics provides information about disk device usage. Estas estadísticas se aplican a toda la unidad.These statistics apply to the entire drive. Si hay varios sistemas de archivos en un dispositivo, los contadores para dicho dispositivo están, de hecho, agregados en todos ellos.If there are multiple file systems on a device, the counters for that device are, effectively, aggregated across all of them.

countercounter SignificadoMeaning
ReadsPerSecondReadsPerSecond Operaciones de lectura por segundoRead operations per second
WritesPerSecondWritesPerSecond Operaciones de escritura por segundoWrite operations per second
TransfersPerSecondTransfersPerSecond Total de operaciones por segundoTotal operations per second
AverageReadTimeAverageReadTime Promedio de segundos por operación de lecturaAverage seconds per read operation
AverageWriteTimeAverageWriteTime Promedio de segundos por operación de escrituraAverage seconds per write operation
AverageTransferTimeAverageTransferTime Promedio de segundos por operaciónAverage seconds per operation
AverageDiskQueueLengthAverageDiskQueueLength Promedio de operaciones de disco en colaAverage number of queued disk operations
ReadBytesPerSecondReadBytesPerSecond Número de bytes leídos por segundoNumber of bytes read per second
WriteBytesPerSecondWriteBytesPerSecond Número de bytes escritos por segundoNumber of bytes written per second
BytesPerSecondBytesPerSecond Número de bytes leídos o escritos por segundoNumber of bytes read or written per second

Los valores agregados de todos los discos pueden obtenerse estableciendo "condition": "IsAggregate=True".Aggregated values across all disks can be obtained by setting "condition": "IsAggregate=True". Para obtener información para un dispositivo en concreto (por ejemplo, /dev/sdf1), establezca "condition": "Name=\\"/dev/sdf1\\"".To get information for a specific device (for example, /dev/sdf1), set "condition": "Name=\\"/dev/sdf1\\"".

Instalación y configuración de LAD 3.0Installing and configuring LAD 3.0

Azure CLIAzure CLI

Si suponemos que la configuración protegida se encuentra en el archivo ProtectedSettings.json y que la información de configuración pública está en PublicSettings.json, ejecute este comando:Assuming your protected settings are in the file ProtectedSettings.json and your public configuration information is in PublicSettings.json, run this command:

az vm extension set --publisher Microsoft.Azure.Diagnostics --name LinuxDiagnostic --version 3.0 --resource-group <resource_group_name> --vm-name <vm_name> --protected-settings ProtectedSettings.json --settings PublicSettings.json

El comando supone que se está usando el modo de Administración de recursos de Azure de la CLI de Azure.The command assumes you are using the Azure Resource Management mode of the Azure CLI. Para configura LAD para máquinas virtuales con el modelo de implementación clásica (ASM), cambie al modo "asm" (azure config mode asm) y omita el nombre del grupo de recursos en el comando.To configure LAD for classic deployment model (ASM) VMs, switch to "asm" mode (azure config mode asm) and omit the resource group name in the command. Para obtener más información, consulte la documentación de la CLI multiplataforma.For more information, see the cross-platform CLI documentation.

PowerShellPowerShell

Si suponemos que la configuración protegida se encuentra en la variable $protectedSettings y que la información de configuración pública está en la variable $publicSettings, ejecute este comando:Assuming your protected settings are in the $protectedSettings variable and your public configuration information is in the $publicSettings variable, run this command:

Set-AzVMExtension -ResourceGroupName <resource_group_name> -VMName <vm_name> -Location <vm_location> -ExtensionType LinuxDiagnostic -Publisher Microsoft.Azure.Diagnostics -Name LinuxDiagnostic -SettingString $publicSettings -ProtectedSettingString $protectedSettings -TypeHandlerVersion 3.0

Una configuración de LAD 3.0 de ejemploAn example LAD 3.0 configuration

Conforme a las anteriores definiciones, a continuación hay un ejemplo de configuración de extensión de LAD 3.0 con una explicación.Based on the preceding definitions, here's a sample LAD 3.0 extension configuration with some explanation. Para aplicar este ejemplo a su caso, debería usar su propio nombre de cuenta de almacenamiento, token de SAS de cuenta y tokens de SAS de Event Hubs.To apply this sample to your case, you should use your own storage account name, account SAS token, and EventHubs SAS tokens.

Nota

Dependiendo de si usa la CLI de Azure o PowerShell para instalar LAD, el método para proporcionar la configuración pública y protegida será diferente.Depending on whether you use the Azure CLI or PowerShell to install LAD, the method for providing public and protected settings will differ. Si usa la CLI de Azure, guarde la siguiente configuración en ProtectedSettings.json y PublicSettings.json para usarla con el comando de ejemplo anterior.If using the Azure CLI, save the following settings to ProtectedSettings.json and PublicSettings.json to use with the sample command above. Si usa PowerShell, guarde la configuración en $protectedSettings y $publicSettings mediante la ejecución de $protectedSettings = '{ ... }'.If using PowerShell, save the settings to $protectedSettings and $publicSettings by running $protectedSettings = '{ ... }'.

Configuración protegidaProtected settings

Esta configuración protegida define:These protected settings configure:

  • Una cuenta de almacenamientoa storage account
  • Un token de SAS de cuenta que coincidaa matching account SAS token
  • Varios receptores (Json BLOB o Event Hubs con tokens SAS)several sinks (JsonBlob or EventHubs with SAS tokens)
{
  "storageAccountName": "yourdiagstgacct",
  "storageAccountSasToken": "sv=xxxx-xx-xx&ss=bt&srt=co&sp=wlacu&st=yyyy-yy-yyT21%3A22%3A00Z&se=zzzz-zz-zzT21%3A22%3A00Z&sig=fake_signature",
  "sinksConfig": {
    "sink": [
      {
        "name": "SyslogJsonBlob",
        "type": "JsonBlob"
      },
      {
        "name": "FilelogJsonBlob",
        "type": "JsonBlob"
      },
      {
        "name": "LinuxCpuJsonBlob",
        "type": "JsonBlob"
      },
      {
        "name": "MyJsonMetricsBlob",
        "type": "JsonBlob"
      },
      {
        "name": "LinuxCpuEventHub",
        "type": "EventHub",
        "sasURL": "https://youreventhubnamespace.servicebus.windows.net/youreventhubpublisher?sr=https%3a%2f%2fyoureventhubnamespace.servicebus.windows.net%2fyoureventhubpublisher%2f&sig=fake_signature&se=1808096361&skn=yourehpolicy"
      },
      {
        "name": "MyMetricEventHub",
        "type": "EventHub",
        "sasURL": "https://youreventhubnamespace.servicebus.windows.net/youreventhubpublisher?sr=https%3a%2f%2fyoureventhubnamespace.servicebus.windows.net%2fyoureventhubpublisher%2f&sig=yourehpolicy&skn=yourehpolicy"
      },
      {
        "name": "LoggingEventHub",
        "type": "EventHub",
        "sasURL": "https://youreventhubnamespace.servicebus.windows.net/youreventhubpublisher?sr=https%3a%2f%2fyoureventhubnamespace.servicebus.windows.net%2fyoureventhubpublisher%2f&sig=yourehpolicy&se=1808096361&skn=yourehpolicy"
      }
    ]
  }
}

Configuración públicaPublic Settings

Estos valores públicos hacen que LAD:These public settings cause LAD to:

  • Cargue métricas de porcentaje de tiempo de procesador y espacio usado en disco en la tabla WADMetrics*.Upload percent-processor-time and used-disk-space metrics to the WADMetrics* table
  • Cargue mensajes del recurso de syslog "user" y la gravedad "info" en la tabla LinuxSyslog*.Upload messages from syslog facility "user" and severity "info" to the LinuxSyslog* table
  • Cargue resultados sin formato de consultas OMI (PercentProcessorTime y PercentIdleTime) en la tabla llamada LinuxCPU.Upload raw OMI query results (PercentProcessorTime and PercentIdleTime) to the named LinuxCPU table
  • Cargue líneas anexadas en el archivo /var/log/myladtestlog en la tabla MyLadTestLog.Upload appended lines in file /var/log/myladtestlog to the MyLadTestLog table

En cualquier caso, también se cargan datos en:In each case, data is also uploaded to:

  • Azure Blob Storage (el nombre del contenedor es el definido en el receptor de JSON Blob)Azure Blob storage (container name is as defined in the JsonBlob sink)
  • El punto de conexión de Event Hubs (especificado en el receptor de Event Hubs)EventHubs endpoint (as specified in the EventHubs sink)
{
  "StorageAccount": "yourdiagstgacct",
  "ladCfg": {
    "sampleRateInSeconds": 15,
    "diagnosticMonitorConfiguration": {
      "performanceCounters": {
        "sinks": "MyMetricEventHub,MyJsonMetricsBlob",
        "performanceCounterConfiguration": [
          {
            "unit": "Percent",
            "type": "builtin",
            "counter": "PercentProcessorTime",
            "counterSpecifier": "/builtin/Processor/PercentProcessorTime",
            "annotation": [
              {
                "locale": "en-us",
                "displayName": "Aggregate CPU %utilization"
              }
            ],
            "condition": "IsAggregate=TRUE",
            "class": "Processor"
          },
          {
            "unit": "Bytes",
            "type": "builtin",
            "counter": "UsedSpace",
            "counterSpecifier": "/builtin/FileSystem/UsedSpace",
            "annotation": [
              {
                "locale": "en-us",
                "displayName": "Used disk space on /"
              }
            ],
            "condition": "Name=\"/\"",
            "class": "Filesystem"
          }
        ]
      },
      "metrics": {
        "metricAggregation": [
          {
            "scheduledTransferPeriod": "PT1H"
          },
          {
            "scheduledTransferPeriod": "PT1M"
          }
        ],
        "resourceId": "/subscriptions/your_azure_subscription_id/resourceGroups/your_resource_group_name/providers/Microsoft.Compute/virtualMachines/your_vm_name"
      },
      "eventVolume": "Large",
      "syslogEvents": {
        "sinks": "SyslogJsonBlob,LoggingEventHub",
        "syslogEventConfiguration": {
          "LOG_USER": "LOG_INFO"
        }
      }
    }
  },
  "perfCfg": [
    {
      "query": "SELECT PercentProcessorTime, PercentIdleTime FROM SCX_ProcessorStatisticalInformation WHERE Name='_TOTAL'",
      "table": "LinuxCpu",
      "frequency": 60,
      "sinks": "LinuxCpuJsonBlob,LinuxCpuEventHub"
    }
  ],
  "fileLogs": [
    {
      "file": "/var/log/myladtestlog",
      "table": "MyLadTestLog",
      "sinks": "FilelogJsonBlob,LoggingEventHub"
    }
  ]
}

El elemento resourceId de la configuración debe coincidir con el de la VM o el del conjunto de escalado de máquinas virtuales.The resourceId in the configuration must match that of the VM or the virtual machine scale set.

  • La característica de creación de gráficos y desencadenamiento de alertas de métricas de la plataforma de Azure conoce el elemento resourceId de la máquina virtual en la que se esté trabajando.Azure platform metrics charting and alerting knows the resourceId of the VM you're working on. Espera encontrar los datos de la máquina virtual mediante el elemento resourceId de la clave de búsqueda.It expects to find the data for your VM using the resourceId the lookup key.
  • Si usa el escalado automático de Azure, el elemento resourceId de la configuración del escalado automático debe coincidir con el usado por LAD.If you use Azure autoscale, the resourceId in the autoscale configuration must match the resourceId used by LAD.
  • El elemento resourceId se compila en los nombres de instancias de JSON Blob escritas por LAD.The resourceId is built into the names of JsonBlobs written by LAD.

Consulta de los datosView your data

Use Azure Portal para consultar datos de rendimiento o establecer alertas:Use the Azure portal to view performance data or set alerts:

Captura de pantalla muestra Azure Portal con la métrica Fecha de uso del espacio en disco seleccionada y el gráfico resultante.

Los datos de performanceCounters se almacenan en una tabla de Azure Storage.The performanceCounters data are always stored in an Azure Storage table. Las API de Azure Storage están disponibles para múltiples lenguajes y plataformas.Azure Storage APIs are available for many languages and platforms.

Los datos enviados a receptores de Json BLOB se almacenan en blobs de la cuenta de almacenamiento a los que se dio nombre en la Configuración protegida.Data sent to JsonBlob sinks is stored in blobs in the storage account named in the Protected settings. Puede consumir los datos de blob con cualquier API de Azure Blob Storage.You can consume the blob data using any Azure Blob Storage APIs.

Además, puede usar las siguientes herramientas de la interfaz de usuario para acceder a los datos de Azure Storage:In addition, you can use these UI tools to access the data in Azure Storage:

Esta instantánea de una sesión del Explorador de Microsoft Azure Storage muestra las tablas y los contenedores de Azure Storage generados a partir de una extensión de LAD 3.0 configurada correctamente en una máquina virtual de prueba.This snapshot of a Microsoft Azure Storage Explorer session shows the generated Azure Storage tables and containers from a correctly configured LAD 3.0 extension on a test VM. La imagen no coincide exactamente con la configuración de ejemplo de LAD 3.0.The image doesn't match exactly with the sample LAD 3.0 configuration.

imagen

Consulte los documentos de EventHubs pertinentes para obtener información sobre cómo consumir mensajes publicados en un punto de conexión de EventHubs.See the relevant EventHubs documentation to learn how to consume messages published to an EventHubs endpoint.

Pasos siguientesNext steps