1 Análisis de la gestión integrada mediante WMI J.A. Álvarez González, L. García Fernández, A. Matrán Fernández. Grupo WMI_B, Asignatura Complementos de Telemática II, ETSI Telecomunicaciones, Universidad de Valladolid 21 de Mayo de 2010 Abstract – La gestión integrada de sistemas es un tema que hoy en día tiene gran relevancia a la hora de gestionar grandes redes de ordenadores. Con este informe se pretendió estudiar una herramienta compatible con S.O. Windows que permitiera efectuar tal objetivo. Se eligió WMI, que es la implementación del estándar WBEM del Grupo de Trabajo DMTF en los equipos con sistema operativo Windows. Se realizaron varios experimentos para ver la calidad de esta herramienta. Primero se obtuvo información de gestión de las MIBs instaladas en la máquina local desde donde se operaba, obteniendo resultados satisfactorios. A continuación, se estableció una comunicación inalámbrica entre dos host y desde la máquina origen se extrajo información de gestión del agente SNMP situado en el otro ordenador. También se obtuvieron buenos resultados. En conclusión, WMI es una buena herramienta para hacer gestión integrada en máquinas con S.O. Windows. Palabras clave: agente, gestor, proveedor, qualifiers, WBEM, CIM, WMI. I. INTRODUCCIÓN En el mundo corporativo, la gestión de las máquinas que conforman una empresa es una tarea ardua y compleja que puede ser mucho más llevadera cuando se utilizan las herramientas adecuadas. Esta dificultad reside en varios problemas: por un lado, las máquinas que componen un sistema distribuido pueden pertenecer a varios fabricantes distintos, de modo que el gestor del sistema debe ser capaz de comunicarse correctamente con todas ellas. Por otro lado, el hecho de que las máquinas se encuentren en distintas localizaciones y no en una sola habitación, puede complicar mucho la parte de gestión de la empresa. Un ejemplo de herramienta de gestión integrada es WMI (Windows Management Instrumentation) [1] de Microsoft. Hay una gran variedad de técnicas de gestión que pueden aplicarse en multitud de escenarios, haciendo la vida de los gestores de red mucho más sencilla cuando se utilizan adecuadamente. Este informe pretende ser una breve introducción a algunas de las formas de gestión que pueden hacerse con WMI, la implementación de Microsoft de WBEM (Web-Based Enterprise Management) [2]. WBEM es una iniciativa de la industria para desarrollar un medio estándar y no propietario de acceder y compartir información de gestión en la red de una empresa. Pretende, por tanto, solucionar el problema de recolectar datos de gestión y diagnóstico extremo a extremo en redes que pueden incorporar hardware de distintos fabricantes, así como distintos sistemas operativos y aplicaciones distribuidas. Las dos partes principales del estándar WBEM son la especificación CIM (Common Information Model) [3] y el esquema CIM. En la práctica descrita en esta memoria se plantearon varios escenarios de prueba (tanto en una sola máquina como en varias conectadas por una red ad hoc) y se sometió a la herramienta software CIM Studio y a todos los elementos que intervienen en la arquitectura de WBEM a los mismos, de modo que se pudiera evaluar una serie de criterios de dicho programa, como su configuración, usabilidad, etc. Asimismo, se recogen aquí los resultados obtenidos de dichos escenarios, de modo que puedan ser fácilmente reproducibles por otros interesados en un primer acercamiento a este entorno de trabajo. La organización del presente documento es la siguiente: en la sección II se describe brevemente WMI a modo de introducción para aquellos que no hayan trabajado con él. A continuación, en la sección III, se describen los escenarios con los que se trabajó, mientras que en el apartado IV se hablará de los pasos necesarios para la reproducción de los experimentos. Finalmente, en la sección de conclusión (la quinta de este informe) se llevará a cabo una discusión acerca de la adecuación del programa CIM Studio como herramienta de gestión de sistemas distribuidos, se describirán las bondades y puntos débiles encontrados durante los experimentos realizados y, por último, se hará una valoración crítica de dicho software. II. WMI (WINDOWS MANAGEMENT INSTRUMENTATION) WMI es la implementación del estándar WBEM del grupo de trabajo DMTF (Distributed Management Task Force) en los equipos con sistema operativo Windows para integrar diversos estándares existentes de administración de recursos, como SNMP, DMI o CMIP, en una sola arquitectura. La tecnología WMI se basa en el estándar CIM, que se emplea para crear modelos orientados a objetos que representan cualquier elemento susceptible de ser administrado, ya sea algo físico (hardware) o algo lógico (software). La arquitectura de WMI está formada por las aplicaciones gestoras (clientes), una infraestructura de administración, constituida por el CIMOM (Administrador de Objetos CIM) y el repositorio CIM, y por los Proveedores de objetos, que actúan como intermediarios entre el CIMOM y los agentes de gestión. El CIMOM maneja las interacciones entre las aplicaciones gestoras y los proveedores y determina si la información es estática (y se encuentra almacenada en el repositorio CIM) o dinámica (y se encuentra a través de los proveedores de 2 objetos). El repositorio CIM está estructurado en espacios de nombres (namespaces). Un namespace es una unidad lógica para el agrupamiento de clases e instancias y control de su área. Estas clases relacionadas representan una tecnología específica o un área de administración. Las aplicaciones gestoras y los proveedores de objetos interactúan con el CIMOM por medio de cualquier lenguaje de programación que pueda registrar objetos COM, debido a que CIMOM provee de varios interfaces de programación como DCOM, ODBC (Open DataBase Connectivity), tecnologías de internet y scripts. Por otra parte, los proveedores de objetos se comunican con los agentes de gestión a través del protocolo SNMP. Para la definición de las clases e instancias asociadas a los recursos administrados (i.e. para la información de gestión) se proporciona un lenguaje con un significado más textual llamado MOF (Managed Object Format), de manera que no sea necesario trabajar con el API de CIMOM. Las especificaciones en lenguaje MOF son procesadas por el compilador MOF. III. METODOLOGÍA El estudio realizado en este informe se centra en el uso de WMI como herramienta de gestión integrada de sistemas para analizar su calidad y resultados ante diversos escenarios. El problema inicial planteado era encontrar una herramienta compatible con el sistema operativo Windows para hacer gestión integrada basada en tecnologías web. Se pensó en la arquitectura WBEM, cuyo esquema característico se muestra en la figura 1. La siguiente opción considerada fue el uso de WMI con las herramientas que incorpora para manejar toda la información de la red (de los sistemas). WMI, como ya se había mencionado en apartados anteriores, es la implementación del estándar WBEM del grupo de trabajo DMTF. ordenadores: uno con S.O. Windows XP (que, a partir de ahora, se llamará Máq_XP) y otro con S.O. Windows 7 (que, a partir de ahora, se denominará Máq_7). El motivo de hacerlo en dos ordenadores distintos fue abrir la posibilidad de probar la gestión distribuida. Además, al tener distintos sistemas operativos, podría verse algo de gestión integrada. La herramienta que se usó como visualizador web de información fue WMI CIM Studio. Esta se abre en un explorador web sobre el que se ve la información que el usuario solicita al agente SNMP. En el apartado IV se detallan los pasos que se realizaron con esta aplicación web para la realización de los diferentes experimentos. Estos experimentos consistieron: primero, en una serie de pruebas locales que sirvieron para comprobar la correcta configuración del CIM Studio y del agente SNMP (sección IV.A); segundo, en la compilación e instalación de una MIB para ver el funcionamiento del compilador MOF (sección IV.B); y tercero, en la realización de una red WiFI ad hoc entre las dos máquinas mencionadas más arriba para poder comprobar en vivo el funcionamiento de la gestión distribuida. En este último caso, se solicitó a Máq_7 desde Máq_XP la misma información que se había pedido localmente a esta última en el primer experimento. Otra aplicación usada en el transcurso de las pruebas fue SysUpTime, versión 5.3 [5], que es un gestor de redes con los recursos necesarios para controlar minuciosamente el tráfico, estado y carga de los dispositivos de una red. El papel de este programa era hacer peticiones de gestión a través del protocolo SNMP a agentes, para ayudar a localizar y solucionar los problemas que fueron surgiendo. Con las herramientas descritas se desea conseguir información de gestión contenida en diferentes MIBs que soportan las propias máquinas y el S.O. Windows, tanto a nivel local como a nivel de red, y así poder sacar conclusiones sobre la potencia de gestión integrada de WMI. IV. RESULTADOS Y ANÁLISIS DE LOS MISMOS En esta sección se describen los pasos seguidos para cumplir los objetivos descritos en la sección de metodología para los distintos escenarios de trabajo. Figura 1. Arquitectura WBEM. [4] Tras haber decidido el esquema de trabajo, el siguiente paso fue considerar una serie de escenarios o experimentos en los que poder probar y analizar las funcionalidades de este estándar en cuanto a manejo, calidad de los resultados, opciones disponibles, etc. Por ello, se instaló WMI en dos A. Acceso a la información de la MIB RFC1213 de la máquina local Inicialmente, se propuso el problema de acceder a información local de una única máquina, olvidando el resto de las que puede haber en la misma red. Esta parte de gestión es la más sencilla, ya que se trata de obtener información de forma local, en el mismo ordenador en el que se está trabajando. En este caso, se estaría trabajando en el escenario que se muestra en la figura 2, donde la línea discontinua representa los límites de una máquina, de modo que se indica que todos los elementos que aparecen están en Máq_XP. Tal y como se desprende de dicha imagen, el CIM Studio es un mero visualizador de información bajo el cual se encuentran el CIMOM y el/los proveedor/es SNMP, cada uno conectado a 3 un agente SNMP, como indicaba la teoría explicada hasta ahora. El primer paso fue la descarga e instalación de las herramientas administrativas WMI Tools. Por otra parte, hay que tener en cuenta que todo ordenador que corre bajo sistemas operativos Windows tiene instalado por defecto el CIMOM, por lo que su instalación no fue necesaria. A continuación se instaló el proveedor SNMP siguiendo los pasos que se indican en la MSDN de Microsoft. En este paso el asistente requirió una serie de archivos que se encuentran en el disco de instalación de Windows XP. Luego es necesario configurar de forma adecuada el agente SNMP de la máquina de trabajo. Esto significaba en la práctica acceder a las propiedades del servicio SNMP y añadir un nombre de comunidad con permisos de lectura. En este caso, el nombre de comunidad que se asignó fue “public.” A continuación, en el CIM Studio se accede a root/SNMP y se piden las instancias de _SystemClass/_NAMESPACE. Finalmente, en la instancia denominada localhost se deben añadir dos qualifiers [6]: AgentAddress = localhost AgentReadCommunityName = public Con esto se consigue que el servidor SNMP acepte las peticiones que se hacen desde el CIM Studio y devuelva correctamente las instancias solicitadas de la MIB RFC1213 (que se pueden encontrar en el path root/SNMP/localhost y accediendo a SnmpMacro/ SnmpObjectType/ SNMP_RFC_1213_MIB_X, donde X representa distintas subclases que almacenan datos, como la tabla de encaminamiento, la caché ARP...) (ver figura 3). Puesto que esta MIB no se encuentra en Máq_XP inicialmente, hay que descargarla e instarla previamente. Se puede descargar de la página web de “NuDesign” [8] y se ha de guardar en el directorio C:\WINDOWS\system32\wbem\snmp. A continuación, se abre la ventana de comandos de Windows (mediante la ejecución del comando cmd) y se va al directorio donde se ha guardado la MIB, con nombre de archivo rfc1514.mib. Mediante la herramienta smi2smir se genera el fichero rfc1514.mof a partir del fichero rfc1514.mib tecleando la siguiente línea de comandos: C:\WINDOWS\systeam32\wbwm\snmp> Smi2smir /g rfc1514.mib > rfc1514.mof Posteriormente se compila el fichero rfc1514.mof que se acaba de crear utilizando el compilador mofcom mediante la siguiente orden: C:\WINDOWS\systeam32\wbwm\snmp> mofcom rfc1514.mof Si se abre ahora el programa CIM Studio, se podrán observar las clases asociadas a la nueva MIB instalada en el espacio de nombres root/SNMP/localhost (figura 4). En la figura 7 se puede ver la comparación entre el resultado obtenido en este escenario y el del apartado C, de gestión distribuida, al pedir instancias de SNMP_RFC_1213_MIB_system en Máq_XP y Máq_7. Figura 3. Clases de la RFC1213 de las que se pueden pedir instancias al agente SNMP. Figura 2. Escenario de trabajo de gestión local. B. Instalación, compilación y acceso a la información de la MIB RFC1514 En este apartado se va a acceder a la información de la MIB RFC1514 a través del proveedor SNMP. Esta MIB es soportada por los agentes de gestión de máquinas con sistema operativo Windows [7]. 4 C. Acceso a la información de la MIB RFC1213 de una máquina remota mediante SNMP En este escenario, el CIM Studio, el CIMOM y el proveedor SNMP se encuentran en Máq_XP, mientras que el agente SNMP que recibirá las peticiones se encuentra en Máq_7. Por tanto, según la figura 6, la comunicación entre ambas deberá realizarse mediante el protocolo SNMP. Como en la figura 2, la línea discontinua representa una máquina, por lo que se está representando la distribución de los programas en las dos máquinas mencionadas. Concretamente, Máq_XP hará peticiones de instancias de la MIB RFC1213 al agente SNMP de Máq_7 de forma similar a como se hacía en el apartado A de esta sección. Para ello, es esencial que las dos máquinas estén correctamente conectadas (puede comprobarse haciendo un ping de una a otra, p ej) y, concretamente, que lo estén a nivel SNMP. En este caso, dicha comprobación se hizo mediante el programa SysUp Time, ya mencionado en el apartado de metodología. La principal dificultad de este experimento radica en la modificación de los qualifiers que ya se usaron en el apartado IV.A y en la correcta configuración de Máq_7, ya que con esta no se había trabajado hasta el momento. Lógicamente, la nueva AgentAddress tendrá que hacer referencia a la dirección IP de Máq_7, ya que es a su agente a quien deben solicitársele las mencionadas instancias. Figura 4. Clases de la MIB RFC1514 añadidas al espacio de nombres root\snmp\localhost. Sin cambiar los valores de los qualifiers ni la configuración del agente SNMP realizada en el apartado A de esta misma sección, será posible pedir instancias de cualquier clase asociada a la MIB que se acaba de instalar. Por ejemplo, si se piden instancias de la clase “SNMP_HOST_RESOURCES_MIB_hrSystem”, entre otras propiedades, se obtiene la descripción física de todos los dispositivos hardware que tiene instalado el ordenador en el se están haciendo las pruebas (figura 5). Figura 5. Resultado de realizar una instancia a una clase de la MIB RFC1514. Por otra parte, en Máq_7 hay que configurar dicho agente SNMP accediendo al servicio SNMP y agregando, en la pestaña Seguridad, apartado “Nombres de comunidad aceptados,” una comunidad con derechos de lectura. En este caso se puso el nombre de comunidad CASA, de modo que en Máq_XP, donde en la sección IV.A se puso AgentReadCommunityName = public, habrá que cambiar este qualifier por el nombre de comunidad CASA, que es el que aceptará el agente SNMP. Ademas, por simplicidad, se configuró el servicio para que aceptara paquetes SNMP de cualquier host (también se puede hacer que acepte paquetes de hosts concretos, en cuyo caso habría que añadir la dirección de Máq_XP a la lista para que todo funcionara de la misma manera). Figura 6. Escenario de trabajo de gestión distribuida con dos máquinas. 5 Figura 7. Comparación de los resultados de los escenarios IV.A (arriba) y IV.C (abajo) al solicitar instancias de la misma clase en dos máquinas distintas. Con todo esto, se consiguió que Máq_XP obtuviera correctamente información de la RFC1213 de Máq_7 sin mayores complicaciones. V. CONCLUSIONES Como ha podido observarse en las pruebas efectuadas, se ha logrado obtener información de gestión de varias MIBs, concretamente de la RFC1213 y la RFC1514, tanto de forma local como de forma remota, usando la herramienta de gestión WMI. En relación al apartado de gestión local (sección IV.A), simplemente destacar la modificación de los qualifiers para indicar al proveedor SNMP dónde está el agente correspondiente con el que tiene que interactuar y al que hay que pedirle información de gestión, que en este caso se encuentra en la máquina local. Por otra parte, en lo que respecta al apartado de comunicación con otra máquina, señalar que se realizó una comunicación mediante el protocolo SNMP entre el proveedor SNMP, en una máquina, y el agente SNMP, en otra distinta. El primero se encontraba en la misma máquina que la aplicación gestora, el CIMOM y el proveedor. Modificando los qualifiers adecuadamente se obtuvo la información de la MIB RFC1213. Sería interesante, como prueba futura, experimentar con un escenario donde la aplicación gestora se encuentre en una máquina y todos los demás elementos en otra, de forma que la comunicación entre ordenadores se produzca mediante el protocolo DCOM. Una representación gráfica del experimento que se propone pude encontrarse en la figura 8. La descarga e instalación de las herramientas administrativas WMI Tools es sencilla y rápida. WMI ofrece un entorno de trabajo amigable con una interfaz gráfica sencilla e intuitiva de manejar para un usuario que tenga ciertas nociones del estándar WBEM. Esta herramienta de gestión está muy bien documentada, ya que se puede encontrar información de forma centralizada sobre su instalación, configuración y utilización en la página web de la MSDN (Microsoft Developer Network) de Microsoft. Este hecho sirve de bastante ayuda para principiantes se quieran iniciarse en su manejo. La instalación y configuración del proveedor SNMP también es fácil de realizar porque la MSDN de Microsoft indica paso a paso las instrucciones que se deben seguir. Además, el Figura 8. Nuevo escenario de prueba que se propone como trabajo futuro. espacio de nombres SNMP se genera automáticamente. Tan sólo resulta un poco más laborioso averiguar los qualifiers del proveedor SNMP que hay que asociar con las clases del espacio de nombres SNMP. De la misma forma, fue una tarea trivial convertir una MIB mantenida por un recurso a un archivo .mof y acceder a esa información a través del proveedor SNMP debido a la excelente documentación sobre WMI que se ofrece a los usuarios. Para finalizar, WMI nos ha parecido una herramienta de gestión integrada de redes bastante eficiente para usarla en el propósito estudiado en la práctica. AGRADECIMIENTOS A los autores les gustaría dar las gracias al profesor de la asignatura Complementos de Telemática II, Juan Ignacio Asensio, la ayuda prestada para la realización de la práctica, así como sus indicaciones en la redacción del presente informe y el diseño de la presentación frente a los compañeros. Asimismo, nos gustaría agradecer a los compañeros del grupo WMI_A (Oliver Aguirre, Adrián Huertes y Rodrigo Mota) su colaboración en los experimentos, que fue de gran utilidad. Queremos resaltar que trabajar en un grupo tan grande nos ha parecido muy útil a la hora de dividir tareas. REFERENCIAS [1] WMI AdministrativeTools http://www.microsoft.com/downloads/details.aspx?FamilyID= 6430f853-1120-48db-8cc5-f2abdc3ed314&DisplayLang=en Fecha de último acceso: 19/4/2010. [2] Web-Based Enterprise Management (WBEM) http://www.dmtf.org/standards/wbem/ Fecha de último acceso: 20/5/2010. [3] J.W. Sweitzer et al., "Common Information Model: Implementing the Object Model for Enterprise Management", John Wiley & Sons,, 2000. [4] J.I. Asensio Pérez. Ingeniero de Telecomunicación. “Gestión basada en tecnologías Web”,2010. 6 [5] Programa Sysuptime http://www.ireasoning.com/network_monitor.shtml. Fecha de último acceso: 26/4/2010. [6] Qualifiers Specific to the SNMP Provider http://msdn.microsoft.com/enus/library/aa392896(v=VS.85).aspx Fecha de último acceso: 26/4/2010. [7] Base de información de administración de soporte técnico en Windows 2000, Windows XP, Windows Server 2003 y Windows Vista http://support.microsoft.com/kb/237295 Fecha de último acceso: 20/5/2010. [8] NuDesign Technologies MIB Archive http://www.ndtinc.com/SNMP/MIBsByRFC.html Fecha de último acceso: 20/5/2010.