Accéder au contenuNavigation Accéder à la page : page précédente [raccourci clavier p] / page suivante [raccourci clavier n]
documentation.suse.com / Configuration du daemon de métriques d'hôte virtuel sous SUSE Linux Micro

Configuration du daemon de métriques d'hôte virtuel sous SUSE Linux Micro

Date de publication : 20 mar 2025
CONTENU

Le daemon de métriques d'hôte virtuel vhostmd est un outil qui collecte des métriques à partir d'un hôte de machines virtuelles et fournit ces métriques aux machines virtuelles s'exécutant sur cet hôte.

MOTIF

Cet article décrit comment installer et configurer vhostmd pour activer la collecte de métriques.

EFFORT

La lecture de l'article prend environ 15 minutes.

OBJECTIF

L'outil vhostmd s'exécutera et collectera des métriques.

CONDITIONS REQUISES
  • Une instance en cours d'exécution de SUSE Linux Micro.

  • Des machines virtuelles s'exécutant sur cette instance

1 Qu'est-ce qu'un daemon de métriques d'hôte virtuel, ou vhostmd ?

vhostmd est un daemon qui s'exécute dans un environnement hôte et fournit un canal de communication de métriques entre l'hôte et les machines invitées. Le daemon fournit à l'administrateur de la machine invitée un ensemble limité de données d'utilisation des ressources de l'hôte (généralement en mode lecture seule), afin de faciliter l'analyse des problèmes de la machine invitée.

vhostdmd écrit périodiquement des métriques sur un disque. Les métriques à collecter, ainsi que la fréquence et l'emplacement de stockage des données, sont des paramètres configurables.

2 Obtention de vhostmd

Par défaut, vhostmd n'est pas inclus dans les images fournies. Par conséquent, vous devez l'installer avant de l'utiliser :

  1. Installez le daemon en exécutant :

              > 
              sudo
              transactional-update pkg install vhostmd
  2. Redémarrez votre système pour passer au nouvel instantané.

  3. Démarrez le daemon en exécutant :

              > 
              sudo
              vhostmd
              OPTIONS

    Vous pouvez utiliser les options suivantes pour modifier le comportement de la commande :

    • -v : pour une sortie verbeuse

    • --connect URI : pour transmettre l'URI du daemon libvirt afin d'établir des connexions au daemon

    • -f FILE_PATH : pour transmettre un autre fichier de configuration. Pour plus d'informations concernant la configuration, reportez-vous à la Section 4, « Configuration de vhostmd ».

    • -p PID_FILE : pour créer un autre fichier PID. La valeur par défaut est /var/run/vhostmd.pid.

    • -u USERNAME : pour employer un utilisateur sans privilège

Vous pouvez également exécuter vhostmd en tant que service systemd :

      > 
      sudo
      systemctl enable --now vhostmd
Note
Note : redémarrage du service nécessaire après des modifications de configuration

Chaque fois que vous modifiez la configuration comme décrit à la Section 4, « Configuration de vhostmd », redémarrez le service vhostmd comme suit :

        > 
        sudo
        systemctl restart vhostmd

3 Fourniture de métriques collectées à une machine virtuelle

Vous pouvez rendre les métriques collectées visibles par des machines virtuelles particulières pour utilisation ultérieure ou simplement pour lecture. Pour ce faire, vous avez deux possibilités. Vous pouvez soit attacher le disque de métriques à l'aide de la commande virsh, soit ajuster la configuration du domaine.

Pour attacher le disque de métriques en mode lecture seule, exécutez virsh comme suit :

      > 
      sudo
      virsh attach-disk VIRTUAL_MACHINE \ 
  PATH_TO_METRICS_DISC --driver tap \
  --subdriver aio --type disk --mode readonly

Pour modifier la configuration du domaine, procédez comme suit :

  1. Exécutez la commande :

              > 
              sudo
              virsh edit
       GUEST_NAME
  2. Mettez à jour la section <devices> en ajoutant l'extrait de code suivant :

    <disk type='block' device='disk'>
      <source dev='/dev/shm/vhostmd0'/>
      <target dev='hdb' bus='ide'/>
      <readonly/>
    </disk>

    Ajustez les valeurs dev et dbus de la cible.

4 Configuration de vhostmd

Le fichier de configuration par défaut de vhostmd se trouve dans /etc/vhostmd/vhostmd.conf. Vous pouvez ajuster ce fichier en fonction de vos besoins. Le fichier de configuration est un fichier XML qui doit inclure l'élément <vhostmd>. <vhostmd> inclut ensuite les éléments <globals> et <metrics> qui sont décrits dans les sections suivantes. Utilisez le fichier de configuration par défaut comme référence pour les modifications personnalisées.

4.1 L'élément <globals>

L'élément <globals> définit l'emplacement de stockage sur disque, la fréquence de mise à jour des données et la méthode de transport des données vers les machines invitées. Il contient les éléments suivants :

<disk>

L'élément est utilisé pour définir le chemin du disque sur lequel les données de métrique sont stockées, ainsi que la taille du disque. Il peut contenir les éléments suivants :

  • <name> : définit le nom du disque.

  • <path> : un chemin absolu où le disque est monté.

  • <size> : à l'aide de l'attribut unit, spécifiez la taille maximale des métriques. Utilisez k pour Ko et m pour Mo.

<update_period>

Définit la fréquence de mise à jour des métriques. La valeur est en seconde.

<transport>

Spécifie comment les métriques sont transportées vers les machines invitées. Dans le cas de SUSE Linux Micro, utilisez la valeur par défaut virtio.

<virtio>

Vous pouvez utiliser ici les éléments suivants :

  • <max_channels> : spécifie le nombre maximal que virtion peut utiliser entre les systèmes hôte et invité.

  • <expiration_time> : définit l'intervalle de temps après lequel un canal virtio d'une machine virtuelle est fermé lorsqu'il est inactif. La valeur par défaut est trois fois la valeur <update_period>.

4.2 L'élément <metrics>

L'élément <metrics> contient une liste de métriques à collecter. Chaque métrique possède deux attributs :

type

Décrit le type de données de la valeur des métriques. Les valeurs possibles sont les suivantes : int32, uint32, int64 , uint64, real32, real64, string, group et xml.

Utilisez group lorsqu'une métrique renvoie plusieurs valeurs. xml est une forme polyvalente lorsque la métrique renvoie une valeur XML valide.

context

Définit où la métrique en question est collectée. Les valeurs possibles sont :

  • host pour les métriques collectées sur la machine hôte ;

  • vm pour les métriques collectées sur la machine invitée.

Chaque métrique doit avoir un nom unique et une commande à exécuter pour enregistrer les métriques. La liste suivante décrit les éléments possibles pour définir une métrique :

<name>

Définit le nom unique de la variable. Si la métrique est collectée sur une machine virtuelle, vous pouvez utiliser les valeurs suivantes ici : NAME, ID et UUID. Ces valeurs sont ensuite remplacées par les valeurs réelles de la machine virtuelle en cours de vérification.

<action>

Spécifie une commande ou un script à exécuter pour collecter une métrique. Par exemple, pour obtenir le temps CPU total, utilisez :

<action>virsh dominfo NAME | sed 's/: */:/' | \
    gawk -F: '/CPU time/ {print $2;}'<action>
<variable>

Si une opération renvoie un groupe de valeurs, définissez des variables qui stockent des données particulières. L'élément doit avoir les attributs suivants définis :

  • name : spécifiez le nom d'une variable.

  • type : spécifiez le type de données de la variable.

5 Comment les métriques collectées sont-elles stockées ?

vhostmd stocke les données de métriques collectées sur le disque de métriques dans un format brut. Le disque contient un en-tête de 32 octets suivi des données de métrique au format XML.

5.1 Format XML de métriques

Les résultats des métriques collectées sont similaires à la définition des métriques configurées. L'élément <metric> peut avoir les attributs suivants :

type

Indique le type de données de la métrique en question, par exemple, string.

context

Identifie si la métrique est collectée sur l'hôte (host) ou sur une machine virtuelle (vm).

id

Utilisé dans le contexte vm. Transmet le numéro d'ID de la machine virtuelle.

uuid

Utilisé dans le contexte vm. Transmet l'identifiant unique universel (UUID) de la machine virtuelle.

L'élément <metric> contient les éléments suivants :

<name>

Transmet le nom de la métrique.

<value>

Transmet la valeur réelle des métriques.

Note
Note : pas de valeurs multiples dans une métrique

Lorsque le type group d'une métrique a été configuré, chaque valeur <variable> configurée est stockée en tant que métrique distincte dans le résultat. Il peut s'agir par exemple de l'extrait de code de configuration suivant :

<metric type="group" context="host">
  <name>PageRates</name>
  <action>pagerate.pl</action>
  <variable name="PageInRate" type="uint64"/>
  <variable name="PageFaultRate" type="uint64"/>
</metric>

Donne l'extrait de code suivant :

<metric type='uint64' context='host'>
  <name>PageInRate</name>
  <value>0.000000</value>
</metric>
<metric type='uint64' context='host'>
  <name>PageFaultRate</name>
  <value>0.000000</value>
</metric>