# Hyper-V

# Introducción

El plugin de **Hyper‑V** para Pandora FMS descubre el host Hyper‑V y sus máquinas virtuales, recopilando métricas de estado y rendimiento (CPU, memoria, red y almacenamiento) para crear los módulos de monitorización correspondientes. Puede ejecutarse en modo remoto generando agentes y módulos para su uso posterior.

# Matriz de compatibilidad

<table border="1" id="bkmrk-sistemas-donde-se-ha-1" style="border-collapse: collapse; width: 100%;"><colgroup><col style="width: 28.7038%;"></col><col style="width: 71.4198%;"></col></colgroup><tbody><tr><td>**Sistemas donde se ha probado**</td><td>Windows Server (Hyper‑V) 2022 junto con Pandora FMS Server en **Linux** ejecutando el plugin en **modo remoto**</td></tr><tr><td>**Sistemas donde funciona**</td><td>**Modo remoto:** cualquier sistema **Linux** con conectividad hacia el host Hyper‑V y dependencias del plugin.</td></tr></tbody></table>

# Prerrequisitos

- Conectividad a Hyper-V desde Pandora

El plugin es un binario que contiene las dependias empaquetadas por lo que no es necesaria la instalación de ningún tipo de dependencia para su uso.

- Permisos

**Configurar WinRM**  
`Enable-PSRemoting -Force -SkipNetworkProfileCheck`  
`winrm quickconfig -force`  
`winrm set winrm/config/service/auth '@{Basic="true"}'`  
`winrm set winrm/config/service '@{AllowUnencrypted="true"}'`  
`winrm set winrm/config/service '@{MaxTimeoutms="600000"}'`

**Permitir http 401**  
`reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" /v LocalAccountTokenFilterPolicy /t REG_DWORD /d 1 /f`

**Permitir Firewall WinRM**  
`New-NetFirewallRule -DisplayName "WinRM HTTP In" -Direction Inbound -Protocol TCP -LocalPort 5985 -Action Allow -Profile Any -Force`

**Reiniciar servicios**  
`Restart-Service WinRM -Force`  
`Start-Service vmms`

**Comprobar todo**  
`winrm get winrm/config/service/auth`  
`Get-VM`

- Instalar el servicio **hv-kvp-daemon** en las VMs con sistema linux para que reporten todos los módulos.

# Parámetros y configuración

**Parámetros**

<table border="1" id="bkmrk---help-mensaje-con-l" style="border-collapse: collapse; width: 100%; height: 186.375px;"><colgroup><col style="width: 50%;"></col><col style="width: 50%;"></col></colgroup><tbody><tr style="height: 29.7969px;"><td style="height: 29.7969px;">--help</td><td style="height: 29.7969px;">Mensaje con los parametros</td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;">--confg</td><td style="height: 29.7969px;">Ruta al archivo de configuración</td></tr><tr style="height: 46.5938px;"><td style="height: 46.5938px;">--execute\_local</td><td style="height: 46.5938px;">Parametro para indicar que se va a ejecutar desde el propio host de hyperV y no desde el servidor de Pandora.</td></tr><tr style="height: 80.1875px;"><td style="height: 80.1875px;">--save\_file</td><td style="height: 80.1875px;">Parámetro el cual necesita de --execute\_local pra poderse usar.  
Este parametro nos guardará la salida del JSON en un archivo `.txt`</td></tr></tbody></table>

**Archivo de configuración (--conf)**

```
agent_prefix = HyperV
agents_group_id = 2
scan_vm = 1
scan_networking = 1
scan_storage = 0
scan_hypervisor = 1
```

# Ejecución manual

El formato de la ejecución del plugin es el siguiente:

```
.\pandora_hyperV.exe --conf < ruta del .conf > --execute_local
```

Por ejemplo:

```
.\pandora_hyperV.exe --conf pandora_hyperv.conf --execute_local
```

Ejemplo obteniendo el .txt con el JSON

```
.\pandora_hyperV.exe --conf pandora_hyperv.conf --execute_local --save_file
```

Ejemplo de salida del JSON:

