Ir al contenidoIr a la navegación de la página: página anterior [tecla de acceso p]/página siguiente [tecla de acceso n]
documentation.suse.com / Configuración del daemon de métricas de host virtual en SUSE Linux Micro

Configuración del daemon de métricas de host virtual en SUSE Linux Micro

Fecha de publicación: 20 Mar 2025
DESCRIPCIÓN

vhostmd es una herramienta que recopila métricas de un host de máquina virtual y se las proporciona a las máquinas virtuales que se ejecutan en ese host.

INTENCIÓN

El artículo describe cómo instalar y configurar vhostmd para habilitar la recopilación de métricas.

ESFUERZO

Se tardan aproximadamente 15 minutos en leer el artículo.

OBJETIVO

Hacer que la herramienta vhostmd se ejecute y recopile métricas.

REQUISITOS
  • Una instancia en ejecución de SUSE Linux Micro

  • Máquinas virtuales que se ejecuten en esa instancia

1 ¿Qué es un daemon de métricas de host virtual o vhostmd?

vhostmd es un daemon que se ejecuta en un entorno host y proporciona un canal de comunicación de métricas entre el host y las máquinas invitadas. El daemon proporciona al administrador de la máquina virtual invitada un conjunto limitado de datos de uso de recursos del host (normalmente en modo de solo lectura), para ayudar a analizar los problemas con esa máquina invitada.

vhostdmd escribe métricas periódicamente en un disco. Las métricas que se deben recopilar, junto con la frecuencia y la ubicación de almacenamiento de los datos, son parámetros configurables.

2 Obtención de vhostmd

Por defecto, vhostmd no se incluye en las imágenes entregadas. Por lo tanto, debe instalarlo antes de usarlo:

  1. Para instalar el daemon, ejecute:

              > 
              sudo
              transactional-update pkg install vhostmd
  2. Rearranque el sistema para cambiar a la nueva instantánea.

  3. Para iniciar el daemon, ejecute:

              > 
              sudo
              vhostmd
              OPTIONS

    Puede utilizar las siguientes opciones para modificar el comportamiento del comando:

    • -v: para obtener resultados detallados.

    • --connect URI: para pasar el URI del daemon libvirt a fin de establecer conexiones con el daemon.

    • -f FILE_PATH: para pasar un archivo de configuración alternativo. Para obtener detalles sobre la configuración, consulte la Sección 4, “Configuración de vhostmd.

    • -p PID_FILE: para crear un archivo PID alternativo. El valor por defecto es /var/run/vhostmd.pid.

    • -u USERNAME: para usar un usuario sin privilegios.

También puede ejecutar vhostmd como servicio de systemd:

      > 
      sudo
      systemctl enable --now vhostmd
Nota
Nota: es necesario reiniciar el servicio después de cambiar la configuración

Siempre que realice cambios en la configuración como se describe en la Sección 4, “Configuración de vhostmd, reinicie el servicio vhostmd de la siguiente manera:

        > 
        sudo
        systemctl restart vhostmd

3 Suministro de métricas recopiladas a una máquina virtual

Puede hacer que las métricas recopiladas sean visibles para máquinas virtuales concretas a fin de usarlas más tarde o, simplemente, para su lectura. Hay dos formas de hacerlo. Puede conectar el disco de métricas mediante el comando virsh o ajustar la configuración del dominio.

Para conectar el disco de métricas en modo de solo lectura, ejecute virsh de la siguiente manera:

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

Para cambiar la configuración del dominio, siga estos pasos:

  1. Ejecute el comando

              > 
              sudo
              virsh edit
       GUEST_NAME
  2. Actualice la sección <devices> añadiendo el siguiente fragmento:

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

    Ajuste los valores dev y dbus del destino.

4 Configuración de vhostmd

El archivo de configuración por defecto de vhostmd se encuentra en /etc/vhostmd/vhostmd.conf. Puede ajustar este archivo según sus necesidades. Se trata de un archivo XML que debe incluir el elemento <vhostmd>. <vhostmd> incluye <globals> y <metrics>, que se describen en las secciones siguientes. Utilice el archivo de configuración por defecto como referencia para los cambios personalizados.

