Pandora FMS community forums

Full Version: Problema con monitorización cpu entorno Windows
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Buenas a todos,

Tengo un servidor windows 2012 en un entorno Vmware. La máquina virtual tiene 12 Cores. He instalado el agente Pandora y en determinadas ocasiones me aparece un warning por uso de CPU sin embargo, cuando miro el monitor de rendimiento de la máquina virtual sólo una cpu está al 100% mientras que el resto apenas sube del 10%. Todo parece indicar a que el agente en la consulta WMI no está tomando el porcentaje total de uso de CPU.

A alguien más le sucede esto? Alguna idea?

Gracias!!
(08-31-2018, 01:22 PM)Eritea Wrote: [ -> ]Buenas a todos,

Tengo un servidor windows 2012 en un entorno Vmware. La máquina virtual tiene 12 Cores. He instalado el agente Pandora y en determinadas ocasiones me aparece un warning por uso de CPU sin embargo, cuando miro el monitor de rendimiento de la máquina virtual sólo una cpu está al 100% mientras que el resto apenas sube del 10%. Todo parece indicar a que el agente en la consulta WMI no está tomando el porcentaje total de uso de CPU.

A alguien más le sucede esto? Alguna idea?

Gracias!!

Buenos días Eritea,

Nos puedes pasar la sintaxis del módulo en que te pasa este problema para poder echarle un vistazo y poder darte una solución.

Muchas gracias por adelantado.

Alberto
Buenas,

Gracias por contestar.

El módulo utiliza WMI

###############################################
# Module Definition
# Check online documentation and module library at http://pandorafms.org
# =================

# CPU Load using WMI 
module_begin
module_name CPU Load
module_type generic_data
module_wmiquery SELECT LoadPercentage FROM Win32_Processor
module_wmicolumn LoadPercentage
module_max 100
module_min 0
module_description User CPU Usage (%)
module_min_warning 70
module_max_warning 90
module_min_critical 91
module_max_critical 100
module_unit %
module_group System
module_end
(09-04-2018, 12:09 PM)Eritea Wrote: [ -> ]Buenas,

Gracias por contestar.

El módulo utiliza WMI

###############################################
# Module Definition
# Check online documentation and module library at http://pandorafms.org
# =================

# CPU Load using WMI 
module_begin
module_name CPU Load
module_type generic_data
module_wmiquery SELECT LoadPercentage FROM Win32_Processor
module_wmicolumn LoadPercentage
module_max 100
module_min 0
module_description User CPU Usage (%)
module_min_warning 70
module_max_warning 90
module_min_critical 91
module_max_critical 100
module_unit %
module_group System
module_end

Buenos días Eritea,

Efectivamente, lo que hace este módulo es mirar la columna de LoadPercentage y buscar individualmente cada número y saltar el warning o crítico si uno de ellos se encuentra entre los valores.

Para poder hacer lo que deseas, sería conveniente realizar un plugin, o script, que te realice una media con los datos del uso de porcentaje y luego crear un módulo que utilice ese plugin creado.

Te dejo aquí una posible idea del plugin:

https://stackoverflow.com/questions/9598...percentage

Espero sirva de ayuda, si tienes cualquier problema no dudes en consultarnos

Alberto
(09-05-2018, 08:52 AM)alberto.sanchez Wrote: [ -> ]
(09-04-2018, 12:09 PM)Eritea Wrote: [ -> ]Buenas,

Gracias por contestar.

El módulo utiliza WMI

###############################################
# Module Definition
# Check online documentation and module library at http://pandorafms.org
# =================

# CPU Load using WMI 
module_begin
module_name CPU Load
module_type generic_data
module_wmiquery SELECT LoadPercentage FROM Win32_Processor
module_wmicolumn LoadPercentage
module_max 100
module_min 0
module_description User CPU Usage (%)
module_min_warning 70
module_max_warning 90
module_min_critical 91
module_max_critical 100
module_unit %
module_group System
module_end

Buenos días Eritea,

Efectivamente, lo que hace este módulo es mirar la columna de LoadPercentage y buscar individualmente cada número y saltar el warning o crítico si uno de ellos se encuentra entre los valores.

Para poder hacer lo que deseas, sería conveniente realizar un plugin, o script, que te realice una media con los datos del uso de porcentaje y luego crear un módulo que utilice ese plugin creado.

Te dejo aquí una posible idea del plugin:

https://stackoverflow.com/questions/9598...percentage

Espero sirva de ayuda, si tienes cualquier problema no dudes en consultarnos

Alberto
Gracias por tu respuesta Alberto,

No tengo mucha experiencia con los plugins. Sólo hacemos consultas WMI y SNMP.

¿El código del enlace se supone que es una consulta WMI? ¿Cómo debo modificar el archivo .conf para que realice esa medición?

Gracias!
(09-06-2018, 09:59 AM)Eritea Wrote: [ -> ]
(09-05-2018, 08:52 AM)alberto.sanchez Wrote: [ -> ]
(09-04-2018, 12:09 PM)Eritea Wrote: [ -> ]Buenas,

Gracias por contestar.

El módulo utiliza WMI

###############################################
# Module Definition
# Check online documentation and module library at http://pandorafms.org
# =================

# CPU Load using WMI 
module_begin
module_name CPU Load
module_type generic_data
module_wmiquery SELECT LoadPercentage FROM Win32_Processor
module_wmicolumn LoadPercentage
module_max 100
module_min 0
module_description User CPU Usage (%)
module_min_warning 70
module_max_warning 90
module_min_critical 91
module_max_critical 100
module_unit %
module_group System
module_end

Buenos días Eritea,

Efectivamente, lo que hace este módulo es mirar la columna de LoadPercentage y buscar individualmente cada número y saltar el warning o crítico si uno de ellos se encuentra entre los valores.

Para poder hacer lo que deseas, sería conveniente realizar un plugin, o script, que te realice una media con los datos del uso de porcentaje y luego crear un módulo que utilice ese plugin creado.

Te dejo aquí una posible idea del plugin:

https://stackoverflow.com/questions/9598...percentage

Espero sirva de ayuda, si tienes cualquier problema no dudes en consultarnos

Alberto
Gracias por tu respuesta Alberto,

No tengo mucha experiencia con los plugins. Sólo hacemos consultas WMI y SNMP.

¿El código del enlace se supone que es una consulta WMI? ¿Cómo debo modificar el archivo .conf para que realice esa medición?

Gracias!

Buenos días Eritea,

En enlace que te deje es una idea de código donde se ve una consulta WMI que intenta realizar una media de las mediciones de las CPU que tiene su máquina para posteriormente hacer comprobaciones.

Más que modificar el .conf, sería crear un .pl para realizar el código del plugin. Te pongo a continuación un enlace a la wiki de PandoraFMS donde se explica como crear plugins:

https://wiki.pandorafms.com/index.php?ti...te_propios


Espero que esto te ayude con tu problema, si tienes más dudas contacta con nosotros.

Alberto
(09-07-2018, 07:49 AM)alberto.sanchez Wrote: [ -> ]
(09-06-2018, 09:59 AM)Eritea Wrote: [ -> ]
(09-05-2018, 08:52 AM)alberto.sanchez Wrote: [ -> ]
(09-04-2018, 12:09 PM)Eritea Wrote: [ -> ]Buenas,

Gracias por contestar.

El módulo utiliza WMI

###############################################
# Module Definition
# Check online documentation and module library at http://pandorafms.org
# =================

# CPU Load using WMI 
module_begin
module_name CPU Load
module_type generic_data
module_wmiquery SELECT LoadPercentage FROM Win32_Processor
module_wmicolumn LoadPercentage
module_max 100
module_min 0
module_description User CPU Usage (%)
module_min_warning 70
module_max_warning 90
module_min_critical 91
module_max_critical 100
module_unit %
module_group System
module_end

Buenos días Eritea,

Efectivamente, lo que hace este módulo es mirar la columna de LoadPercentage y buscar individualmente cada número y saltar el warning o crítico si uno de ellos se encuentra entre los valores.

Para poder hacer lo que deseas, sería conveniente realizar un plugin, o script, que te realice una media con los datos del uso de porcentaje y luego crear un módulo que utilice ese plugin creado.

Te dejo aquí una posible idea del plugin:

https://stackoverflow.com/questions/9598...percentage

Espero sirva de ayuda, si tienes cualquier problema no dudes en consultarnos

Alberto
Gracias por tu respuesta Alberto,

No tengo mucha experiencia con los plugins. Sólo hacemos consultas WMI y SNMP.

¿El código del enlace se supone que es una consulta WMI? ¿Cómo debo modificar el archivo .conf para que realice esa medición?

Gracias!

Buenos días Eritea,

En enlace que te deje es una idea de código donde se ve una consulta WMI que intenta realizar una media de las mediciones de las CPU que tiene su máquina para posteriormente hacer comprobaciones.

Más que modificar el .conf, sería crear un .pl para realizar el código del plugin. Te pongo a continuación un enlace a la wiki de PandoraFMS donde se explica como crear plugins:

https://wiki.pandorafms.com/index.php?ti...te_propios


Espero que esto te ayude con tu problema, si tienes más dudas contacta con nosotros.

Alberto

Gracias Alberto,

Entiendo que debo crear un plugin que realice una consulta WMI contra el equipo remoto, liste el número de cpu, obtenga su carga y luego realice la media.

En el enlace original hay un código pero desconozco si se trata de un script en perl ya que no tengo ni idea de programación.

SelectQuery queryCpuUsage = new SelectQuery("SELECT * FROM Win32_Processor");

ManagementObjectSearcher cpuUsage = new ManagementObjectSearcher(scope, queryCpuUsage);                                       
ManagementObjectCollection cpuUsageCollection = cpuUsage.Get();                                                       

foreach (ManagementObject queryObj in cpuUsageCollection)
{                                           
iCPU++;
calcCPU = Convert.ToInt32(queryObj["LoadPercentage"]);
perCPU = perCPU + calcCPU;
}

perCPU = perCPU / iCPU;

cpuUsageCollection.Dispose();

Console.WriteLine("LoadPercentage CPU: {0}", perCPU);

Entiendo que debería crear un plugin en el directorio correspondiente, dar los permisos y luego darlo de alta con la opción plugins registrados. Pero evidentemente, al script habrá que suministrarle parámetros como la ip destino y las credenciales...

Entiendo que eso son los campos _field1_ , _field2_, etc.

Entiendo que monitorizar la cpu es una práctica habitual.. y siendo lo normal que los servidores dispongan de más de una cpu.. no debería se existir ya un plugin?

Entiendo que si existiera una CLASS en WMI que nos mostrara el consumo _TOTAL_ de CPU no tendríamos este problema.

Muchas gracias por tu ayuda.
(09-07-2018, 08:56 AM)Eritea Wrote: [ -> ]
(09-07-2018, 07:49 AM)alberto.sanchez Wrote: [ -> ]
(09-06-2018, 09:59 AM)Eritea Wrote: [ -> ]
(09-05-2018, 08:52 AM)alberto.sanchez Wrote: [ -> ]
(09-04-2018, 12:09 PM)Eritea Wrote: [ -> ]Buenas,

Gracias por contestar.

El módulo utiliza WMI

###############################################
# Module Definition
# Check online documentation and module library at http://pandorafms.org
# =================