```
[
  {
    "agent_data": {
      "agent_name": "HyperV WIN-BKM50GV4DF9",
      "agent_alias": "HyperV WIN-BKM50GV4DF9",
      "os": "Windows",
      "os_version": "Windows Server",
      "interval": 300,
      "id_group": 2,
      "address": "WIN-BKM50GV4DF9",
      "description": "Hyper-V host WIN-BKM50GV4DF9 (WIN-BKM50GV4DF9)"
    },
    "module_data": [
      {
        "name": "HyperV Local Status",
        "type": "generic_proc",
        "data": 1,
        "description": "Hyper-V plugin running locally (1=OK, 0=Fail)"
      }
    ]
  },
  {
    "agent_data": {
      "agent_name": "HyperV ubuntu server",
      "agent_alias": "HyperV ubuntu server",
      "os": "Windows",
      "os_version": "Windows",
      "interval": 300,
      "id_group": 2,
      "address": "WIN-BKM50GV4DF9",
      "description": "VM ubuntu server on Hyper-V host WIN-BKM50GV4DF9"
    },
    "module_data": [
      {
        "name": "State",
        "type": "generic_data",
        "data": 3,
        "description": "VM state: 2=Running 3=Off 32768=Paused 32769=Saved 32770=Starting 32771=Stopping 32772=Pausing 32773=Resuming 32774=Saving 32775=FastSaved 0=Unknown. Current: Off",
        "min_critical": 3,
        "max_critical": 3.1
      }
    ]
  }
]
```

# Discovery

Este plugin puede integrarse con el *Discovery* de Pandora FMS.

Para ello se debe cargar el paquete ".disco" que puede descargar desde la librería de Pandora FMS:

