Uso de la extensión Diagnostics de Linux 4.0 para supervisar métricas y registros
Precaución
En este artículo se hace referencia a CentOS, una distribución de Linux con un estado de finalización del servicio (EOL). Tenga en cuenta su uso y planifique en consecuencia. Para obtener más información, consulte la Guía de fin de vida de CentOS.
En este artículo se describen las versiones más recientes de la extensión Diagnostics de Linux (LAD).
Importante
Para obtener información sobre la versión 3.x, vea Uso de la extensión Diagnostics de Linux 3.0 para supervisar métricas y registros. Para obtener información acerca de la versión 2.3 y anteriores, consulte Supervisión de los datos de rendimiento y diagnóstico de una VM de Linux.
La extensión Diagnostics de Linux ayuda a supervisar el mantenimiento de máquinas virtuales Linux en Microsoft Azure. Ofrece la siguiente funcionalidad:
Origen de datos | Opciones de personalización | Destinos necesarios | Destinos opcionales |
---|---|---|---|
Métricas | Contador, agregación, frecuencia de muestreo, especificadores | Azure Table Storage | EventHub, Azure Blob Storage (formato JSON), Azure Monitor (nuevo en LAD 4.0) |
syslog | Instalación, nivel de gravedad | Azure Table Storage | EventHub, Azure Blob Storage (formato JSON) |
Archivos | Ruta de acceso del registro, tabla de destino | Azure Table Storage | EventHub, Azure Blob Storage (formato JSON) |
Esta extensión funciona con ambos modelos de implementación de Azure: Azure Resource Manager y clásico.
Requisitos previos
- Versión 2.2.0 o posterior del agente Linux de Azure. 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. Ejecute
/usr/sbin/waagent -version
para confirmar la versión instalada en la máquina virtual. Si la máquina virtual ejecuta una versión anterior del agente invitado, actualice el agente de Linux. - Azure CLI. Instale el entorno de la CLI de Azure en la máquina.
- El comando
wget
. Si aún no lo tiene, instálelo con el administrador de paquetes correspondiente. - Una suscripción a Azure y una cuenta de almacenamiento de uso general para almacenar los datos. Las cuentas de almacenamiento de uso general admiten el almacenamiento en tablas, que es necesario. No funcionará una cuenta de Blob Storage.
- Python 2.
Distribuciones de Linux compatibles
Consulte Sistemas operativos del agente admitidos.
Requisito de Python
La extensión Diagnostics de Linux requiere Python 2. Si la máquina virtual usa una distribución que no incluye Python 2, instálelo.
Nota
Actualmente tenemos previsto converger todas las versiones de las extensiones Diagnostics de Linux (LAD) con el nuevo agente de supervisión de Azure, que ya es compatible con Python 3. El LAD se programará para dejarse de usar, con anuncio y aprobación pendientes.
Para instalar Python 2, ejecute uno de los siguientes comandos de muestra:
- Red Hat, CentOS, Oracle:
yum install -y python2
- Ubuntu, Debian:
apt-get install -y python2
- SUSE:
zypper install -y python2
El archivo ejecutable python2
debe tener el valor python
como alias.
Ejecute el siguiente comando para quitar los alias existentes.
sudo update-alternatives --remove-all python
Para crear el alias, ejecute el siguiente comando.
sudo update-alternatives --install /usr/bin/python python /usr/bin/python2 1
Instalación de la extensión
Puede habilitar esta extensión para su VM y conjunto de escalado de máquinas virtuales mediante cmdlets de Azure PowerShell, scripts de la CLI de Azure, plantillas de Resource Manager (plantillas de ARM) o Azure Portal. Para obtener más información, consulte Características y extensiones de las máquinas virtuales para Linux.
Nota
Algunos componentes de la extensión de máquina virtual Diagnostics de Linux también se incluyen en la extensión de máquina virtual de Log Analytics. Se pueden producir conflictos si se crean instancias de las dos extensiones en la misma plantilla de ARM.
Para evitar los conflictos en tiempo de instalación, use la directiva dependsOn
para instalar las extensiones de manera secuencial. Las extensiones se pueden instalar en cualquier orden.
Use las instrucciones de instalación y una configuración de ejemplo descargable a fin de configurar LAD 4.0 para:
- Capture y almacene las mismas métricas que proporcionaban las versiones 2.3 y 3.x de LAD.
- Envíe métricas al receptor de Azure Monitor junto con el receptor habitual de Azure Storage. Esta funcionalidad es nueva en LAD 4.0.
- Capture un conjunto útil de métricas del sistema de archivos, como en LAD 3.0.
- Capture la recopilación predeterminada de syslog habilitada por LAD 2.3.
- Habilite la experiencia de Azure Portal para la creación de gráficos y desencadenamiento de alertas en métricas de VM.
La configuración descargable es solo un ejemplo. Modifíquela para satisfacer sus necesidades.
Instalación
Puede instalar y configurar LAD 4.0 en la CLI de Azure o en Azure PowerShell.
Si la configuración protegida se encuentra en el archivo ProtectedSettings.json y la información de configuración pública está en PublicSettings.json, ejecute este comando:
az vm extension set --publisher Microsoft.Azure.Diagnostics \
--name LinuxDiagnostic --version 4.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. Si quiere configurar LAD para las VM con el modelo de implementación clásica, cambie al modo de administración de servicios (azure config mode asm
) y omita el nombre del grupo de recursos en el comando.
Para obtener más información, consulte la documentación de la CLI multiplataforma.
Habilitación de la actualización automática
Para habilitar la actualización automática del agente, recomendamos que habilite la característica de actualización automática de extensiones:
az vm extension set --publisher Microsoft.Azure.Diagnostics --name LinuxDiagnostic \
--version 4.0 --resource-group <resource_group_name> --vm-name <vm_name> \
--protected-settings ProtectedSettings.json --settings PublicSettings.json \
--enable-auto-upgrade true
Instalación de ejemplo
En estos ejemplos, la configuración de ejemplo recopila un conjunto de datos estándar y los envía a un almacenamiento en tablas. La URL de la configuración de ejemplo y su contenido pueden modificarse.
Nota
Para los siguientes ejemplos, rellene los valores apropiados para las variables de la primera sección antes de ejecutar el código.
En la mayoría de los casos, debe descargar una copia del archivo JSON de configuración del portal y personalizarlo en función de sus necesidades. Emplee plantillas o la automatización para usar una versión personalizada del archivo de configuración, en lugar de descargarlo desde la URL cada vez.
Al habilitar el nuevo receptor de Azure Monitor, las VM deben tener habilitada la identidad asignada por el sistema para generar tokens de autenticación de las identidades administradas para recursos de Azure. Puede agregar esta configuración durante la creación de la VM o después. Para obtener instrucciones para Azure Portal, la CLI de Azure, PowerShell y Azure Resource Manager, consulte Configuración de identidades administradas.
Ejemplo de instalación: CLI de Azure
# Set your Azure VM diagnostic variables.
my_subscription_id=<your_azure_subscription_id>
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>
# Login to Azure before you do anything else.
az login
# Select the subscription that contains the storage account.
az account set --subscription $my_subscription_id
# Enable system-assigned identity on the existing VM.
az vm identity assign --resource-group $my_resource_group --name $my_linux_vm
# Download the sample public settings. You could instead 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 the storage account name and resource ID in the public settings.
my_vm_resource_id=$(az vm show --resource-group $my_resource_group \
--name $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'}"
# Finally, tell Azure to install and enable the extension.
az vm extension set --publisher Microsoft.Azure.Diagnostics --name LinuxDiagnostic \
--version 4.0 --resource-group $my_resource_group --vm-name $my_linux_vm \
--protected-settings "${my_lad_protected_settings}" --settings portal_public_settings.json
Ejemplo de instalación para conjuntos de escalado de máquinas virtuales: CLI de Azure
# Set your Azure virtual machine scale set diagnostic variables.
my_subscription_id=<your_azure_subscription_id>
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>
# Login to Azure before you do anything else.
az login
# Select the subscription that contains the storage account.
az account set --subscription $my_subscription_id
# Enable system-assigned identity on the existing virtual machine scale set.
az vmss identity assign --resource-group $my_resource_group --name $my_linux_vmss
# 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 virtual machine scale set resource ID. Replace the storage account name and resource ID in the public settings.
my_vmss_resource_id=$(az vmss show --resource-group $my_resource_group \
--name $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 4.0 --resource-group $my_resource_group --vmss-name $my_linux_vmss \
--protected-settings "${my_lad_protected_settings}" --settings portal_public_settings.json
Actualización de la configuración de la extensión
Después de cambiar la configuración pública o protegida, implemente el mismo comando para implementarlos en la máquina virtual. Si se cambia alguna configuración, las actualizaciones se envían a la extensión. LAD recarga la configuración y se reinicia automáticamente.
Migración desde versiones anteriores de la extensión
La versión más reciente de la extensión es 4.0, que se encuentra actualmente en versión preliminar pública. Todavía se admiten las versiones 3.x. Las versiones 2.x están en desuso desde el 31 de julio de 2018.
Importante
Para migrar de una versión 3.x a la versión más reciente de la extensión, desinstale la extensión anterior. A continuación, instale la versión 4, que incluye la configuración actualizada para la identidad asignada por el sistema y los receptores para enviar métricas al receptor de Azure Monitor.
Al instalar la nueva extensión, habilite las actualizaciones automáticas de versiones secundarias:
- En las VM con el modelo de implementación de Azure Resource Manager, incluya
"autoUpgradeMinorVersion": true
en la plantilla de implementación de VM. - En las VM con el modelo de implementación clásica, especifique la versión
4.*
si va a instalar la extensión mediante la CLI de Azure o PowerShell.
Puede usar la misma cuenta de almacenamiento que usó para LAD 3.x.
Configuración protegida
Este conjunto de información de configuración contiene información confidencial que debería protegerse del acceso público. Contiene, por ejemplo, credenciales de almacenamiento. Esta configuración se transmite a la extensión, donde se almacena de forma cifrada.
{
"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": { ... }
}
Nombre | Value |
---|---|
storageAccountName | Nombre de la cuenta de almacenamiento en la que la extensión escribe los datos. |
storageAccountEndPoint | (Opcional) Punto de conexión que identifica la nube en la que existe la cuenta de almacenamiento. Si esta configuración no está presente, LAD usa la nube pública de Azure https://core.windows.net de manera predeterminada. Para utilizar una cuenta de almacenamiento en Microsoft Azure Alemania, Azure Government o Microsoft Azure operado por 21Vianet, establezca este valor según sea necesario. |
storageAccountSasToken | Token de SAS de una cuenta para los servicios de blobs y tablas (ss='bt' ). Este token se aplica a contenedores y objetos (srt='co' ). Concede permisos de incorporación, creación, enumeración, actualización y escritura (sp='acluw' ). No incluya el signo de interrogación principal (?). |
mdsdHttpProxy | (Opcional) Información del proxy HTTP necesaria para que la extensión se conecte a la cuenta de almacenamiento y el punto de conexión especificados. |
sinksConfig | (Opcional) Información acerca de los destinos alternativos a los que pueden enviarse métricas y eventos. En las secciones siguientes se proporcionan detalles sobre cada receptor de datos que la extensión admite. |
Para obtener un token de SAS en una plantilla de ARM, use la función listAccountSas
. Para ver una plantilla de ejemplo, consulte un ejemplo de función de lista.
Es posible construir el token de la firma de acceso compartido necesario mediante Azure Portal:
- Seleccione la cuenta de almacenamiento de uso general en la que quiere que se escriba la extensión.
- En el menú de la izquierda, en Seguridad y redes, seleccione Firma de acceso compartido.
- Realice las selecciones tal como se describió anteriormente.
- Seleccione Generar la cadena de conexión y SAS.
Copie la firma de acceso compartido generada en el campo storageAccountSasToken
. Quite el signo de interrogación inicial (?).
sinksConfig
Nota
Tanto la configuración pública como la protegida tienen una sección sinksConfig
opcional. La sección sinksConfig
de la configuración protegida solo contiene configuraciones de receptor EventHub
y JsonBlob
, debido a la inclusión de secretos como sasURL
. Las configuraciones de receptor AzMonSink
no se pueden incluir en la configuración protegida.
"sinksConfig": {
"sink": [
{
"name": "sinkname",
"type": "sinktype",
...
},
...
]
},
La sección sinksConfig
opcional define más destinos a los que la extensión envía la información recopilada. La matriz "sink"
contiene un objeto para cada receptor de datos adicional. El atributo "type"
determina los demás atributos del objeto.
Elemento | Value |
---|---|
name | Una cadena usada para hacer referencia a este receptor en cualquier otra parte de la configuración de la extensión. |
type | Es el tipo de receptor que se va a definir. Determina los demás valores, si los hubiera, en instancias de este tipo. |
La extensión de diagnóstico de Linux 4.0 admite dos tipos de receptores protegidos: EventHub
y JsonBlob
.
Receptor de EventHub
"sink": [
{
"name": "sinkname",
"type": "EventHub",
"sasURL": "https SAS URL"
},
...
]
La entrada "sasURL"
contiene la URL completa, incluido el token de la firma de acceso compartido, para el centro de eventos en el que deberían publicarse los datos. LAD necesita una firma de acceso compartido para definir una directiva que habilite la notificación Send. Este es un ejemplo:
- Cree un espacio de nombres de Event Hubs llamado
contosohub
. - Cree un centro de eventos en el espacio de nombres llamado
syslogmsgs
. - Cree una directiva de acceso compartido en el centro de eventos llamada
writer
que habilite la notificación send.
Si crea una SAS que estará vigente hasta la medianoche UTC del 1 de enero de 2018, el valor de sasURL
podría tener un aspecto similar al del siguiente ejemplo.
https://contosohub.servicebus.windows.net/syslogmsgs?sr=contosohub.servicebus.windows.net%2fsyslogmsgs&sig=xxxxxxxxxxxxxxxxxxxxxxxxx&se=1514764800&skn=writer
Para obtener más información acerca de la generación y recuperación de información sobre tokens de SAS para Event Hubs, consulte Generación de un token de SAS.
Receptor de JsonBlob
"sink": [
{
"name": "sinkname",
"type": "JsonBlob"
},
...
]
Los datos dirigidos a un receptor de JsonBlob
se almacenan en blobs en Azure Storage. Cada instancia de LAD crea un blob cada hora para cada nombre de receptor. Todos los blobs siempre contienen una matriz de objetos JSON sintácticamente válida. Se agregan nuevas entradas a la matriz automáticamente.
Los blobs se almacenan en un contenedor que tiene el mismo nombre que el receptor. Las reglas de Azure Storage para los nombres de contenedores de blobs se aplican a los nombres de los receptores de JsonBlob
. Los nombres deben tener entre 3 y 63 caracteres ASCII alfanuméricos en minúsculas o con guiones.
Configuración pública
La estructura de la configuración pública contiene varios bloques de valores de configuración que controlan la información que la extensión recopila. Cada configuración, excepto ladCfg
, es opcional. Si especifica la recopilación de métricas o Syslog en ladCfg
, también debe especificar StorageAccount
. Debe especificar el elemento sinksConfig
para habilitar el receptor de Azure Monitor para las métricas de LAD 4.0.
{
"ladCfg": { ... },
"fileLogs": { ... },
"StorageAccount": "the storage account to receive data",
"sinksConfig": { ... },
"mdsdHttpProxy" : ""
}
Elemento | Value |
---|---|
StorageAccount | Nombre de la cuenta de almacenamiento en la que la extensión escribe los datos. Debe ser el nombre que se especificó en la configuración protegida. |
mdsdHttpProxy | (Opcional) Proxy especificado en la configuración protegida. Si se establece el valor privado, invalida el valor público. Coloque valores de configuración de proxy que contengan un secreto, como una contraseña, en la configuración protegida. |
En las secciones siguientes se proporcionan detalles acerca de los elementos restantes.
ladCfg
"ladCfg": {
"diagnosticMonitorConfiguration": {
"eventVolume": "Medium",
"metrics": { ... },
"performanceCounters": { ... },
"syslogEvents": { ... }
},
"sampleRateInSeconds": 15
}
La estructura ladCfg
controla la recopilación de métricas y registros para enviarlos al servicio de Métricas de Azure Monitor y otros receptores de datos. Especifique performanceCounters
o syslogEvents
, o ambos. También especifique la estructura metrics
.
Si no quiere habilitar syslog o la recopilación de métricas, especifique una estructura vacía para el elemento ladCfg
:
"ladCfg": {
"diagnosticMonitorConfiguration": {}
}
Elemento | Value |
---|---|
eventVolume | (Opcional) Controla el número de particiones creadas en la tabla de almacenamiento. El valor debe ser "Large" , "Medium" o "Small" . El valor predeterminado es "Medium" . |
sampleRateInSeconds | (Opcional) Intervalo predeterminado entre la recopilación de métricas sin procesar, es decir, sin agregar. La frecuencia de muestreo más pequeña admitida es de 15 segundos. El valor predeterminado es 15 . |
Métricas
"metrics": {
"resourceId": "/subscriptions/...",
"metricAggregation" : [
{ "scheduledTransferPeriod" : "PT1H" },
{ "scheduledTransferPeriod" : "PT5M" }
]
}
Elemento | Value |
---|---|
resourceId | 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. Especifique también este valor si la configuración usa cualquier receptor de JsonBlob . |
scheduledTransferPeriod | Frecuencia con la que se computan las métricas agregadas y se transfieren a las Métricas de Azure Monitor. La frecuencia se expresa como un intervalo de tiempo ISO 8601. El período de transferencia mínimo es de 60 segundos, es decir, PT1M. Especifique al menos un 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 manera explícita. Si aparecen varias frecuencias de scheduledTransferPeriod
, como en el ejemplo, cada agregación se procesa de manera independiente.
performanceCounters
"performanceCounters": {
"sinks": "",
"performanceCounterConfiguration": [
{
"type": "builtin",
"class": "Processor",
"counter": "PercentIdleTime",
"counterSpecifier": "/builtin/Processor/PercentIdleTime",
"condition": "IsAggregate=TRUE",
"sampleRate": "PT15S",
"unit": "Percent",
"annotation": [
{
"displayName" : "cpu idle time",
"locale" : "en-us"
}
]
}
]
}
La sección performanceCounters
opcional controla la recopilación de métricas. Se agregan muestras sin procesar para cada elemento scheduledTransferPeriod a fin de generar estos valores:
- Media
- Mínima
- Máxima
- Último valor recopilado
- Número de muestras sin procesar que se usan para procesar el agregado
Elemento | Value |
---|---|
sinks | (Opcional) Lista separada por comas de nombres de receptores a los que LAD envía los resultados de las métricas agregadas. Todas las métricas agregadas se publican en cada receptor indicado. Por ejemplo, "MyEventHubSink, MyJsonSink, MyAzMonSink" . Para obtener más información, vea sinksConfig (configuración protegida) y sinksConfig (configuración pública). |
type | Identifica el proveedor real de la métrica. |
class | Junto con "counter" , identifica la métrica específica en el espacio de nombres del proveedor. |
counter | Junto con "class" , identifica la métrica específica en el espacio de nombres del proveedor. Vea una lista de los contadores disponibles. |
counterSpecifier | Identifica la métrica en el espacio de nombres de Métricas de Azure Monitor. |
condición | (Opcional) Selecciona una instancia del objeto al que corresponde la métrica. O bien, selecciona la agregación en todas las instancias de ese objeto. |
sampleRate | Intervalo de ISO 8601 que establece la frecuencia de recopilación de muestras sin procesar de esta métrica. Si el valor no está establecido, el valor de sampleRateInSeconds establece el intervalo de recopilación. La frecuencia de muestreo más corta admitida es de 15 segundos (PT15S). |
unit | Define la unidad para la métrica. Debería ser una de estas cadenas: "Count" , "Bytes" , "Seconds" , "Percent" , "CountPerSecond" , "BytesPerSecond" o "Millisecond" . Los consumidores de los datos recopilados esperan que los valores de los datos recopilados coincidan con esta unidad. LAD omite este campo. |
DisplayName | Etiqueta que se va a adjuntar a los datos de métricas de Azure Monitor cuando se visualizan en el espacio de nombres de métricas Guest (classic) . Esta etiqueta se establece en el idioma que se ha especificado mediante la configuración regional asociada. LAD omite este campo. Nota: Si ve la misma métrica en el espacio de nombres de métricas azure.vm.linux.guestmetrics , que está disponible si AzMonSink está configurado, el nombre para mostrar depende completamente del contador. Para buscar la asignación entre contadores y nombres, consulte Métricas compatibles con el proveedor integrado. |
El elemento counterSpecifier
es un identificador arbitrario. Los consumidores de métricas, como la característica de creación de gráficos y desencadenamiento de alertas de Azure Portal, usan counterSpecifier
como la clave para identificar una métrica o instancia de una métrica.
Para las métricas builtin
, se recomienda usar valores counterSpecifier
que empiecen por /builtin/
. Para recopilar una instancia específica de una métrica, adjunte el identificador de la instancia al valor de counterSpecifier
. Estos son algunos ejemplos:
/builtin/Processor/PercentIdleTime
. Tiempo de inactividad promediado en todas las vCPU/builtin/Disk/FreeSpace(/mnt)
. Espacio disponible para el sistema de archivos/mnt
/builtin/Disk/FreeSpace
. Espacio libre del cual se ha realizado el promedio entre todos los sistemas de archivos montados
Ni LAD ni Azure Portal esperan que el valor de counterSpecifier
coincida con ningún patrón. Por lo tato, debe ser coherente con la forma en que se construyen los valores counterSpecifier
.
Si especifica performanceCounters
, LAD siempre escribe datos en una tabla en Azure Storage. Los mismos datos se pueden escribir en blobs de JSON o instancias de Event Hubs, o ambos. No puede deshabilitar el almacenamiento de datos en una tabla.
Todas las instancias de LAD que usan el mismo nombre de cuenta de almacenamiento y el mismo punto de conexión agregan sus métricas y registros a la misma tabla. Si demasiadas VM escriben en la misma partición de tabla, Azure puede limitar las escrituras a dicha partición.
El valor eventVolume
hace que las entradas se repartan entre 1 (small), 10 (medium) o 100 (large) particiones. Normalmente, las particiones medianas son suficientes para evitar los límites de tráfico.
La característica Métricas de Azure Monitor de Azure Portal usa los datos de esta tabla para crear gráficos o desencadenar alertas. El nombre de tabla es la concatenación de las siguientes cadenas:
WADMetrics
"scheduledTransferPeriod"
para los valores agregados almacenados en la tablaP10DV2S
- Una fecha en formato AAAAMMDD, que cambia cada 10 días.
Algunos ejemplos son WADMetricsPT1HP10DV2S20170410
y WADMetricsPT1MP10DV2S20170609
.
syslogEvents
"syslogEvents": {
"sinks": "",
"syslogEventConfiguration": {
"facilityName1": "minSeverity",
"facilityName2": "minSeverity",
...
}
}
La sección syslogEvents
opcional controla la recopilación de eventos de registro de syslog. Si se omite la sección, no se captura ningún evento de syslog.
La recopilación de syslogEventConfiguration
tiene una entrada para cada recurso de syslog de interés. 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.
Elemento | Value |
---|---|
sinks | Es una lista separada por comas de nombres de receptores en los que se publican los eventos de registros individuales. Todos los eventos de registro que coincidan con las restricciones de syslogEventConfiguration se publican en cada receptor indicado. Ejemplo: "EHforsyslog" |
facilityName | Nombre de instalación de syslog, como "LOG_USER" o "LOG_LOCAL0" . Para obtener más información, consulte Valores de instalación en la página del manual de syslog. |
minSeverity | Nivel de gravedad de syslog (como "LOG_ERR" o "LOG_INFO" ). Para obtener más información, consulte Valores de nivel en la página del manual de syslog. La extensión captura eventos enviados al recurso al nivel especificado o uno superior. |
Al especificar syslogEvents
, LAD siempre escribe datos en una tabla denominada LinuxSyslogVer2v0 en Azure Storage. Los mismos datos se pueden escribir en blobs de JSON o instancias de Event Hubs, o ambos. No puede deshabilitar el almacenamiento de datos en una tabla.
sinksConfig
En la sección sinksConfig
pública opcional se habilita el envío de métricas al receptor de Azure Monitor, además de la cuenta de almacenamiento y la vista Métricas de invitado predeterminada.
Nota
Tanto la configuración pública como la protegida tienen una sección sinksConfig
opcional. La sección sinksConfig
de la configuración pública solo contiene la configuración del receptor AzMonSink
. Las configuraciones de receptor EventHub
y JsonBlob
no se pueden incluir en la configuración pública.
Nota
La sección sinksConfig
requiere que la identidad asignada por el sistema esté habilitada en las VM o en el conjunto de escalado de máquinas virtuales.
Puede habilitar la identidad asignada por el sistema mediante Azure Portal, la CLI, PowerShell o Azure Resource Manager. Siga las instrucciones detalladas o consulte los ejemplos de instalaciones anteriores de este artículo.
"sinksConfig": {
"sink": [
{
"name": "AzMonSink",
"type": "AzMonSink",
"AzureMonitor": {}
}
]
},
fileLogs
La sección fileLogs
controla la captura de los archivos de registro. LAD captura las líneas de texto nuevas a medida que se escriben en el archivo. Y, después, las escribe en filas de la tabla y en cualquier receptor especificado, como JsonBlob
y EventHub
.
Nota
Los elementos fileLogs
se capturan mediante un subcomponente de LAD denominado omsagent
. Para recopilar fileLogs
, asegúrese de que el usuario omsagent
tiene permisos de lectura en los archivos que haya especificado. También debe tener permisos de ejecución en todos los directorios de la ruta de acceso a ese archivo. Después de instalar LAD, para comprobar los permisos, ejecute sudo su omsagent -c 'cat /path/to/file'
.
"fileLogs": [
{
"file": "/var/log/mydaemonlog",
"table": "MyDaemonEvents",
"sinks": ""
}
]
Elemento | Value |
---|---|
archivo | Es la ruta de acceso completa del archivo de registro que va a inspeccionarse y capturarse. La ruta de acceso no puede especificar un directorio ni contener caracteres comodín. La cuenta de usuario omsagent debe tener acceso de lectura a la ruta de acceso del archivo. |
table | (Opcional) Tabla de Azure Storage en la que se escriben nuevas líneas de la cola del archivo. La tabla debe estar en la cuenta de almacenamiento designada, tal como se especificó en la configuración protegida. |
sinks | (Opcional) Lista separada por combas de nombres de receptores adicionales a los que se envían líneas de registro. |
Debe especificarse "table"
o "sinks"
, o ambos.
Métricas admitidas por el proveedor de builtin
Las métricas predeterminadas que admite LAD se agregan en todos los sistemas de archivos, discos o nombres. En el caso de las métricas no agregadas, consulte la compatibilidad con las métricas del receptor de Azure Monitor más reciente.
Nota
Los nombres para mostrar de cada métrica varían en función del espacio de nombres de métricas al que pertenece:
Guest (classic)
rellenado desde la cuenta de almacenamiento: eldisplayName
especificado en la secciónperformanceCounters
o el nombre para mostrar predeterminado, tal como se muestra en Azure Portal. Para la máquina virtual, en Supervisión>Configuración de diagnóstico, seleccione la pestaña Métricas.azure.vm.linux.guestmetrics
se rellena a partir deAzMonSink
, si está configurado: el "Nombre para mostrarazure.vm.linux.guestmetrics
" especificado en las tablas siguientes.
Los valores de métrica entre las versiones Guest (classic)
y azure.vm.linux.guestmetrics
difieren. Aunque las métricas clásicas tenían determinadas agregaciones aplicadas en el agente, las nuevas métricas son contadores no agregados, lo que proporciona a los clientes la flexibilidad de agregar según lo deseado en el momento de la visualización y la alerta.
El proveedor de métricas builtin
es una fuente de las métricas más interesantes para una gran cantidad de usuarios. Estas métricas se dividen en cinco clases amplias:
- Procesador
- Memoria
- Red
- Sistema de archivos
- Disco
Métricas builtin para la clase Processor
La clase de métricas Processor proporciona información sobre el uso del procesador en la máquina virtual. Cuando se agregan porcentajes, el resultado es el promedio de todas las CPU.
En una VM con dos vCPU, si una está ocupada al 100 % y la otra está inactiva al 100 %, el valor de PercentIdleTime
notificado es 50. Si la actividad de cada vCPU es del 50 % durante el mismo período, el resultado indicado también es de 50. En una VM de cuatro vCPU, cuando una está ocupada al 100 % y las otras están inactivas, el valor de PercentIdleTime
notificado es 75.
Contador | Nombre para mostrar azure.vm.linux.guestmetrics | Significado |
---|---|---|
PercentIdleTime | cpu idle time |
Porcentaje de tiempo del período de agregación durante el que los procesadores ejecutaron el bucle de inactividad del kernel. |
PercentProcessorTime | cpu percentage guest os |
Porcentaje de tiempo durante el que se ejecutó un subproceso no inactivo. |
PercentIOWaitTime | cpu io wait time |
Porcentaje de tiempo durante el que se esperó la finalización de operaciones de E/S. |
PercentInterruptTime | cpu interrupt time |
Porcentaje de tiempo durante el que se ejecutaron interrupciones de hardware o software y llamadas a procedimiento aplazadas (DPC). |
PercentUserTime | cpu user time |
Del tiempo no inactivo durante el período de agregación, el porcentaje que se empleó en el modo de usuario en prioridad normal. |
PercentNiceTime | cpu nice time |
Del tiempo no inactivo, el porcentaje empleado en prioridad disminuida (nice) |
PercentPrivilegedTime | cpu privileged time |
Del tiempo no inactivo, el porcentaje empleado en modo privilegiado (kernel) |
Los cuatro primeros contadores deberían sumar un 100 %. Los tres últimos contadores también suman un 100 %. Estos tres contadores subdividen la suma de PercentProcessorTime
, PercentIOWaitTime
y PercentInterruptTime
.
Métricas builtin para la clase Memory
La clase de métricas Memory proporciona información sobre el uso, paginación e intercambio de memoria.
Contador | Nombre para mostrar azure.vm.linux.guestmetrics | Significado |
---|---|---|
AvailableMemory | memory available |
Memoria física disponible en MiB |
PercentAvailableMemory | mem. percent available |
Memoria física disponible en forma de porcentaje del total de memoria. |
UsedMemory | memory used |
Memoria física en uso (MiB) |
PercentUsedMemory | memory percentage |
Memoria física en uso en forma de porcentaje del total de memoria. |
PagesPerSec | pages |
Paginación total (lectura y escritura) |
PagesReadPerSec | page reads |
Páginas leídas del almacén de respaldo, como el archivo de intercambio, el archivo de programa y el archivo asignado. |
PagesWrittenPerSec | page writes |
Páginas escritas en el almacén de respaldo, como el archivo de intercambio y el archivo asignado. |
AvailableSwap | swap available |
Espacio de intercambio sin usar (MiB) |
PercentAvailableSwap | swap percent available |
Espacio de intercambio sin usar en forma de porcentaje del total de intercambio. |
UsedSwap | swap used |
Espacio de intercambio (MiB) en uso |
PercentUsedSwap | swap percent used |
Espacio de intercambio en uso en forma de porcentaje del total de intercambio. |
Esta clase de métrica tiene solo una instancia. El atributo "condition"
no tiene valores de configuración útiles y debería omitirse.
Métricas builtin para la clase Network
La clase de métricas Network proporciona información sobre la actividad de red de una interfaz de red individual desde el inicio.
LAD no expone métricas de ancho de banda. Estas se pueden obtener a partir de las métricas de host.
Contador | Nombre para mostrar azure.vm.linux.guestmetrics | Significado |
---|---|---|
BytesTransmitted | network out guest os |
Total de bytes enviados desde el inicio. |
BytesReceived | network in guest os |
Total de bytes recibidos desde el inicio. |
BytesTotal | network total bytes |
Total de bytes enviados o recibidos desde el inicio.estrella. |
PacketsTransmitted | packets sent |
Total de paquetes enviados desde el inicio. |
PacketsReceived | packets received |
Total de paquetes recibidos desde el inicio. |
TotalRxErrors | packets received errors |
Número de errores de recepción desde el inicio. |
TotalTxErrors | packets sent errors |
Número de errores de transmisión desde el inicio. |
TotalCollisions | network collisions |
Número de colisiones notificadas por los puertos de red desde el inicio |
Métricas builtin para la clase File system
La clase de métricas del sistema de archivos proporciona información acerca del uso del sistema de archivos. Los valores absolutos y porcentuales se notifican tal como se mostrarían a un usuario normal, no raíz.
Contador | Nombre para mostrar azure.vm.linux.guestmetrics | Significado |
---|---|---|
FreeSpace | filesystem free space |
Espacio disponible en disco en bytes |
UsedSpace | filesystem used space |
Espacio usado en disco en bytes |
PercentFreeSpace | filesystem % free space |
Porcentaje de espacio libre |
PercentUsedSpace | filesystem % used space |
Porcentaje de espacio usado |
PercentFreeInodes | filesystem % free inodes |
Porcentaje de nodos de índice sin usar (inodes). |
PercentUsedInodes | filesystem % used inodes |
Porcentaje de inodes asignados (en uso) sumado de todos los sistemas de archivos. |
BytesReadPerSecond | filesystem read bytes/sec |
Bytes leídos por segundo |
BytesWrittenPerSecond | filesystem write bytes/sec |
Bytes escritos por segundo |
BytesPerSecond | filesystem bytes/sec |
Bytes leídos o escritos por segundo |
ReadsPerSecond | filesystem reads/sec |
Operaciones de lectura por segundo |
WritesPerSecond | filesystem writes/sec |
Operaciones de escritura por segundo |
TransfersPerSecond | filesystem transfers/sec |
Operaciones de lectura o escritura por segundo |
Métricas builtin para la clase Disk
La clase de métricas Disk proporciona información sobre el uso de dispositivos de disco. Estas estadísticas se aplican a toda la unidad.
Cuando un dispositivo tiene varios sistemas de archivos, los contadores para dicho dispositivo se agregan, de hecho, en todos los sistemas de archivos.
Contador | Nombre para mostrar azure.vm.linux.guestmetrics | Significado |
---|---|---|
ReadsPerSecond | disk reads |
Operaciones de lectura por segundo |
WritesPerSecond | disk writes |
Operaciones de escritura por segundo |
TransfersPerSecond | disk transfers |
Total de operaciones por segundo |
AverageReadTime | disk read time |
Promedio de segundos por operación de lectura |
AverageWriteTime | disk write time |
Promedio de segundos por operación de escritura |
AverageTransferTime | disk transfer time |
Promedio de segundos por operación |
AverageDiskQueueLength | disk queue length |
Promedio de operaciones de disco en cola |
ReadBytesPerSecond | disk read guest os |
Número de bytes leídos por segundo |
WriteBytesPerSecond | disk write guest os |
Número de bytes escritos por segundo |
BytesPerSecond | disk total bytes |
Número de bytes leídos o escritos por segundo |
Configuración de LAD 4.0 de ejemplo
Conforme a las definiciones anteriores, esta sección incluye un ejemplo de configuración de la extensión LAD 4.0 y una explicación. Para aplicar este ejemplo, use su propio nombre de cuenta de almacenamiento, token de firma de acceso compartido de cuenta y tokens de SAS de Event Hubs.
Nota:
Dependiendo de si usa la CLI de Azure o Azure PowerShell para instalar LAD, el método para proporcionar la configuración pública y protegida es diferente:
- Si está usando la CLI de Azure, guarde la siguiente configuración en ProtectedSettings.json y PublicSettings.json para usarla con el comando de ejemplo anterior.
- Si está usando PowerShell, ejecute
$protectedSettings = '{ ... }'
y$publicSettings = '{ ... }'
para guardar la siguiente configuración en$protectedSettings
y$publicSettings
.
Configuración protegida
La configuración protegida define:
- Una cuenta de almacenamiento.
- Un token de firma de acceso compartido de la cuenta coincidente.
- Varios receptores:
JsonBlob
oEventHub
con tokens de SAS.
{
"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ública
Los valores públicos hacen que LAD:
- Cargue métricas de porcentaje de tiempo de procesador y espacio usado en disco en la tabla
WADMetrics*
. - Cargue mensajes de la instalación de syslog
"user"
y la gravedad"info"
en la tablaLinuxSyslog*
. - Cargue líneas anexadas en el archivo
/var/log/myladtestlog
en la tablaMyLadTestLog
.
En cualquier caso, también se cargan datos en:
- Azure Blob Storage. El nombre del contenedor es el que se definió en el receptor de
JsonBlob
. - Un punto de conexión de Event Hubs, tal y como se especificó en el receptor de
EventHub
.
{
"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": "cpu percentage guest os"
}
],
"condition": "IsAggregate=TRUE",
"class": "Processor"
},
{
"unit": "Bytes",
"type": "builtin",
"counter": "UsedSpace",
"counterSpecifier": "/builtin/FileSystem/UsedSpace",
"annotation": [
{
"locale": "en-us",
"displayName": "Used disfilesystem used space"
}
],
"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"
}
}
}
},
"sinksConfig": {
"sink": [
{
"name": "AzMonSink",
"type": "AzMonSink",
"AzureMonitor": {}
}
]
},
"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.
- 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 VM en la que se esté trabajando. Espera encontrar los datos de la VM mediante el elementoresourceId
como clave de búsqueda. - Si usa la escalabilidad automática de Azure, el elemento
resourceId
de la configuración de escalabilidad automática debe coincidir con elresourceId
que usa LAD. - El elemento
resourceId
está integrado en los nombres de los blobs JSON que ha escrito LAD.
Consulta de los datos
Use Azure Portal para consultar datos de rendimiento o establecer alertas:
Los datos de performanceCounters
siempre se almacenan en una tabla de Azure Storage. Las API de Azure Storage están disponibles para múltiples lenguajes y plataformas.
Los datos enviados a receptores de JsonBlob
se almacenan en blobs de la cuenta de almacenamiento a los que se dio nombre en la configuración protegida. Puede consumir los datos de blob con cualquiera de las API de Azure Blob Storage.
También puede usar las siguientes herramientas de la interfaz de usuario para acceder a los datos de Azure Storage:
- Explorador de servidores de Visual Studio
- Explorador de Azure Storage
La siguiente captura de pantalla de una sesión del Explorador de Azure Storage muestra las tablas y los contenedores de Azure Storage generados a partir de una extensión de LAD 4.0 configurada correctamente en una máquina virtual de prueba. La imagen no coincide exactamente con la configuración de ejemplo de LAD 4.0.
Para obtener más información acerca de cómo consumir mensajes publicados en un punto de conexión de Event Hubs, consulte la documentación de Event Hubs pertinente.
Pasos siguientes
- En Azure Monitor, cree alertas para las métricas que recopile.
- Cree gráficos de supervisión para las métricas.
- Cree un conjunto de escalado de máquinas virtuales con sus propias métricas para controlar la escalabilidad automática.