# CPU Load using WMI 
module_begin
module_name CPU Load
module_type generic_data
module_wmiquery SELECT LoadPercentage FROM Win32_Processor
module_wmicolumn LoadPercentage
module_max 100
module_min 0
module_description User CPU Usage (%)
module_min_warning 70
module_max_warning 90
module_min_critical 91
module_max_critical 100
module_unit %
module_group System
module_end

Buenos días Eritea,

Efectivamente, lo que hace este módulo es mirar la columna de LoadPercentage y buscar individualmente cada número y saltar el warning o crítico si uno de ellos se encuentra entre los valores.

Para poder hacer lo que deseas, sería conveniente realizar un plugin, o script, que te realice una media con los datos del uso de porcentaje y luego crear un módulo que utilice ese plugin creado.

Te dejo aquí una posible idea del plugin:

https://stackoverflow.com/questions/9598...percentage

Espero sirva de ayuda, si tienes cualquier problema no dudes en consultarnos

Alberto
Gracias por tu respuesta Alberto,

No tengo mucha experiencia con los plugins. Sólo hacemos consultas WMI y SNMP.

¿El código del enlace se supone que es una consulta WMI? ¿Cómo debo modificar el archivo .conf para que realice esa medición?

Gracias!

Buenos días Eritea,

En enlace que te deje es una idea de código donde se ve una consulta WMI que intenta realizar una media de las mediciones de las CPU que tiene su máquina para posteriormente hacer comprobaciones.

Más que modificar el .conf, sería crear un .pl para realizar el código del plugin. Te pongo a continuación un enlace a la wiki de PandoraFMS donde se explica como crear plugins:

https://wiki.pandorafms.com/index.php?ti...te_propios


Espero que esto te ayude con tu problema, si tienes más dudas contacta con nosotros.

Alberto

Gracias Alberto,

Entiendo que debo crear un plugin que realice una consulta WMI contra el equipo remoto, liste el número de cpu, obtenga su carga y luego realice la media.

En el enlace original hay un código pero desconozco si se trata de un script en perl ya que no tengo ni idea de programación.

SelectQuery queryCpuUsage = new SelectQuery("SELECT * FROM Win32_Processor");

ManagementObjectSearcher cpuUsage = new ManagementObjectSearcher(scope, queryCpuUsage);                                       
ManagementObjectCollection cpuUsageCollection = cpuUsage.Get();                                                       

foreach (ManagementObject queryObj in cpuUsageCollection)
{                                           
iCPU++;
calcCPU = Convert.ToInt32(queryObj["LoadPercentage"]);
perCPU = perCPU + calcCPU;
}

perCPU = perCPU / iCPU;

cpuUsageCollection.Dispose();

Console.WriteLine("LoadPercentage CPU: {0}", perCPU);

Entiendo que debería crear un plugin en el directorio correspondiente, dar los permisos y luego darlo de alta con la opción plugins registrados. Pero evidentemente, al script habrá que suministrarle parámetros como la ip destino y las credenciales...

Entiendo que eso son los campos _field1_ , _field2_, etc.

Entiendo que monitorizar la cpu es una práctica habitual.. y siendo lo normal que los servidores dispongan de más de una cpu.. no debería se existir ya un plugin?

Entiendo que si existiera una CLASS en WMI que nos mostrara el consumo _TOTAL_ de CPU no tendríamos este problema.

Muchas gracias por tu ayuda.

Buenos días Eritea,

Efectivamente ya existe un plugin que haga las funciones que pides, pero se trata de un plugin que distribuimos en la versión Enterprise.

En cuanto a la realización del plugin, con el código que te pasé, sería adaptarlo a tus necesidades, podrías hacer una prueba directamente con el código y ser como funciona. Si ves que no es la solución, me temo que tendrás que darle unas vueltas para gestinarlo.