[https://pandorafms.com/library/](https://pandorafms.com/library/)

[![image.png](https://pandorafms.com/guides/public/uploads/images/gallery/2026-04/scaled-1680-/6hZimage.png)](https://pandorafms.com/guides/public/uploads/images/gallery/2026-04/6hZimage.png)

Una vez cargado, se podrán monitorizar entornos de Hyper-V creando tareas de *Discovery* desde la sección *Management &gt; Discovery &gt; Aplications*.

[![image.png](https://pandorafms.com/guides/public/uploads/images/gallery/2026-04/scaled-1680-/FNeimage.png)](https://pandorafms.com/guides/public/uploads/images/gallery/2026-04/FNeimage.png)

Para cada tarea se solicitarán los siguientes parámetros mínimos:

- **Hyper-V IP:** Dirección IP del host con Hyper-V.
- **Credenciales:** Usuario y contraseña de tipo Custom, para ello necesitaremos crear en el apartado *Management &gt; Configuration &gt; Credential store* una nueva credencial.

[![image.png](https://pandorafms.com/guides/public/uploads/images/gallery/2026-04/scaled-1680-/Fnaimage.png)](https://pandorafms.com/guides/public/uploads/images/gallery/2026-04/Fnaimage.png)

También se podrá ajustar la configuración de la tarea para personalizar la monitorización deseada:

- **Scan Hypervisor** Creará un agente con módulos del Hosts hypervisor.
- **Scan** **VM** Realizará la búsqueda para crear distintos agentes según las distintas MV existentes.
- **Scan** **Networking** Creará módulos para los adaptadores de red de las distintas MV.
- **Scan Storage** Creará módulos para los distintos discos de almacenamiento de las MV.

[![image.png](https://pandorafms.com/guides/public/uploads/images/gallery/2026-04/scaled-1680-/PnMimage.png)](https://pandorafms.com/guides/public/uploads/images/gallery/2026-04/PnMimage.png)

# Agentes y módulos generados por el plugin

Si está activado **Scan hypervisor**:

- **Agente creado:** 1 agente para el **host Hyper‑V** (el hipervisor), con nombre del estilo `HyperV <ComputerName>` si hay prefijo configurado, o `<ComputerName>` si no lo hay.
- **Módulos creados (host):**
    - **HyperV Connection Status** (modo remoto) / **HyperV Local Status** (modo local): módulo de estado de ejecución/conectividad del descubrimiento.
    - **Host Memory Total (GB)**: memoria total del host.
    - **Host Memory Free (GB)**: memoria libre del host.
    - **Service Status:** estado de la mv.

Con el token **Scan VM** se crean:

- **Agentes creados:** **1 agente por cada VM** encontrada en el host Hyper‑V (p. ej. `HyperV <NombreVM>` si hay prefijo configurado, o `<NombreVM>` si no).
- **Módulos creados (por VM):**
    - **State**: estado numérico de la VM.
    - **Status**: estado operativo/reportado por Hyper‑V.
    - **Generation**: generación de la VM.
    - **CPU usage percentage**: uso de CPU en porcentaje.
    - **Memory**: métricas de memoria asignada/consumo.
    - **Uptime**: tiempo desde que se encendió la VM.

Con el token **Scan Networking** se crean:

- **Agentes creados:** no crea agentes nuevos; **añade módulos** a los **agentes de las VMs** ya descubiertas.
- **Módulos creados (por VM y por adaptador de red):**
    - Módulos de **estado/conectividad** del adaptador (conectado/no conectado).
    - Módulos con información del **Switch virtual** asociado (vSwitch).
    - Módulos con la **MAC Address** del adaptador.
    - Módulos de **status** del adaptador reportado por Hyper‑V.
- **Caso de varios adaptadores con el mismo nombre:** si una VM tiene 2+ NICs con el mismo `Name` (p. ej. “Adaptador de red”), el plugin crea los módulos con sufijos para evitar sobrescritura: `..._1`, `..._2`, etc.; si el nombre es único, no añade numeración.

Con el token **Scan Storage** se crean:

- **Agentes creados:** no crea agentes nuevos; **añade módulos de almacenamiento** a los **agentes de las VMs** (y/o al agente del hypervisor si vuestra configuración incluye métricas del host).
- **Módulos creados (por VM):**
    - Módulos relacionados con **discos/volúmenes** reportados para la VM (tamaño/uso/estado según los datos disponibles).
    - Cuando se reporta uso por letra de unidad, los módulos se nombran con el patrón **`DiskUsed_<LETRA>`** (por ejemplo: `DiskUsed_C`, `DiskUsed_D`, …) en lugar de nombres tipo “Disk C Used GB”.
- **Objetivo:** monitorizar consumo de disco y detectar falta de espacio/crecimiento anómalo en las VMs.

Un ejemplo de Agentes creados con el plugin sería este:

[![Agentes.png](https://pandorafms.com/guides/public/uploads/images/gallery/2026-04/scaled-1680-/agentes.png)](https://pandorafms.com/guides/public/uploads/images/gallery/2026-04/agentes.png)

Los módulos del host hypervisor serán estos:

[![hyper v.png](https://pandorafms.com/guides/public/uploads/images/gallery/2026-04/scaled-1680-/hyper-v.png)](https://pandorafms.com/guides/public/uploads/images/gallery/2026-04/hyper-v.png)

[![detallados hyperV.png](https://pandorafms.com/guides/public/uploads/images/gallery/2026-04/scaled-1680-/detallados-hyperv.png)](https://pandorafms.com/guides/public/uploads/images/gallery/2026-04/detallados-hyperv.png)

Para una MV windows podemos ver como se crean los siguientes módulos:

[![modulos windows.png](https://pandorafms.com/guides/public/uploads/images/gallery/2026-04/scaled-1680-/modulos-windows.png)](https://pandorafms.com/guides/public/uploads/images/gallery/2026-04/modulos-windows.png)

[![detallados windows.png](https://pandorafms.com/guides/public/uploads/images/gallery/2026-04/scaled-1680-/detallados-windows.png)](https://pandorafms.com/guides/public/uploads/images/gallery/2026-04/detallados-windows.png)

Para una MV Ubuntu podemos ver los siguientes módulos:

[![modulos ubuntu.png](https://pandorafms.com/guides/public/uploads/images/gallery/2026-04/scaled-1680-/modulos-ubuntu.png)](https://pandorafms.com/guides/public/uploads/images/gallery/2026-04/modulos-ubuntu.png)

[![detallados ubuntu.png](https://pandorafms.com/guides/public/uploads/images/gallery/2026-04/scaled-1680-/detallados-ubuntu.png)](https://pandorafms.com/guides/public/uploads/images/gallery/2026-04/detallados-ubuntu.png)