Hyper-V Windows Este documento describe la funcionalidad HyperV.exe para windows de PandoraFMS. 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. Se ejecuta en modo local en el propio servidor Hyper‑V, generando un JSON con la definición de agentes y módulos para su uso posterior. Matriz de compatibilidad Sistemas donde se ha probado Windows Server 2022 (Hyper‑V) ejecutando el plugin en modo local Sistemas donde funciona Modo local:   Windows Server  con rol  Hyper‑V (y PowerShell) donde se ejecute el .exe / script 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 --help Mensaje con los parametros --confg Ruta al archivo de configuración --execute_local Parametro para indicar que se va a ejecutar desde el propio host de hyperV y no desde el servidor de Pandora. --save_file Parámetro el cual necesita de --execute_local pra poderse usar. Este parametro nos guardará la salida del JSON en un archivo .txt 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 } ] } ]   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  si hay prefijo configurado, o   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  si hay prefijo configurado, o   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_  (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: Los módulos del host hypervisor serán estos: Para una MV windows podemos ver como se crean los siguientes módulos: Para una MV Ubuntu podemos ver los siguientes módulos: