# Hyper-V
# Introducción
Los entornos virtuales tienen gran importancia en las arquitecturas IT de todas las empresas y por ello su monitorización es esencial. Pandora FMS Hyper-V Monitoring Plugin permite tener bajo control la arquitectura virtual Hyper-V de forma sencilla.
Se ejecutará como plugin de agente y creará módulos con información específica del entorno de virtualización de Hyper-V en la máquina Host donde se haya lanzado, y un agente por cada máquina virtual que obtenga con varios módulos con información de su rendimiento.
# Histórico de cambios
Fecha | Autor | Cambio | Versión |
08/10/13 | Mario P. | Primera version del plugin | V1r1 |
14/10/13 | S. Lerena | Revisión global | V1r1.1 |
28/07/20 | José A. Almendros
A. Kevin Rojas | Segunda version del plugin | V2r1 |
# Matriz de compatibilidad
Sistemas donde se ha probado | Hyper-V 2016
Hyper-V 2012 |
Sistemas donde debería funcionar | Hyper-V 2008 |
# Requisitos para la ejecución del plugin
Los requisitos para el correcto funcionamiento del plugin son los siguientes:
\- Instalación del agente de Pandora FMS.
\- Consola de Powershell para ejecutar el plugin. Se encuentra instalada por defecto en sistemas Windows Server 2008 R2 y superiores.
\- Permisos del sistema para el usuario que ejecuta el agente de Pandora FMS como “Administrador Local”
\- Tener habilitado WMI y contadores de rendimiento, así como la Administración de Hyper-V remoto mediante cmdlets de powershell (Get-VM, Get-VMMemory, Get-VMVMHardDiskDrive, Measure-VM…).
\- Política de ejecución de scripts de Powershell establecia como RemoteSigned o inferior:
```
Set-ExecutionPolicy RemoteSigned
```
\- Habilitar el token ResourceMetering en las máquinas virtuales
```
Get-VM | Enable-VMResourceMetering
```
# Módulos disponibles
Los módulos disponibles para cada elemento de la arquitectura Hyper-V son los indicados a continuación. Algunos de ellos tienen umbrales preconfigurados que pueden ser modificados directamente en la consola de Pandora FMS:
**5.1 Módulos para agente local**
\- % Mem Use:
Porcentaje de uso de memoria RAM del equipo Host en uso.
\- CPU Use:
Porcentaje de uso de CPU del equipo Host.
\- Avail Dynamic Memory Balancer\*:
Cantidad total de memoria física del host en Bytes, disponible para intercambio de
Memoria Dinámica.
\- FreeDisk (Volume\_Name):
Porcentaje de disco libre en los diferentes Volúmenes del Host. Se añadirán tantos módulos
como unidades haya en el equipo.
\- Disk Read Bytes (Volume\_Name)\*:
Bytes/sec leídos por cada Disco Lógico.
\- Disk Write Bytes (Volume\_Name)\*:
Bytes/sec escritos por cada Disco Lógico.
\- Disk (Volume\_Name) Health:
String con el Health de los volúmenes locales. Los umbrales están configurados para pasar
a warning si el Health es “Warning” y a crítico si el Health es “Unknown”
\- File size of vdisk (VDisk\_Name) on VM (VM\_Name):
Tamaño del archivo de los discos virtuales creados en las máquinas virtuales.
\- Total VMs:
Número total de todas las máquinas virtuales creadas en el equipo Host.
\- Total VMs State Running:
Número de máquinas virtuales en estado actual Running.
\- Total VMs State Off:
Número de máquinas virtuales en estado actual Off.
\- Total VMs State Saved:
Número de máquinas virtuales en estado actual Saved.
\- Total VMs State Paused:
Número de máquinas virtuales en estado actual Paused.
\- Total VMs State Other:
Número de máquinas virtuales en un estado actual que no sea Running, Off, Saved o Paused.
\- Total Assigned Memory:
Memoria total asignada a todas las máquinas virtuales (en GB).
\- Total Assigned Memory %:
Porcentaje de Memoria total asignada a todas las máquinas virtuales respecto a la memoria
total del host.
\- Total Demand Memory:
Memoria total demandada por todas las máquinas virtuales (en GB).
\- Total Demand Memory %:
% de Memoria total demandada por todas las máquinas virtuales respecto a la memoria
total del host.
\- Total VMs Memory Available:
Porcentaje de Memoria total disponible para el entorno de virtualización ((Total Demand
Memory / Total Assigned Memory) \*100).
\- Bytes Sent (Interfaz):
Número de bytes/sec enviados por cada interfaz de red.
\- Bytes Received (Interfaz):
Número de bytes/sec recibidos en cada interfaz de red.
\- Packets Received:
Número de paquetes recibidos por la interfaz de red en cada intervalo (Pack/sec)
\*Estos módulos de obtienen mediante contadores de rendimiento, cuyo nombre es dependiente
del idioma del equipo. Se ha añadido traducción para equipos en Inglés y Castellano.
**5.2 Módulos para agentes del tipo máquina virtual**
\- Status:
Estado de la conexión. El módulo entrará a crítico si la máquina virtual está apagada. No se
actualizarán o crearán el resto de módulos si este está en crítico.
\- CPU\_Usage:
Porcentaje de CPU Usada en la máquina virtual.
\- VM\_Uptime:
Uptime de la máquina virtual. El valor se calcula en Timeticks. Puede hacerse que el valor
aparezca como Días, Horas, Minutos si se cambia la unidad a Timeticks en la configuración
del módulo desde la consola web.
\- Mem Dynamic Use:
Porcentaje de memoria dinámica usada por la máquina virtual, este módulo solo se generará
si la memoria dinámica se encuentra habilitada en la configuración de la Máquina Virtual.
\- Total Disk IO:
Bytes de datos leídos + Bytes de datos de escritura en el disco de la máquina virtual.
\- % Disk IO Read:
% de las operaciones en disco destinadas a la escritura respecto al total.
\- % Disk IO Write:
% de las operaciones en disco destinadas a la lectura respecto al total.
\- Disk IO Read Bytes/sec:
Bytes/sec leídos en disco de la máquina virtual.
\- Disk IO Write Bytes/sec:
Bytes/sec escritos en disco de la máquina virtual.
\- % Disk used:
Porcentaje de disco virtual usado por la máquina virtual (se creará un módulo por cada disco
que obtenga la máquina virtual)
\- Bytes Send/sec:
Bytes/sec enviados por el adaptador de red configurado en la máquina virtual.
\- Bytes Received/sec:
Bytes/sec recibidos por el adaptador de red configurado en la máquina virtual.
\- Number of Snapshots:
Número de snapshots que existen en la máquina virtual.
# Instalación del plugin
Se explicará la forma de ejecutar el plugin distribuido mediante colecciones desde la consola de Pandora FMS. De esta forma será posible desplegarlo en varios servidores al mismo tiempo en caso de tener más de un servidor de Hyper-V mediante el sistema de políticas.
Primero, crearemos la colección desde la sección Configuration > Collections con el nombre “hyperv”:
[](https://pandorafms.com/guides/public/uploads/images/gallery/2022-01/image-1643128487114.png)
Después, pulsaremos en el botón “Upload Files” para subir a la colección el archivo ejecutable del plugin y su fichero de configuración, previamente configurado:
[](https://pandorafms.com/guides/public/uploads/images/gallery/2022-01/image-1643128616277.png)
En la sección Data de la colección, pulsaremos en “Create File again” para que se regenere la colección con los archivos subidos. Si necesitamos editar el fichero de configuración, podemos hacerlo desde la sección Files y después habría que regenerar el fichero de la colección de nuevo:
[](https://pandorafms.com/guides/public/uploads/images/gallery/2022-01/image-1643128661105.png)
Ahora agregaremos la colección al agente del servidor de Hyper-V en el que queremos lanzar el plugin, pulsando en el botón del “+” en la colección de “hyperv” en la sección de Collection del modo administración (o bien añadiendo la línea “file\_collection hyperv” al final del fichero de configuración del agente):
[](https://pandorafms.com/guides/public/uploads/images/gallery/2022-01/image-1643128708630.png)
Por último añadiremos la línea de ejecución del plugin en el fichero de configuración del
agente:
```
module_plugin "%ProgramFiles%\pandora_agent\collections\hyperv\hyperV.exe" -c "%ProgramFiles%\pandora_agent\collections\hyperv\HyperV-config.txt"
```
En caso de que no hayamos utilizado colecciones para desplegar el plugin y lo hayamos copiado en el equipo del servidor a mano, simplemente habría que añadir la línea anterior con las rutas correctas del fichero ejecutable y el conf.
# Parametrización del archivo de configuración
Para que el plugin funcione correctamente debe editarse el archivo de configuración con las características del entorno.
Este es un ejemplo del mismo:
```
# VM Agent Configuration
ServerIP localhost
Interval 300
Agent_Version 7.0NG.748
Group HyperV
File_Path C:\Program Files\pandora_agent\temp\
Tentacle#Options
# VM Module Configuration (if you dont want to use any module NO or delete
it of the list)
VM#ALL
VM_Uptime OK
VM_Dynamic_Memory OK
VM_I/O_Disk OK
VM_I/O_Network NO
VM_VDisk OK
VM_Snapshot OK
# Host Module Configuration
HS#ALL
HS_Dynamic_Memory OK
HS_I/O_Disk OK
HS_I/O_Network OK
HS_Mem OK
HS_CPU OK
HS_Status OK
HS_VDisk_Size NO
HS_FreeDisk OK
HS_Disk_Health OK
HS_VMs_Mem OK
```
Server IP: En este token debemos configurar la IP del servidor a la que está apuntando
el agente, y se utilizará para el envío de los XML que se forman con cada una de las máquinas
virtuales.
Interval: Indicaremos el intervalo que van a tener los agentes de las máquinas virtuales,
es recomendable indicar un intervalo proporcionar al del agente principal. Por ejemplo, si
ese agente tiene un intervalo de 300, indicaríamos 300, 600, 900….
Agent\_version: Indicaremos la versión del agente principal de Pandora FMS para que se
muestre en la consola en los agentes de las máquinas virtuales. Es un dato meramente
descriptivo.
Group: Se configurará el grupo al que queramos que pertenezcan nuestros agentes de
máquinas virtuales. Hay que asegurarse de que este grupo esté creado previamente en la
consola de Pandora FMS.
File\_Path: La ruta donde queramos que se guarden de forma temporal los XML de los
diferentes agentes que se formarán con cada máquina virtual, y que después se enviarán al
servidor mediante el protocolo tentacle. La ruta debe existir en el equipo, admite espacios
y es necesario introducirla sin ningún tipo de comillas y acabando en “\\”.
Tentacle\_Options: En este token indicaremos las opciones de envío de tentacle. En el
caso de que no se necesite ninguna, no se indicará nada tal como está en el archivo del
ejemplo. Estas son las opciones disponibles:
-c Habilita SSL sin certificado de cliente
-e cert Archivo de certificado OpenSSL. Habilita SSL.
-f ca Verifica que el certificado está firmado por el ca.
-k key Archivo de clave privada OpenSSL
-p port Puerto del servidor (41121 por defecto)
-x pwd Contraseña del servidor
-y proxy Servidor proxy (http://user:password@address:port)
**7.1 Módulos de Máquinas virtuales**
VM\_ALL: Si tenemos el token de la forma indicada (VM\_ALL) enviará la información de todos los módulos disponibles de la sección de máquinas virtuales. Si no queremos que se envíen todos y vamos a configurar cada grupo de módulos independientemente con el resto de tokens, debemos eliminar este token o falsearlo (VM#ALL)
VM\_Uptime: Mediante un OK, habilitaremos que se envíe el siguiente módulo/grupo de módulos:
\- VM\_Uptime
VM\_Dinamic\_Memory: Mediante un OK, habilitaremos que se envíe el siguiente módulo/grupo de módulos:
\- %Mem Dynamic Use
VM\_I/O\_Disk: Mediante un OK, habilitaremos que se envíe el siguiente módulo/grupo de módulos:
\- Total Disk IO
\- %Disk IO Read
\- %Disk IO Write
\- Disk IO Read Bytes/sec
\- Disk IO Write Bytes/sec
VM\_I/O\_Network: Mediante un OK, habilitaremos que se envíe el siguiente módulo/grupo de módulos:
\- Bytes Send/sec
\- Bytes Received/sec
VM\_VDisk: Mediante un OK, habilitaremos que se envíe el siguiente módulo/grupo de módulos:
\- % Disk used
VM\_Snapshot: Mediante un OK, habilitaremos que se envíe el siguiente módulo/grupo de módulos:
\- Number of snapshots
**7.2 Módulos del Hipervisor**
HS\_ALL: Si tenemos el token de la forma indicada (HS\_ALL) enviará la información de todos los módulos disponibles de la sección del hipervisor Host. Si no queremos que se envíen todos y vamos a configurar cada grupo de módulos independientemente con el resto de tokens, debemos eliminar este token o falsearlo (HS#ALL)
HS\_Dynamic\_Memory: Mediante un OK, habilitaremos que se envíe el siguiente módulo/grupo de módulos:
\- Avail Dynamic Memory Balancer
HS\_I/O\_Disk: Mediante un OK, habilitaremos que se envíe el siguiente módulo/grupo de módulos:
\- Disk Read Bytes (Volume\_Name)
\- Disk Write Bytes (Volume\_Name)
HS\_I/O\_Network: Mediante un OK, habilitaremos que se envíe el siguiente módulo/grupo de módulos:
\- Bytes Sent (Interfaz)
\- Bytes Received (Interfaz)HS\_Mem: Mediante un OK, habilitaremos que se envíe el siguiente módulo/grupo de módulos:
\- % Mem Use
HS\_CPU: Mediante un OK, habilitaremos que se envíe el siguiente módulo/grupo de módulos:
\- CPU Use
HS\_Status: Mediante un OK, habilitaremos que se envíe el siguiente módulo/grupo de módulos:
\- Total VMs
\- Total VMs State Running
\- Total VMs State Off
\- Total VMs State Saved
\- Total VMs State Paused
\- Total VMs State Other
HS\_VDisk\_Size: Mediante un OK, habilitaremos que se envíe el siguiente módulo/grupo de módulos:
\- File size of vdisk (VDisk\_Name) on VM (VM\_Name)
HS\_FreeDisk: Mediante un OK, habilitaremos que se envíe el siguiente módulo/grupo de módulos:
\- FreeDisk (Volume\_Name)
HS\_Disk\_Health: Mediante un OK, habilitaremos que se envíe el siguiente módulo/grupo de módulos:
\- Disk (Volume\_Name) Health
HS\_VMs\_Mem: Mediante un OK, habilitaremos que se envíe el siguiente módulo/grupo de módulos:
\- Total Assigned Memory
\- Total Assigned Memory (%)
\- Total Demand Memory
\- Total Demand Memory (%)
\- Total VMs Memory Available (%)
# Capturas de configuración y resultados
Configuración en la máquina del agente:
Nosotros hemos desplegado el plugin mediante el sistema de colecciones, por lo que el fichero ejecutable y el de configuración se encontrarán en la ruta del directorio collections del agente de Pandora FMS:
[](https://pandorafms.com/guides/public/uploads/images/gallery/2022-01/image-1643129139064.png)
Los XML de los agentes de máquinas virtuales en los que falle su envío al servidor mediante tentacle se encontrarán en la ruta indicada en el FilePath del archivo de configuración.
Una vez realizada correctamente la configuración del plugin, este reportará cada intervalo los datos y creará en la primera ejecución un agente por cada máquina virtual instalada en el equipo del Host, así como los módulos correspondientes al Hipervisor en el agente en el que se está lanzando el plugin.
Las máquinas virtuales que se encuentren apagadas solo reportarán el módulo de Status.
Hasta que no se enciendan estas máquinas virtuales, no reportarán todos los módulos que estén habilitados.
Podemos crear un nuevo grupo llamado Hyper-V y en el archivo de configuración del plugin
indicar este nombre para que se creen todos los nuevos agentes en este grupo.
Captura de vista de agente Hipervisor:
[](https://pandorafms.com/guides/public/uploads/images/gallery/2022-01/image-1643129233687.png)
Captura de vista de agente de máquina virtual:
[](https://pandorafms.com/guides/public/uploads/images/gallery/2022-01/image-1643129269494.png)