viernes, 22 de junio de 2012

Centos 5 y 6 ManagementPack para Scom 2012

Vamos a ver como crear un Management Pack de Centos 5 y Centos 6 para System Center Operations Manager 2012.
Ha cambiado algunas cosillas desde el 2007 R2 y pretendo ahorraros los quebraderos de cabeza que he estado pasando hasta dar con la solucion a cada problema que iba saliendo, hasta tenerlo fino fino.
Por cierto, esto por supuesto que no esta soportado por microsoft, pero funciona bastante bien.
Primero que nada desde la consola del SCOM instalamos los MP de Red Hat 5, 6 y el Operating System Library, para ello en la pestaña de Administracion le damos al boton derecho sobre ManagementPacks y le damos a "Import Management Pack"


Nos saldra un recuadro, pinchamos en "add" y seleccionamos la opcion "add from disk..."



y seleccionamos la carpeta de ManagementPacks del CD de Scom 2012, ya que ahora mismo estan mas actualizados los managementspack de RedHat en el CD que online, no coments xD

Tenemos que escoger los siguientes ManagementsPacks:
  • Red Hat Operating System Libary
  • Red Hat Enterprise Linux Server 5 Operating System
  • Red Hat Enterprise Linux Server 6 Operating System


Ahora le damos a "install" y ya tendremos el primer paso.

Una vez los tenemos instalados pasaremos a la fase 2, tenemos que exportar los MP a XML para poder modificarlos, aqui es donde viene el cambio desde el 2007 R2 (o al menos no sabia que se pudiera hacer antes asi)
Primero que nada creamos una carpeta en c: llamada MP o como vosotros querais, luego para exportar los MP tenemos que ejecutar el siguiente comando en PowerShell del SCOM:

get-SCOMManagementPack -Name Microsoft.Linux.RedHat.Library | Export-SCOMManagementPack -Path c:\mp

Una vez hecho esto, veremos en nuestro directorio el fichero del MP ya en XML, repetimos esto con cada uno de los otros MP y nos quedara el directorio con todos los XML dentro.


Ahora renombramos los ficheros y donde pone RedHat y RHEL lo sustituimos por centos.
Tenemos que modificar los siguientes textos en el archivo de Libreria y en los archivos del MP especifico de Centos 5 y Centos 6:


Texto Original
Text Reemplazado
Library XML file
CentOS.5 XML file
RHELCentOSX
x86i386X
x64x86_64X
RedHatCentOSXX
Red HatCentOSXX
Enterprise Linux ServerLinuxXX


Una vez realizados estos cambios "genericos" vamos ya a los cambios especificos que tendremos que realizar en cada fichero.
En Microsoft.Linux.centos.Library.xml tenemos que buscar "Monitoring --> Discoveries --> Discovery con el ID “Microsoft.Linux.CentOS.Computer.Discovery”. y cambiamos los parametros de FilterProperty y FilterValue por estos:

<FilterProperty> //*[local-name()="Caption"] FilterProperty>
<FilterValue> CentOS FilterValue>

Luego en el mismo fichero tenemos que modificar la siguiente cadena,
Texto Original:

<DataSource ID="DS" TypeID="Unix!Microsoft.Unix.WSMan.TimedEnumerate.Filtered.Equal.DiscoveryData">

Texto Modificado:

<DataSource ID="DS" TypeID="Unix!Microsoft.Unix.WSMan.TimedEnumerate.Filtered.ContainSubstring.DiscoveryData">

Como podeis observer unicamente cambiamos "Equal" por "ContainSubstring" para evitar que busque la cadena exacta y asi nos coja todas las CentOS.

Ahora vamos al fichero Microsoft.Linux.centos.6.xml y buscamos la siguientes cadenas:

/DataItem/WsManData/*[local-name(.)='SCX_OperatingSystem']/*[local-name(.)='Caption']
CentOS Linux release 6

y la sustituimos por esta:

//*[local-name()="Caption"]
CentOS release 6

En el fichero Microsoft.Linux.centos.5.xml tenemos que hacer exactamente lo mismo solo que en vez de release 6 sera release 5.

Una vez tenemos todo esto procederemos al "sellado" del MP, para ello tenemos que generar una "key file" con el comando sn.exe que lo podeis encontrar en el .Net Framework 2.0 SDK.
Una vez lo tenemos ejecutamos sn.exe -k key.snk y nos generara el fichero con la Key para poder sellar el MP.



Ahora vamos a sellar el MP con esta Key que hemos generado, para ello necesitamos la herramienta "mpseal.exe" que esta en el directorio "SUPPORTTOOLS\AMD64" del DVD de instalacion, la copiamos a nuestra carpeta c:\mp y desde ahi "operamos", tenemos que ejecutar el siguiente comando, la unidad D: es el DVD de instalacion del SCOM 2012

mpseal Microsoft.Linux.centos.Library.xml /i D:\MANAGEMENTPACKS /Keyfile key.snk /Company "Microsoft"


Ahora ya tenemos generado el fichero "Microsoft.Linux.CentOS.Library.mp", solo nos falta sacar de este fichero el public key token para sustituirlo en los MP particulares que hacen referencia a esta libreria.
Para esto utilizaremos otra vez el comand sn.exe:


 Ahora con el Public key token editamos el Microsoft.Linux.centos.6.xml y buscamos la siguiente cadena:

        Microsoft.Linux.CentOS.Library
        7.3.2026.0
        31bf3856ad364e35

Sustituimos el PublickeyToken que vemos ahi por el que nos ha devuelto el comando sn.exe

Con esto ya tenemos el MP de la Libreria y los XML de Centos 5 y 6.

Ahora solo tenemos que importarlas desde la consola del SCOM:


Ya tenemos los MP importados en nuestro SCOM 2012, ahora nos falta "crear" el agente para Centos, para ello vamos a la carpeta donde estan todos los agentes de Linux (C:\Program Files\System Center 2012\Operations Manager\Server\AgentManagement\UnixAgents) y copiamos el de redhat "scx-1.3.0-206.rhel.6.x64.rpm" y lo llamamos "scx-1.3.0-206.centos.6.x86_64.rpm" esto para 64 bits, para 32 copiamos el "scx-1.3.0-206.rhel.6.x86.rpm" y lo llamamos "scx-1.3.0-206.centos.6.i386.rpm"
Para que nos coja los cambios rapidamente reiniciamos los servicios "System Center Management" y "System Center Management Configuration"

Con esto ya estamos preparados para empezar a agregar nuestras Centos Favoritas!

Primero que nada en la Centos tenemos que instalar el paquete redhat-lsb que es una dependencia del agente del SCOM 2012, una vez con esto instalado nos vamos a la consola de administracion, Discovery Rules boton derecho "Discovery Wizard" y seleccionamos "Linux Computers"


En la siguiente ventana que nos aparece le damos a "add" y ahi tenemos que poner todos los datos del servidor, IP o DNS y un usuario que tenga permisos por SSH.
MUCHO OJO CON LAS CONTRASEÑAS, DURANTE LA ELABORACION DE ESTE TUTORIAL DETECTE UN BUG, SI TIENES ALGUNO DE ESTOS CARACTERES $%& EN LA CONTRASEÑA TE DA UN ERROR DESCONOCIDO Y TE PUEDES VOLVER LOCO, ME COSTO BASTANTE DARME CUENTA DE QUE ERA LA CONTRASEÑA...


Ahora le damos a save y en la siguiente pantalla que nos aparece seleccionamos "All management servers resource pool" en "select target resource pool" y le damos a "Discover"



Si no pasa nada "raro", como fallo con la resolucion DNS o cualquier otra cosa parecida nos deberia salir que ha descubierto el equipo y que lo seleccionemos para instalar el agente y "manejarlo"



Si nos da algun problema con la firma del certificado, podemos consultar aqui para solucionarlo:
Una vez acabe el proceso nos dira "success" y ya lo tenemos listo, la primera fase....



Ahora nos vamos a "unix/linux" computers y ahi nos aparecera nuestro linux, no os asusteis si todavia no pone "Centos" es normal, lleva su tiempo y aun tenemos que hacer unas "cosillas" xD



Ahora tenemos que desplegar las RunAs accounts, esto se podria haber hecho antes pero bueno...
Empezamos creando un nuevo "Resource Pool" y le vamos a llamar "Linux Monitoring Pool"


Ahora vamos a "Administration" y en la pestaña de "unix/linux Computers" con el boton derecho seleccionamos "Change Resource Pool" y elegimos el nuevo que hemos creado.



Ahora nos vamos a "Unix/linux Account" dentro de "Run as configuration" y creamos una "Monitoring account", ponemos la descripcion y luego le decimos el usuario root y que no utilize elevacion de privilegios.


Vale ya tenemos la cuenta creada, ahora hay que asociarla a los perfiles, seleccionamos la opcion de "profiles" que esta justo encima y en el campo de buscar ponemos "Linux" los 3 que aparecen hay que pinchar doble click sobre ellos y asociarle la run as account que hemos creado antes al equipo linux que corresponda.


una vez hecho esto, solo hay que esperar un rato y nos aparecera nuestra queria Centos en el panel "Administration" en la pestaña de "unix/linux Computeres" donde antes nos aparecia "Unknown"
Con esto y un bizcocho ya teneis vuestra Centos Monitorizada con SCOM 2012.

He colgado en CodePlex el Management Pack de Centos 5 y 6 que me cree, ya que no encontre ninguno por ahi https://scxmpcentos56.codeplex.com/

UPDATE: Al final tuve que crear un MP para la CentOS 6.0 ya que el "caption" es diferente a la 6.X y no lo detectaba el discovery, tambien esta subido en codeplex.

Gracias a Omar Lopez esto ha sido posible ya que el ha sido mi guia espiritual de SCOM 2012 xD

Os dejo algunos links que me han sido muy utiles:


Espero que os sea de utilidad!!!!

Un saludo



No hay comentarios:

Publicar un comentario en la entrada