Alberto
(09-10-2018, 07:36 AM)alberto.sanchez Wrote: [ -> ]
(09-07-2018, 08:56 AM)Eritea Wrote: [ -> ]
(09-07-2018, 07:49 AM)alberto.sanchez Wrote: [ -> ]
(09-06-2018, 09:59 AM)Eritea Wrote: [ -> ]
(09-05-2018, 08:52 AM)alberto.sanchez Wrote: [ -> ]Buenos días Eritea,

Efectivamente, lo que hace este módulo es mirar la columna de LoadPercentage y buscar individualmente cada número y saltar el warning o crítico si uno de ellos se encuentra entre los valores.

Para poder hacer lo que deseas, sería conveniente realizar un plugin, o script, que te realice una media con los datos del uso de porcentaje y luego crear un módulo que utilice ese plugin creado.

Te dejo aquí una posible idea del plugin:

https://stackoverflow.com/questions/9598...percentage

Espero sirva de ayuda, si tienes cualquier problema no dudes en consultarnos

Alberto
Gracias por tu respuesta Alberto,

No tengo mucha experiencia con los plugins. Sólo hacemos consultas WMI y SNMP.

¿El código del enlace se supone que es una consulta WMI? ¿Cómo debo modificar el archivo .conf para que realice esa medición?

Gracias!

Buenos días Eritea,

En enlace que te deje es una idea de código donde se ve una consulta WMI que intenta realizar una media de las mediciones de las CPU que tiene su máquina para posteriormente hacer comprobaciones.

Más que modificar el .conf, sería crear un .pl para realizar el código del plugin. Te pongo a continuación un enlace a la wiki de PandoraFMS donde se explica como crear plugins:

https://wiki.pandorafms.com/index.php?ti...te_propios


Espero que esto te ayude con tu problema, si tienes más dudas contacta con nosotros.

Alberto

Gracias Alberto,

Entiendo que debo crear un plugin que realice una consulta WMI contra el equipo remoto, liste el número de cpu, obtenga su carga y luego realice la media.

En el enlace original hay un código pero desconozco si se trata de un script en perl ya que no tengo ni idea de programación.

SelectQuery queryCpuUsage = new SelectQuery("SELECT * FROM Win32_Processor");

ManagementObjectSearcher cpuUsage = new ManagementObjectSearcher(scope, queryCpuUsage);                                       
ManagementObjectCollection cpuUsageCollection = cpuUsage.Get();                                                       

foreach (ManagementObject queryObj in cpuUsageCollection)
{                                           
iCPU++;
calcCPU = Convert.ToInt32(queryObj["LoadPercentage"]);
perCPU = perCPU + calcCPU;
}

perCPU = perCPU / iCPU;

cpuUsageCollection.Dispose();

Console.WriteLine("LoadPercentage CPU: {0}", perCPU);

Entiendo que debería crear un plugin en el directorio correspondiente, dar los permisos y luego darlo de alta con la opción plugins registrados. Pero evidentemente, al script habrá que suministrarle parámetros como la ip destino y las credenciales...

Entiendo que eso son los campos _field1_ , _field2_, etc.

Entiendo que monitorizar la cpu es una práctica habitual.. y siendo lo normal que los servidores dispongan de más de una cpu.. no debería se existir ya un plugin?

Entiendo que si existiera una CLASS en WMI que nos mostrara el consumo _TOTAL_ de CPU no tendríamos este problema.

Muchas gracias por tu ayuda.

Buenos días Eritea,

Efectivamente ya existe un plugin que haga las funciones que pides, pero se trata de un plugin que distribuimos en la versión Enterprise.

En cuanto a la realización del plugin, con el código que te pasé, sería adaptarlo a tus necesidades, podrías hacer una prueba directamente con el código y ser como funciona. Si ves que no es la solución, me temo que tendrás que darle unas vueltas para gestinarlo.

Alberto

Gracias de nuevo Alberto,

Finalmente lo hemos hecho con una consulta en powershell que funcione de forma genérica en todos los servidores Windows.

Un saludo.