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

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.

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

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:

 

Con el token Scan VM se crean:

 

Con el token Scan Networking se crean:

 

Con el token Scan Storage se crean:

 

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

Agentes.png

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

hyper v.png

detallados hyperV.png

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

modulos windows.png

detallados windows.png

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

modulos ubuntu.png

detallados ubuntu.png