Entrainement
Module
Gérer l’intégrité du système sur Azure Stack Hub - Training
Gérer l’intégrité du système sur Azure Stack Hub
Ce navigateur n’est plus pris en charge.
Effectuez une mise à niveau vers Microsoft Edge pour tirer parti des dernières fonctionnalités, des mises à jour de sécurité et du support technique.
Attention
Cet article fait référence à CentOS, une distribution Linux ayant atteint l’état EOL (fin du service). Faites le point sur votre utilisation et organisez-vous en conséquence. Pour plus d’informations, consultez les conseils d’aide relatifs à la fin de vie de CentOS.
Cet article décrit les dernières versions de l’extension de diagnostic Linux (LAD).
Important
Pour plus d’informations sur la version 3.x, consultez Utiliser l’extension de diagnostic Linux 3.0 pour superviser les métriques et les journaux. Pour plus d’informations sur la version 2.3 et sur les versions antérieures, consultez Superviser les données de performances et de diagnostic d’une machine virtuelle Linux.
L’extension de diagnostic Linux vous aide à superviser l’intégrité d’une machine virtuelle Linux sur Microsoft Azure. Elle présente les fonctionnalités suivantes :
Source de données | Options de personnalisation | Destinations obligatoires | Destinations facultatives |
---|---|---|---|
Mesures | Compteur, Agrégation, Échantillonnage, Spécificateurs | Stockage de table Azure | EventHub, Stockage Blob Azure (format JSON), Azure Monitor (nouveau dans LAD 4.0) |
syslog | Fonction, niveau de gravité | Stockage de table Azure | EventHub, Stockage Blob Azure (format JSON) |
Fichiers | Chemin d’accès du journal, Table de destination | Stockage de table Azure | EventHub, Stockage Blob Azure (format JSON) |
Cette extension fonctionne avec les deux modèles de déploiement Azure : Azure Resource Manager et classique.
/usr/sbin/waagent -version
pour vérifier la version installée sur la machine virtuelle. Si la machine virtuelle exécute une version antérieure de l’agent invité, mettez à jour l’agent Linux.wget
. Si vous ne l’avez pas déjà, installez-le avec le gestionnaire de package correspondant.Consultez Systèmes d’exploitation de l’agent pris en charge.
L’extension de diagnostic Linux nécessite Python 2. Si votre machine virtuelle utilise une distribution qui n’inclut pas Python 2, installez-le.
Notes
Nous prévoyons actuellement de faire converger toutes les versions des extensions de diagnostic Linux (LAD) avec le nouvel agent de surveillance Azure, qui prend déjà en charge Python 3. Les LAD seront planifiés pour la dépréciation en attendant une annonce et une approbation.
Pour installer Python 2, exécutez l’un des exemples de commandes suivants :
yum install -y python2
apt-get install -y python2
zypper install -y python2
Le fichier exécutable python2
doit avoir comme alias python
.
Exécutez la commande suivante pour supprimer tous les alias existants.
sudo update-alternatives --remove-all python
Pour créer l’alias, exécutez la commande suivante.
sudo update-alternatives --install /usr/bin/python python /usr/bin/python2 1
Vous pouvez activer cette extension pour votre machine virtuelle et votre groupe de machines virtuelles identiques en utilisant les cmdlets Azure PowerShell, des scripts Azure CLI, des modèles Azure Resource Manager (modèles ARM) ou le Portail Azure. Pour plus d’informations, consultez Extensions et fonctionnalités de machine virtuelle pour Linux.
Notes
Certains composants de l’extension de machine virtuelle de diagnostic Linux sont également fournis avec l’extension de machine virtuelle Log Analytics. Des conflits peuvent survenir si les deux extensions sont instanciées dans le même modèle Resource Manager.
Pour éviter ces conflits au moment de l’installation, utilisez la directive dependsOn
pour installer les extensions de façon séquentielle. Les extensions peuvent être installées dans n’importe quel ordre.
Utilisez ces instructions d’installation et un exemple de configuration téléchargeable pour configurer l’extension de diagnostic Linux 4.0 pour :
La configuration téléchargeable n’est qu’un exemple. Modifiez-la pour l’adapter à vos besoins.
Vous pouvez installer et configurer l’extension de diagnostic Linux (LAD) 4.0 dans Azure CLI ou dans Azure PowerShell.
Si vos paramètres protégés sont dans le fichier ProtectedSettings.json et que vos informations de configuration publique sont dans PublicSettings.json, exécutez cette commande :
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
La commande suppose que vous utilisez le mode Azure Resource Manager d’Azure CLI. Pour configurer l’extension de diagnostic Linux pour des machines virtuelles du modèle de déploiement classique, passez au mode Management des services (azure config mode asm
) et omettez le nom du groupe de ressources dans la commande.
Pour plus d’informations, consultez la documentation relative à l’interface de ligne de commande multiplateforme.
Pour activer la mise à jour automatique de l’agent, nous vous recommandons d’activer la fonctionnalité Mise à niveau automatique des extensions :
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
Dans ces exemples, l’exemple de configuration collecte un ensemble de données standard et les envoie au Stockage Table. L’URL de l’exemple de configuration et son contenu peut changer.
Notes
Pour les exemples suivants, renseignez les valeurs appropriées pour les variables de la première section avant d’exécuter le code.
Dans la plupart des cas, vous devez télécharger une copie du fichier JSON des paramètres du portail et la personnaliser en fonction de vos besoins. Utilisez des modèles ou votre propre automatisation pour utiliser une version personnalisée du fichier config au lieu de le télécharger à chaque fois depuis l’URL.
Quand vous activez le nouveau récepteur Azure Monitor, les machines virtuelles doivent avoir une identité affectée par le système activée pour générer des jetons d’authentification Managed Service Identity (MSI). Vous pouvez ajouter ces paramètres pendant ou après la création de la machine virtuelle. Pour obtenir des instructions pour le portail Azure, Azure CLI, PowerShell et Azure Resource Manager, consultez Configurer des identités managées.
# 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
# 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
Une fois que vous avez modifié vos paramètres protégés ou publics, exécuter la même commande pour les déployer sur la machine virtuelle. Si des paramètres ont été modifiés, les mises à jour sont envoyées à l’extension. L’extension de diagnostic Linux recharge la configuration et redémarre automatiquement.
La version la plus récente de l’extension est la version 4.0, qui est actuellement disponible en préversion publique. Les versions 3.x antérieures sont toujours prises en charge. Les versions 2.x ont été dépréciées le 31 juillet 2018.
Important
Pour migrer de 3.x vers la version la plus récente de l’extension, désinstallez l’ancienne extension. Installez ensuite la version 4, qui comprend la configuration mise à jour pour l’identité affectée par le système et les récepteurs pour envoyer des métriques au récepteur Azure Monitor.
Quand vous installez la nouvelle extension, activez les mises à niveau automatiques des versions mineures :
"autoUpgradeMinorVersion": true
dans le modèle de déploiement des machines virtuelles.4.*
si vous installez l’extension via Azure CLI ou PowerShell.Vous pouvez utiliser le même compte de stockage que celui utilisé pour l’extension de diagnostic Linux 3.x.
Cet ensemble d’informations de configuration contient des informations sensibles qui doivent être protégées d’une exposition publique. Il contient par exemple les informations d’identification du stockage. Ces paramètres sont transmis à l’extension qui les stocke sous une forme chiffrée.
{
"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": { ... }
}
Nom | Valeur |
---|---|
storageAccountName | Nom du compte de stockage où les données sont écrites par l’extension. |
storageAccountEndPoint | (Facultatif) Point de terminaison identifiant le cloud où se trouve le compte de stockage. Si ce paramètre est absent, par défaut, l’extension de diagnostic Linux utilise le cloud public Azure, https://core.windows.net . Pour utiliser un compte de stockage dans Azure Allemagne, Azure Government ou Microsoft Azure géré par 21Vianet, définissez cette valeur de manière adéquate. |
storageAccountSasToken | Un jeton SAS de compte pour les services Blob et Table (ss='bt' ). Ce jeton s’applique aux conteneurs et aux objets (srt='co' ). Il accorde les autorisations d’ajouter, de créer, de lister, de mettre à jour et d’écrire (sp='acluw' ). N’incluez pas le point d’interrogation ( ?) du début. |
mdsdHttpProxy | (Facultatif) Informations du proxy HTTP nécessaires pour permettre à l’extension de se connecter au compte de stockage et au point de terminaison spécifiés. |
sinksConfig | (Facultatif) Détails des destinations alternatives auxquelles les métriques et les événements peuvent être délivrés. Les sections suivantes fournissent des détails sur chaque récepteur de données pris en charge par l’extension. |
Pour obtenir un jeton SAS dans un modèle ARM, utilisez la fonction listAccountSas
. Pour obtenir un exemple de modèle, consultez Exemple de fonction de liste.
Vous pouvez construire le jeton de signature d’accès partagé nécessaire par le biais du Portail Azure :
Copiez la signature d’accès partagé générée dans le champ storageAccountSasToken
. Supprimez le point d’interrogation (?) figurant au début.
Notes
Les paramètres publics et protégés ont une section sinksConfig
facultative. La section sinksConfig
dans les paramètres protégés contient uniquement les configurations des récepteurs EventHub
et JsonBlob
, en raison de l’inclusion de secrets comme sasURL
. Les configurations du récepteur AzMonSink
ne peuvent pas être incluses dans vos paramètres protégés.
"sinksConfig": {
"sink": [
{
"name": "sinkname",
"type": "sinktype",
...
},
...
]
},
La section facultative sinksConfig
définit des destinations supplémentaires auxquelles l’extension envoie les informations collectées. Le tableau "sink"
contient un objet pour chaque récepteur de données supplémentaire. L’attribut "type"
détermine les autres attributs de l’objet.
Élément | Valeur |
---|---|
name | Chaîne utilisée pour référencer ce récepteur ailleurs dans la configuration de l’extension. |
type | Type du récepteur défini. Détermine les autres valeurs, le cas échéant), dans les instances de ce type. |
L’extension de diagnostic Linux 4.0 prend en charge deux types de récepteur protégé : EventHub
et JsonBlob
.
"sink": [
{
"name": "sinkname",
"type": "EventHub",
"sasURL": "https SAS URL"
},
...
]
L’entrée "sasURL"
contient l’URL complète, y compris le jeton de signature d’accès partagé, de l’Event Hub sur lequel les données doivent être publiées. L’extension de diagnostic Linux nécessite une signature d’accès partagé pour nommer une stratégie qui active la revendication d’envoi. Voici un exemple :
contosohub
.syslogmsgs
.writer
qui active la revendication d’envoi.Si vous avez créé une signature d’accès partagé valide jusqu’à minuit UTC le 1er janvier 2018, la valeur de sasURL
peut être similaire à l’exemple suivant.
https://contosohub.servicebus.windows.net/syslogmsgs?sr=contosohub.servicebus.windows.net%2fsyslogmsgs&sig=xxxxxxxxxxxxxxxxxxxxxxxxx&se=1514764800&skn=writer
Pour plus d’informations sur la génération et l’extraction d’informations sur les jetons SAS pour Event Hubs, consultez Générer un jeton SAS.
"sink": [
{
"name": "sinkname",
"type": "JsonBlob"
},
...
]
Les données dirigées vers un récepteur JsonBlob
sont stockées dans des blobs dans Stockage Azure. Chaque instance de l’extension de diagnostic Linux crée un objet blob toutes les heures pour chaque nom de récepteur. Chaque blob contient toujours un tableau syntaxiquement valide d’objets JSON. Les nouvelles entrées sont ajoutées au tableau de manière atomique.
Les blobs sont stockés dans un conteneur du même nom que le récepteur. Les règles du Stockage Azure pour les noms de conteneur d’objets blob s’appliquent aux noms des récepteurs JsonBlob
. Les noms doivent comporter entre 3 et 63 caractères ASCII alphanumériques en minuscules ou des tirets.
Cette structure de paramètres publics contient différents blocs de paramètres qui contrôlent les informations collectées par l’extension. Chaque paramètre, excepté ladCfg
, est facultatif. Si vous spécifiez la collection de métriques ou syslog dans ladCfg
, vous devez également spécifier StorageAccount
. Vous devez spécifier l’élément sinksConfig
pour activer le récepteur Azure Monitor pour les métriques de l’extension de diagnostic Linux 4.0.
{
"ladCfg": { ... },
"fileLogs": { ... },
"StorageAccount": "the storage account to receive data",
"sinksConfig": { ... },
"mdsdHttpProxy" : ""
}
Élément | Valeur |
---|---|
StorageAccount | Nom du compte de stockage où les données sont écrites par l’extension. Il doit s’agir du nom spécifié dans les paramètres protégés. |
mdsdHttpProxy | (Facultatif) Le proxy spécifié dans les paramètres protégés. Si la valeur privée est définie, elle remplace la valeur publique. Placez les paramètres de proxy qui contiennent un secret, comme un mot de passe, dans les paramètres protégés. |
Les sections suivantes fournissent des détails sur les éléments restants.
"ladCfg": {
"diagnosticMonitorConfiguration": {
"eventVolume": "Medium",
"metrics": { ... },
"performanceCounters": { ... },
"syslogEvents": { ... }
},
"sampleRateInSeconds": 15
}
La structure ladCfg
contrôle la collecte des métriques et des journaux pour les délivrer au service des métriques Azure Monitor et à d’autres récepteurs. Spécifiez performanceCounters
ou syslogEvents
, ou les deux. Spécifiez aussi la structure metrics
.
Si vous ne voulez pas activer Syslog ou la collecte de métriques, spécifiez une structure vide pour l’élément ladCfg
:
"ladCfg": {
"diagnosticMonitorConfiguration": {}
}
Élément | Valeur |
---|---|
eventVolume | (facultatif) Contrôle le nombre de partitions créées dans la table de stockage. La valeur doit être "Large" , "Medium" ou "Small" . La valeur par défaut est "Medium" . |
sampleRateInSeconds | (Facultatif) Intervalle par défaut entre les collectes des métriques brutes (non agrégées). L’échantillonnage le plus petit pris en charge de 15 secondes. Par défaut, il s’agit de 15 . |
"metrics": {
"resourceId": "/subscriptions/...",
"metricAggregation" : [
{ "scheduledTransferPeriod" : "PT1H" },
{ "scheduledTransferPeriod" : "PT5M" }
]
}
Élément | Valeur |
---|---|
resourceId | L’ID de ressource Azure Resource Manager de la machine virtuelle ou du groupe de machines virtuelles identiques auquel la machine virtuelle appartient. Spécifiez aussi ce paramètre si la configuration utilise un récepteur JsonBlob . |
scheduledTransferPeriod | Fréquence à laquelle les métriques agrégées doivent être calculées et transférées à Azure Monitor Metrics. La fréquence est exprimée sous la forme d’un intervalle de temps ISO 8601. La périodicité de transfert la plus petite est de 60 secondes, c’est-à-dire PT1M. Spécifiez au moins une fréquence scheduledTransferPeriod . |
Des échantillons des métriques spécifiées dans la section performanceCounters
sont collectés toutes les 15 secondes ou selon l’échantillonnage explicitement défini pour le compteur. Si plusieurs fréquences scheduledTransferPeriod
apparaissent, comme dans l’exemple, chaque agrégation est calculée indépendamment.
"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 section facultative performanceCounters
contrôle la collecte des métriques. Les échantillons bruts sont agrégés pour chaque scheduledTransferPeriod pour produire ces valeurs :
Élément | Valeur |
---|---|
sinks | (Facultatif) Liste, séparée par des virgules, des noms des récepteurs auxquels l’extension de diagnostic Linux envoie les résultats des métriques agrégées. Toutes les métriques agrégées sont publiées sur chaque récepteur répertorié. Par exemple : "MyEventHubSink, MyJsonSink, MyAzMonSink" . Pour plus d’informations, consultez sinksConfig (paramètres protégés) et sinksConfig (paramètres publics). |
type | Identifie le fournisseur réel de la mesure. |
class | Avec "counter" , identifie la métrique spécifique dans l’espace de noms du fournisseur. |
counter | Avec "class" , identifie la métrique spécifique dans l’espace de noms du fournisseur. Consultez la liste des compteurs disponibles. |
counterSpecifier | Identifie la métrique dans l’espace de noms Azure Monitor Metrics. |
condition | (Facultatif) Sélectionne une instance de l’objet auquel la métrique s’applique, ou sélectionne l’agrégation sur toutes les instances de cet objet. |
sampleRate | Intervalle ISO 8601 qui définit la fréquence à laquelle des échantillons bruts sont collectés pour cette métrique. Si la valeur n’est pas définie, la valeur de sampleRateInSeconds définit l’intervalle de collecte. L’échantillonnage le plus court pris en charge est de 15 secondes (PT15S). |
unité | Définit l’unité pour la métrique. Doit être une des chaînes suivantes : "Count" , "Bytes" , "Seconds" , "Percent" , "CountPerSecond" , "BytesPerSecond" , "Millisecond" . Les consommateurs des données collectées attendent des valeurs de données collectées correspondant à cette unité. L’extension de diagnostic Linux ignore ce champ. |
displayName | Étiquette à attacher aux données dans Azure Monitor Metrics lors de l’affichage dans l’espace de noms de métriques Guest (classic) . Cette étiquette est dans la langue spécifiée par les paramètres régionaux associés. L’extension de diagnostic Linux ignore ce champ. Remarque : Si vous affichez la même métrique dans l’espace de noms de métriques azure.vm.linux.guestmetrics , qui est disponible si AzMonSink est configuré, le nom d’affichage dépend entièrement du compteur. Pour trouver le mappage entre les compteurs et les noms, consultez Métriques prises en charge par le fournisseur intégré. |
counterSpecifier
est un identificateur arbitraire. Les consommateurs de métriques, comme les fonctionnalités de graphiques et d’alertes du portail Azure, utilisent counterSpecifier
comme la clé qui identifie une métrique ou l’instance d’une métrique.
Pour les métriques builtin
, nous recommandons des valeurs de counterSpecifier
commençant par /builtin/
. Si vous collectez une instance spécifique d’une métrique, attachez l’identificateur de l’instance à la valeur de counterSpecifier
. Voici quelques exemples :
/builtin/Processor/PercentIdleTime
. Temps d’inactivité moyen pour tous les processeurs virtuels/builtin/Disk/FreeSpace(/mnt)
. Espace libre pour le système de fichiers /mnt
/builtin/Disk/FreeSpace
. Espace libre moyen pour tous les systèmes de fichiers montésL’extension de diagnostic Linux et le portail Azure ne s’attendent pas à ce que la valeur de counterSpecifier
corresponde à un modèle particulier. Soyez cohérent dans la façon dont vous construisez les valeurs de counterSpecifier
.
Quand vous spécifiez performanceCounters
, l’extension de diagnostic Linux écrit toujours les données dans une table de Stockage Azure. Les mêmes données peuvent être écrites dans des blobs JSON ou des Event Hubs, ou les deux. Vous ne pouvez pas désactiver le stockage des données dans une table.
Toutes les instances de l’extension de diagnostic Linux qui utilisent le même nom et le même point de terminaison de compte de stockage ajoutent leurs métriques et leurs journaux à la même table. Si un trop grand nombre de machines virtuelles écrivent dans la même partition de table, Azure peut limiter les écritures sur cette partition.
Le paramètre eventVolume
permet de répartir les entrées entre 1 (Small), 10 (Medium) ou 100 (Large) partitions. En règle générale, 10 partitions (Medium) sont suffisantes pour éviter la limitation du trafic.
La fonctionnalité Azure Monitor Metrics du portail Azure utilise les données de cette table pour produire des graphes ou déclencher des alertes. Le nom de la table est la concaténation des chaînes suivantes :
WADMetrics
"scheduledTransferPeriod"
pour les valeurs agrégées stockées dans la tableP10DV2S
Exemples : WADMetricsPT1HP10DV2S20170410
et WADMetricsPT1MP10DV2S20170609
.
"syslogEvents": {
"sinks": "",
"syslogEventConfiguration": {
"facilityName1": "minSeverity",
"facilityName2": "minSeverity",
...
}
}
La section facultative syslogEvents
contrôle la collecte des événements des journaux auprès de Syslog. Si la section est omise, les événements Syslog ne sont pas capturés du tout.
La collection syslogEventConfiguration
a une entrée pour chaque fonction Syslog qui présente un intérêt. Si minSeverity
est défini sur "NONE"
pour une fonction donnée ou si cette fonction n’apparaît pas du tout dans l’élément, aucun événement de cette fonction n’est capturé.
Élément | Valeur |
---|---|
sinks | Une liste séparée par des virgules de noms de récepteurs sur lesquels des événements de journaux sont publiés. Tous les événements de journaux correspondant aux restrictions de syslogEventConfiguration sont publiés sur chaque récepteur listé. Exemple : "EHforsyslog" |
facilityName | Nom de la fonction Syslog, comme "LOG_USER" ou "LOG_LOCAL0" . Pour plus d’informations, consultez Valeurs pour la fonctionnalité dans la page du manuel syslog. |
minSeverity | Niveau de gravité Syslog, comme "LOG_ERR" ou "LOG_INFO" . Pour plus d’informations, consultez Valeurs pour le niveau dans la page du manuel syslog. L’extension capture les événements envoyés à la fonction à un niveau supérieur ou égal au niveau spécifié. |
Quand vous spécifiez syslogEvents
, LAD écrit toujours les données dans une table du stockage Azure nommée LinuxSyslogVer2v0. Les mêmes données peuvent être écrites dans des blobs JSON ou des Event Hubs, ou les deux. Vous ne pouvez pas désactiver le stockage des données dans une table.
La section sinksConfig
publique facultative permet d’envoyer des métriques au récepteur Azure Monitor en plus du compte de stockage et de l’affichage par défaut des Métriques d’invité.
Notes
Les paramètres publics et protégés ont une section sinksConfig
facultative. La section sinksConfig
dans les paramètres publics contient uniquement la configuration du récepteur AzMonSink
. Les configurations des récepteurs EventHub
et JsonBlob
ne peuvent pas être incluses dans vos paramètres publics.
Notes
La section sinksConfig
nécessite l’activation de l’identité affectée par le système sur les machines virtuelles ou sur le groupe de machines virtuelles identiques.
Vous pouvez activer l’identité affectée par le système via le portail Azure, l’interface CLI, PowerShell ou Azure Resource Manager. Suivez les instructions détaillées ou consultez les exemples d’installations précédents dans cet article.
"sinksConfig": {
"sink": [
{
"name": "AzMonSink",
"type": "AzMonSink",
"AzureMonitor": {}
}
]
},
La section fileLogs
contrôle la capture des fichiers journaux. L’extension de diagnostic Linux capture les nouvelles lignes de texte à mesure qu’elles sont écrites dans le fichier. Elle les écrit dans les lignes de la table et dans les récepteurs spécifiés, comme JsonBlob
et EventHub
.
Notes
Les fileLogs
sont capturés par un sous-composant de l’extension de diagnostic Linux appelé omsagent
. Pour collecter les fileLogs
, vérifiez que l’utilisateur omsagent
dispose des autorisations de lecture sur les fichiers que vous spécifiez. Il doit également disposer d’autorisations d’exécution sur tous les répertoires dans le chemin vers ce fichier. Une fois LAD installé, pour vérifier les autorisations, exécutez sudo su omsagent -c 'cat /path/to/file'
.
"fileLogs": [
{
"file": "/var/log/mydaemonlog",
"table": "MyDaemonEvents",
"sinks": ""
}
]
Élément | Valeur |
---|---|
fichier | Nom du chemin complet du fichier journal à observer et à capturer. Le chemin d’accès ne peut pas spécifier de répertoire ou contenir des caractères génériques. Le compte d’utilisateur omsagent doit avoir un accès en lecture sur le chemin du fichier. |
table | (Facultatif) Table de Stockage Azure dans laquelle les nouvelles lignes de la fin du fichier sont écrites. La table doit se trouver dans le compte de stockage désigné, comme spécifié dans la configuration protégée. |
sinks | (Facultatif) Une liste séparée par des virgules des noms des récepteurs supplémentaires auxquels les lignes des journaux sont envoyées. |
Vous devez spécifier "table"
, "sinks"
ou les deux.
Les métriques par défaut prises en charge par l’extension de diagnostic Linux sont agrégées pour l’ensemble des systèmes de fichiers, des disques ou des noms. Pour les métriques non agrégées, reportez-vous à la prise en charge des métriques plus récentes du récepteur Azure Monitor.
Notes
Les noms d’affichage de chaque métrique varient en fonction de l’espace de noms de métriques auquel elle appartient :
Guest (classic)
renseigné à partir de votre compte de stockage : le displayName
spécifié dans la section performanceCounters
, ou le nom d’affichage par défaut tel qu’il apparaît dans le Portail Azure. Pour la machine virtuelle, sous Paramètres de diagnostic de surveillance> par défaut, sélectionnez l’onglet Métriques.azure.vm.linux.guestmetrics
renseigné à partir de AzMonSink
, si configuré : le « Nom d’affichage azure.vm.linux.guestmetrics
» spécifié dans les tableaux ci-dessous.Les valeurs de métriques entre les versions Guest (classic)
et azure.vm.linux.guestmetrics
diffèrent. Alors que certaines agrégations étaient appliquées aux métriques classiques dans l’agent, les nouvelles métriques sont des compteurs non agrégés, ce qui donne aux clients la flexibilité nécessaire pour les agréger au moment de l’affichage/alerte.
Le fournisseur de métriques builtin
est une source de métriques parmi les plus intéressantes pour un large éventail d’utilisateurs. Ces métriques se répartissent en cinq classes principales :
La classe de métriques Processeur fournit des informations sur l’utilisation du processeur dans la machine virtuelle. Quand des pourcentages sont agrégés, le résultat est la moyenne pour tous les UC.
Dans une machine virtuelle à 2 processeurs virtuels, si un processeur virtuel est occupé à 100 % et que l’autre est inactif à 100 %, le PercentIdleTime
signalé est de 50. Si chaque processeur virtuel est occupé à 50 % pendant la même période, le résultat signalé est également de 50. Dans une machine virtuelle à 4 processeurs virtuels, si un processeur virtuel est occupé à 100 % et que les autres sont inactifs, le PercentIdleTime
signalé est de 75.
Compteur | Nom d’affichage azure.vm.linux.guestmetrics | Signification |
---|---|---|
PercentIdleTime | cpu idle time |
Pourcentage de temps de la fenêtre d’agrégation pendant lequel les UC ont exécuté la boucle d’inactivité du noyau |
percentProcessorTime | cpu percentage guest os |
Pourcentage de temps passé à exécuter un thread actif |
PercentIOWaitTime | cpu io wait time |
Pourcentage de temps passé à attendre la fin d’opérations d’E/S |
PercentInterruptTime | cpu interrupt time |
Pourcentage de temps passé à exécuter des interruptions matérielles ou logicielles et des appels de procédure différés (DPC) |
PercentUserTime | cpu user time |
Relativement au temps d’activité de la fenêtre d’agrégation, pourcentage de temps passé en mode utilisateur à une priorité normale |
PercentNiceTime | cpu nice time |
Pourcentage de temps passé à une priorité abaissée (commande nice), relativement au temps d’activité |
PercentPrivilegedTime | cpu privileged time |
Pourcentage de temps passé en mode privilégié (noyau), relativement au temps d’activité |
La somme des 4 premiers compteurs doit être de 100 %. La somme des 3 premiers compteurs est également de 100 %. Ces trois compteurs subdivisent la somme de PercentProcessorTime
, PercentIOWaitTime
et PercentInterruptTime
.
La classe de métriques Mémoire fournit des informations sur l’utilisation, la pagination et les échanges de la mémoire.
Compteur | Nom d’affichage azure.vm.linux.guestmetrics | Signification |
---|---|---|
AvailableMemory | memory available |
Mémoire physique disponible en Mio |
PercentAvailableMemory | mem. percent available |
Mémoire physique disponible sous forme de pourcentage de la mémoire totale |
UsedMemory | memory used |
Mémoire physique utilisée (Mio) |
PercentUsedMemory | memory percentage |
Mémoire physique utilisée sous forme de pourcentage de la mémoire totale |
PagesPerSec | pages |
Pagination totale (lecture/écriture) |
PagesReadPerSec | page reads |
Pages lues à partir du magasin de stockage, comme le fichier d’échange, les fichiers programme et les fichiers mappés |
PagesWrittenPerSec | page writes |
Pages écrites dans le magasin de stockage, comme le fichier d’échange et les fichiers mappés |
AvailableSwap | swap available |
Espace d’échange non utilisé (Mio) |
PercentAvailableSwap | swap percent available |
Espace d’échange non utilisé sous forme de pourcentage de l’espace d’échange total |
UsedSwap | swap used |
Espace d’échange utilisé (Mio) |
PercentUsedSwap | swap percent used |
Espace d’échange utilisé sous forme de pourcentage de l’espace d’échange total |
Cette classe de métriques n’a qu’une seule instance. L’attribut "condition"
n’a pas de paramètres utiles et doit être omis.
La classe de métriques Réseau fournit des informations sur l’activité réseau sur une interface réseau individuelle depuis le démarrage.
L’extension de diagnostic Linux n’expose pas les métriques de la bande passante. Vous pouvez obtenir ces métriques à partir des métriques de l’hôte.
Compteur | Nom d’affichage azure.vm.linux.guestmetrics | Signification |
---|---|---|
BytesTransmitted | network out guest os |
Nombre total d’octets envoyés depuis le démarrage |
BytesReceived | network in guest os |
Nombre total d’octets reçus depuis le démarrage |
BytesTotal | network total bytes |
Nombre total d’octets envoyés ou reçus depuis le démarrage |
PacketsTransmitted | packets sent |
Nombre total de paquets envoyés depuis le démarrage |
PacketsReceived | packets received |
Nombre total de paquets reçus depuis le démarrage |
TotalRxErrors | packets received errors |
Nombre d’erreurs de réception depuis le démarrage |
TotalTxErrors | packets sent errors |
Nombre d’erreurs de transmission depuis le démarrage |
TotalCollisions | network collisions |
Nombre de collisions signalées par les ports réseau depuis le démarrage |
La classe de métriques Système de fichiers fournit des informations sur l’utilisation du système de fichiers. Les valeurs absolues et en pourcentage sont indiquées comme elles sont affichées pour un utilisateur ordinaire, non racine.
Compteur | Nom d’affichage azure.vm.linux.guestmetrics | Signification |
---|---|---|
FreeSpace | filesystem free space |
Espace disque disponible en octets |
UsedSpace | filesystem used space |
Espace disque utilisé en octets |
PercentFreeSpace | filesystem % free space |
Pourcentage d’espace libre |
PercentUsedSpace | filesystem % used space |
Pourcentage d’espace utilisé |
PercentFreeInodes | filesystem % free inodes |
Pourcentage de nœuds d’index non utilisés (inodes) |
PercentUsedInodes | filesystem % used inodes |
Pourcentage total d’inodes alloués (utilisés) pour tous les systèmes de fichiers |
BytesReadPerSecond | filesystem read bytes/sec |
Octets lus par seconde |
BytesWrittenPerSecond | filesystem write bytes/sec |
Octets écrits par seconde |
BytesPerSecond | filesystem bytes/sec |
Octets lus ou écrits par seconde |
ReadsPerSecond | filesystem reads/sec |
Opérations de lecture par seconde |
WritesPerSecond | filesystem writes/sec |
Opérations d’écriture par seconde |
TransfersPerSecond | filesystem transfers/sec |
Opérations de lecture ou d’écriture par seconde |
La classe de métriques Disque fournit des informations sur l’utilisation du disque. Ces statistiques s’appliquent à la totalité du lecteur.
Quand un périphérique a plusieurs systèmes de fichiers, les compteurs pour ce périphérique sont agrégés pour tous les systèmes de fichiers.
Compteur | Nom d’affichage azure.vm.linux.guestmetrics | Signification |
---|---|---|
ReadsPerSecond | disk reads |
Opérations de lecture par seconde |
WritesPerSecond | disk writes |
Opérations d’écriture par seconde |
TransfersPerSecond | disk transfers |
Nombre total d’opérations par seconde |
AverageReadTime | disk read time |
Nombre moyen de secondes par opération de lecture |
AverageWriteTime | disk write time |
Nombre moyen de secondes par opération d’écriture |
AverageTransferTime | disk transfer time |
Nombre moyen de secondes par opération |
AverageDiskQueueLength | disk queue length |
Nombre moyen d’opérations disque en file d’attente |
ReadBytesPerSecond | disk read guest os |
Nombre d’octets lus par seconde |
WriteBytesPerSecond | disk write guest os |
Nombre d’octets écrits par seconde |
BytesPerSecond | disk total bytes |
Nombre d’octets lus ou écrits par seconde |
À partir des définitions précédentes, cette section fournit un exemple de configuration de l’extension de diagnostic Linux 4.0 et quelques explications. Pour appliquer cet exemple, vous devez utiliser le nom de votre compte de stockage, le jeton de signature d’accès partagé de votre compte et vos jetons SAP pour Event Hubs.
Notes
Selon que vous utilisez Azure CLI ou Azure PowerShell pour installer l’extension de diagnostic Linux, la méthode pour fournir des paramètres publics et protégés diffère :
$protectedSettings = '{ ... }'
et $publicSettings = '{ ... }'
pour enregistrer les paramètres suivants dans $protectedSettings
et $publicSettings
.Les paramètres protégés configurent :
JsonBlob
ou EventHub
avec des jetons 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"
}
]
}
}
Les paramètres publics font que l’extension de diagnostic Linux :
WADMetrics*
."user"
et le niveau de gravité "info"
dans la table LinuxSyslog*
./var/log/myladtestlog
dans la table MyLadTestLog
.Dans chaque cas, les données sont également chargées dans :
JsonBlob
.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"
}
]
}
Le resourceId
dans la configuration doit correspondre à celui de la machine virtuelle ou du groupe de machines virtuelles identiques.
resourceId
de la machine virtuelle sur laquelle vous travaillez. Il s’attend à trouver les données de votre machine virtuelle en utilisant le resourceId
comme clé de recherche.resourceId
dans la configuration de la mise à l’échelle automatique doit correspondre au resourceId
utilisé par l’extension de diagnostic Linux (LAD).resourceId
est intégré aux noms des blobs JSON écrits par l’extension de diagnostic Linux.Utilisez le portail Azure pour afficher les données de performances ou pour définir des alertes :
Les données de performanceCounters
sont toujours stockées dans une table de Stockage Azure. Les API Stockage Azure sont disponibles pour de nombreux langages et de nombreuses plateformes.
Les données envoyées aux récepteurs JsonBlob
sont stockées dans des objets blob dans le compte de stockage nommé dans les paramètres protégés. Vous pouvez consommer les données blob dans n’importe quelle API de Stockage Blob Azure.
Vous pouvez aussi utiliser ces outils d’interface utilisateur pour accéder aux données de Stockage Azure :
La capture d’écran suivante d’une session de l’Explorateur Stockage Azure montre les tables et les conteneurs Stockage Azure générés à partir d’une extension de diagnostic Linux 4.0 correctement configurée sur une machine virtuelle de test. L’image ne correspond pas exactement à l’exemple de configuration de l’extension de diagnostic Linux 4.0.
Pour plus d’informations sur la façon de consommer des messages publiés sur un point de terminaison Event Hubs, consultez la documentation correspondante d’Event Hubs.
Entrainement
Module
Gérer l’intégrité du système sur Azure Stack Hub - Training
Gérer l’intégrité du système sur Azure Stack Hub