Welcome to Pandora FMS Community › Forums › Soporte de la comunidad › Como se usa WMI??
-
Como se usa WMI??
Posted by jartal on October 20, 2011 at 11:37He instalado una maquina windows en pandora pero no consiguo que reciba ningĂșn dato, ya sea uno que haya buscado por mi cuenta o de los que ya vienen definidos en pandora.
El servidor WMI de pandora lo tengo activado.
ÂżQue es lo que tengo que hacer para que me funcione correctamente?
ÂżHay alguna manera de ver por medio de cmd en windows si funciona correctamente WMI?
Un Saludo
luismi replied 13 years, 3 months ago 4 Members · 13 Replies -
13 Replies
-
-
-
::
Hola Jartal, buenos dias
Te falta poner el target ip. la ip o nombre de la maquina windows a la que quieres lanzar la consulta
tambien falta el usuario y el password con el que hacer la consulta. El namespace si lo dejas en blanco te agarra el por defecto ( que por la consulta que quieres hacer ya esta bien )Luego, en la misma consulta, pones un select *. Eso te va a devolver muchos registros y muchos campos. Podrias poner un where nombre_de_campo = “XXX” para seleccionar Ășnicamente un registro, y el fieldnumber poner el numero de campo del select que quieres consultar. o eso o poner en vez de select * un select nombre_de_campo y asi solo estas devolviendo un Ășnico campo ( generalmente cuando selecciono un campo se debe poner un 1 en el fieldnumber).
Antes de intentar hacer el modulo desde pandora, intenta usar el wmiexplorer para comprender mejor lo de la estructura y funcionamiento del wmi. Ahi puedes consultar todas las tablas del namespace que te proporciona la maquina y ver los sql que puedes poner
gracias
-
-
::
Bueno he conseguido que por lo menos se me quite el aviso de “no inicializado” pero en el resultado me sale un 0 y me deberia de salir un 7(numero de usuarios conectados) que es lo que me sale desde el wmi explorer y un error en el log del server de pandora:
2011-10-21 17:01:59 thor.empre.es [V1] [E] 'thor.empre.es': DBD::mysql::st execute failed: BIGINT UNSIGNED value is out of range in '((unix_timestamp() - `pandora`.`tagente_estado`.`current_interval`) - `pandora`.`tagente_estado`.`last_execution_try`)' at /usr/lib/perl5/PandoraFMS/DB.pm line 388.
ÂżComo puedo solucionarlo?
Adjunto como tengo configurado el mĂłdulo
Un Saludo
-
::
A ver esto es igual que manejar una BBDD, asĂ que vamos a ir por partes.
No sĂ© muy bien a quĂ© viene ese 34, pero asĂ no se usa, field number es la posiciĂłn del dato, no de la “columna”.
Por ejemplo, de una query que extraiga una sola columna, que posea dos datos (una con el nombre y otra con el valor), field 0 equivaldrĂa al nombre del dato que quieres extraer, y field 1 al dato en cuestiĂłn. En Pandora nos interesarĂa extraer el field 1.
Pues bien, con tu query estĂĄs diciendo de sacar todo el contenido de Win32_OperatingSystem, y de todas las filas extraer la columna nĂșmero 34, que probablemente no exista y estĂ©s incurriendo en error.
Si el dato que quieres sacar es NumberOfUsers por ejemplo, la query serĂa “SELECT NumberOfUsers FROM Win32_OperatingSystem” y el field number serĂa 1 por ejemplo.
De esta forma, sacarĂas de Win32_OperatingSystem Ășnicamente el dato que te interesa en vez de todos.
Un saludo. đ
-
::
He entendido todo lo que me has dicho en el post anterior, asi que hice lo que me dijiste:
Si el dato que quieres sacar es NumberOfUsers por ejemplo, la query serĂa “SELECT NumberOfUsers FROM Win32_OperatingSystem” y el field number serĂa 1 por ejemplo.
No conseguĂ hacer que me devolviera ningĂșn dato, ni siquiera reiniciando el servidor pandora por si acaso.
Pero cual es mi sorpresa al ver que poniendo lo que pongo en la imagen (siguiendo con mi cabezoneria :)), en field number poner un 35 y lo que me devuelve es el numero de procesos abiertos (y son datos correctos ya que desde administrador de tareas sale el mismo numero) pero no coincide con la columna (el numero de la columna estĂĄ verificado por 4 vez (empezando por 0)). Tengo un lio con WMI increible!! :).
Entonces una vez conseguido ese dato sin querer, querĂa poner el de nĂșmero de usuarios y por lĂłgica me imagino que serĂa poner el siguiente, el 36, pero no funciona :(, asĂ que la Ășnica forma que se me ocurre serĂa poner la query en un modulo, dentro del .conf que ya he verificado que funciona, pero me gustarĂa saber el porque de este caso en concreto y asĂ poder utilizar el WMI de pandora.
Un Saludo.
-
::
Hola jartal,
Prueba a ejecutar esto desde el prompt del servidor de Pandora:
wmic -U Usuario%contraseña //ip_destino "SELECT NumberOfUsers FROM Win32_OperatingSystem"
Ejecuta también:
wmic -U Usuario%contraseña //ip_destino "SELECT * FROM Win32_OperatingSystem"
Y envĂanos la salida de cada uno de ellos.
Un saludo.
-
::
Esto es lo que me sale para el primero:
[root@thor pandora]# wmic -U "usuario"%"contraseña" //xx.xx.xx.xx "select NumberOfUsers from Win32_OperatingSystem" CLASS: Win32_OperatingSystem Name|NumberOfUsers Microsoft Windows Server 2003 Standard Edition|C:WINDOWS|DeviceHarddisk0Partition1|7 [root@thor pandora]#
Y para el segundo:
[root@thor pandora]# wmic -U "usuario"%"contraseña" //xx.xx.xx.xx "select * from Win32_OperatingSystem" CLASS: Win32_OperatingSystem BootDevice|BuildNumber|BuildType|Caption|CodeSet|CountryCode|CreationClassName|CSCreationClassName|CSDVersion|CSName|CurrentTimeZone|DataExecutionPrevention_32BitApplications|DataExecutionPrevention_Available|DataExecutionPrevention_Drivers|DataExecutionPrevention_SupportPolicy|Debug|Description|Distributed|EncryptionLevel|ForegroundApplicationBoost|FreePhysicalMemory|FreeSpaceInPagingFiles|FreeVirtualMemory|InstallDate|LargeSystemCache|LastBootUpTime|LocalDateTime|Locale|Manufacturer|MaxNumberOfProcesses|MaxProcessMemorySize|Name|NumberOfLicensedUsers|NumberOfProcesses|NumberOfUsers|Organization|OSLanguage|OSProductSuite|OSType|OtherTypeDescription|PAEEnabled|PlusProductID|PlusVersionNumber|Primary|ProductType|QuantumLength|QuantumType|RegisteredUser|SerialNumber|ServicePackMajorVersion|ServicePackMinorVersion|SizeStoredInPagingFiles|Status|SuiteMask|SystemDevice|SystemDirectory|SystemDrive|TotalSwapSpaceSize|TotalVirtualMemorySize|TotalVisibleMemorySize|Version|WindowsDirectory DeviceHarddiskVolume2|3790|Multiprocessor Free|Microsoft(R) Windows(R) Server 2003, Standard Edition|1252|34|Win32_OperatingSystem|Win32_ComputerSystem|Service Pack 1|xxxxxx|60|True|True|True|2|False||False|168|2|1379356|2028324|2748576|20051003165053.000000+120|1|20110601065557.125000+120|20111103163750.937000+060|0c0a|Microsoft Corporation|4294967295|2097024|Microsoft Windows Server 2003 Standard Edition|C:WINDOWS|DeviceHarddisk0Partition1|5|78|7|xxxxxxxxxxx|3082|272|18|(null)|True|(null)|(null)|True|3|0|0|xxxxxxxxxxxxx|xxxxx-xxxxx-xxx|1|0|2095104|OK|272|DeviceHarddiskVolume2|C:WINDOWSsystem32|C:|0|1922840|4193360|5.2.3790|C:WINDOWS [root@thor pandora]#
Espero que sea lo suficientemente legible:)
Espero que esto ayude.
Un saludo.
-
-
-
::
Buenas,
Perdona la confusiĂłn, WMIc utiliza los pipes para dividir la salida, por lo que en nuestro caso y al ejecutar la query:
SELECT NumberOfUsers FROM Win32_OperatingSystem
necesitamos escoger el Field Number = 3.
Borra el mĂłdulo y vuelve a crearlo con esta query y con FieldNumber=3 y nos cuentas.
Saludos.
-