4.1 El elemento <globals>

El elemento <globals> define la ubicación de almacenamiento en disco, la frecuencia de actualización de los datos y el método de transporte de datos a las máquinas invitadas. Contiene los siguientes elementos:

<disk>

El elemento se usa para definir la vía del disco donde se almacenan los datos de métricas y también el tamaño del disco. Puede contener los siguientes elementos:

  • <name>: define el nombre de la máquina virtual

  • <path>: es una vía absoluta donde se monta el disco

  • <size>: mediante el atributo unit, especifique el tamaño máximo de las métricas. Utilice k para KB y m para MB.

<update_period>

Define la frecuencia con la que se actualizan las métricas. El valor está en segundos.

<transport>

Especifica cómo se transportan las métricas a las máquinas invitadas. En el caso de SUSE Linux Micro, utilice el valor por defecto de virtio.

<virtio>

Aquí puede utilizar los siguientes elementos:

  • <max_channels>: especifica el número máximo que virtion puede utilizar entre los sistemas host e invitado.

  • <expiration_time>: define el intervalo de tiempo después del cual se cierra un canal de virtio de una máquina virtual cuando está inactivo. El valor por defecto es tres veces el valor de <update_period>.

4.2 El elemento <metrics>

El elemento <metrics> contiene una lista de métricas que se deben recopilar. Cada métrica tiene dos atributos:

type

Describe el tipo de datos del valor de métrica. Los valores posibles son los siguientes: int32, uint32, int64, uint64, real32, real64, string, group y xml.

Use group si una métrica devuelve varios valores. xml es un formato versátil si la métrica devuelve un XML válido.

context

Define dónde se recopila la métrica en particular. Los valores posibles son:

  • host para las métricas recopiladas en la máquina host

  • vm para las métricas recopiladas en la máquina invitada

Cada métrica debe tener un nombre exclusivo y un comando que se ejecute para registrar las métricas. La siguiente lista describe los posibles elementos para definir una métrica:

<name>

Define el nombre exclusivo de la variable. Si la métrica se recopila en una máquina virtual, puede utilizar los siguientes valores: NAME, ID y UUID. A continuación, esos valores se sustituyen por los valores reales de la máquina virtual que se está comprobando.

<action>

Especifica un comando o guion que se debe ejecutar para recopilar una métrica. Por ejemplo, para recopilar el tiempo total de la CPU, utilice:

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

Si una acción devuelve un grupo de valores, defina variables que almacenen datos concretos. El elemento debe tener definidos los siguientes atributos:

  • name: especifica el nombre de una variable

  • type: especifica el tipo de datos de la variable

5 ¿Cómo se almacenan las métricas recopiladas?

vhostmd almacena los datos de métricas recopilados en el disco de métricas en formato sin procesar. El disco contiene un encabezado de 32 bytes seguido de los datos de las métricas en formato XML.

5.1 Formato XML de las métricas

Los resultados de las métricas recopiladas son similares a la definición de métricas configurada. El elemento <metric> puede tener los siguientes atributos:

type

Indica el tipo de datos de la métrica en particular, por ejemplo, string.

context

Identifica si la métrica se recopila en el host (host) o en una máquina virtual (vm).

id

Se utiliza en el contexto de vm. Indica el número de ID de la máquina virtual.

uuid

Se utiliza en el contexto de vm. Transmite el identificador único universal de la máquina virtual.

El elemento <metric> contiene los siguientes elementos:

<name>

Indica el nombre de la métrica.

<value>

Indica el valor real de la métrica.

Nota
Nota: en una métrica no hay valores múltiples

Si se configura el tipo de métrica group, cada <variable> configurada se almacena como una métrica independiente en el resultado. Por ejemplo, el siguiente fragmento de configuración:

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

Da como resultado el siguiente fragmento:

<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>