Hyper-V Este documento describe la funcionalidad HyperV del discovery 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. Puede ejecutarse en modo remoto generando agentes y módulos para su uso posterior. Matriz de compatibilidad Sistemas donde se ha probado Windows Server (Hyper‑V) 2022 junto con Pandora FMS Server en  Linux  ejecutando el plugin en  modo remoto Sistemas donde funciona Modo remoto:  cualquier sistema  Linux con conectividad hacia el host Hyper‑V y dependencias del plugin. 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 } ] } ]   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/ Una vez cargado, se podrán monitorizar entornos de Hyper-V creando tareas de  Discovery  desde la sección  Management > Discovery > Aplications . 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 > Configuration > Credential store  una nueva credencial.  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. 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: