Osmius Information Portal (OSIP) es un portal web de Business Intelligence para proveedores de monitorización que puede ser instalado como una herramineta externa a Osmius Enterprise Edition. OSIP proporciona una manera sencilla de acceder a los datos almacenados en cualquier número de bases de datos de Osmius, con cuadros de mando configurables que además pueden integrarse con fuentes de datos externas fácilmente.
OSIP es especialmente útil in entornos de monitorización multi-site tales como grandes corporaciones y proveedores de monitorización.
Como portal web, OSIP puede gestionar comunidades, roles y permisos y puede integrarse con otras aplicaicones web. De esta forma, puede gestionar sus usuarios y componer pantallas desde las que éstos puede visualizar no sólo los datos de los servicios monitorizados por Osmius, también hacer seguimiento de otros datos como emails, calendarios, datos con origen en la nube…
Este esquema es perfecto para gestionar los clientes de un proveedor de monitorización o para un departamento tradicional de IT para proporcionar cuadros de mando a los usuarios finales. OSIP les permite abstraerse de los procesos de monitorización utilizando una aplicación orientada a negocio que pone el foco en los datos recogidos por el sistema de monitorización, haciendo más sencillo visualizar y comprender qué está ocurriendo en sus servicio y enriquecer esta experiencia con datos externos.
OSIP está basado en Liferay (http://www.liferay.com). Liferay Portal es la solución empresarial open source para portales web líder en el mundo que utiliza las últimas tecnologías Java y Web 2.0. Liferay Portal es una de las más ampliamente utilizadas tecnologías para portales en el mercado, con unas 250.000 instalaciones estimadas en todo el mundo.
Más que un portal, Liferay es una plataforma para crear aplicaciones y soluciones de negocio eficaces. Ofrece un marco robusto, impresionante escalabilidad, ahorro de tiempos de desarrollo, soporte para más de 30 idiomas, y una arquitectura flexible y escalable de código abierto refinada para empresas. Algunas características notables son:
Liferay está construido mediante unidades funcionales llamadas portlets. Los portlets son componentes de interfaz de usuario modulares que pueden ser desplegados en un portal web. Liferay soporta el estándar JSR-268 Java Portlet Specification que permite interoperabilidad entre portlets de diferentes portales web.
OSIP se distribuye como un portal Liferay en el que hemos desplegado portlets que realizan diferentes funciones relacionadas con Osmius como mostrar datos relativos a los servicios de los clientes o gestionar instalaciones.
El siguiente diagrama representa una instalación típica de Osmius donde tenemos un proveedor que vende monitorización de servicios a diferentes clientes. Los datos recogidos por la monitorización de Osmius se integran con datos de otras fuentes, éstos repositorios externos podrían ser ERPs, CMDBs, CRMs, sistemas de incidencias…
En resumen, como proveedor, OSIP le permite:
OSIP se distribuye como un fichero comprimido. Descomprima este fichero en el directorio donde desea instalarlo.
Una vez hecho esto, encontrará una distribución de Liferay en su directorio con un servidor de aplicaciones web (normalmente Apache Tomcat) y diferentes portlets de OSIP. Por favor, tenga en cuenta que eliminar cualquiera de estos portlets provocará que OSIP no funcione correctamente.
En este zip también encontrará un fichero SQL osip_data.sql. Utilizaremos este fichero para poblar la base de datos de OSIP más tarde.
En este documento vamos a trabajar con una distribución de OSIP corriendo sobre Liferay 6.0.5 y Tomcat 6.0.26. Los números de versión pueden variar pero el proceso de configuración siempre es el mismo para todas las distribuciones.
Antes de arrancar el servidor debemos configurar un fichero XML para decirle a OSIP dónde encontrar las fuentes de datos de Osmius. En este tutorial vamos a suponer que tenemos dos instalaciones de Osmius usando MySQL y corriendo en dos servidores localizados en los hosts 192.168.3.240 y 192.168.3.241. Ambos con “osmius” como usuario y password de base de datos(reemplace estos valores con los suyos). Este proceso debe resultarle conocido si está familiarizado con la configuración de servidores de aplicaciones.
Vaya a mydir/liferay-portal-6.0.5/tomcat-6.0.26/conf y edite el fichero server.xml.
Encontrará una sección delimitada por las etiquetas <GlobalNamingResources> y </GlobalNamingResources>, copie el siguiente código entre esas etiquetas:
<Resource auth="Container" driverClassName="com.mysql.jdbc.Driver" factory="org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory" maxActive="50" maxIdle="10" maxWait="10000" name="jdbc/osmius" removeAbandoned="true" removeAbandonedTimeout="240" type="javax.sql.DataSource" url="jdbc:mysql://192.168.3.240/osmius" username="osmius" password="osmius" validationQuery="SELECT 1"/> <Resource auth="Container" driverClassName="com.mysql.jdbc.Driver" factory="org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory" maxActive="50" maxIdle="10" maxWait="10000" name="jdbc/osmius2" removeAbandoned="true" removeAbandonedTimeout="240" type="javax.sql.DataSource" url="jdbc:mysql://192.168.3.241/osmius" username="osmius" password="osmius" validationQuery="SELECT 1"/>
Como puede ver, debemos definir recursos para cada base de datos de Osmius que queremos que OSIP lea. Siéntase libre de modificar estos parámetros para adaptarlos a su configuración.
Ahora debemos declarar estos recursos como globales para que sean accesibles desde nuestros portlets. Para hacer esto, edite el fichero context.xml y copie este texto XML dentro de las etiquetas <Context></Context>:
<ResourceLink global="jdbc/osmius" name="jdbc/osmius" type="javax.sql.DataSource"/> <ResourceLink global="jdbc/osmius2" name="jdbc/osmius2" type="javax.sql.DataSource"/>
Es decir, un ResourceLink por cada base de datos de Osmius, con el mismo nombre que pusimos en el fichero server.xml
El siguiente paso es configurar la base de datos de OSIP. Puede utilizar cualquiera de las bases de datos compatibles con Liferay (SQL Server, PostgresSQL, DB2, MySQL, etc…), por favor consulte la documentación de Liferay para obtener más información acerca de este tema. Nosotros utilizaremos MySQL como base de datos por defecto.
Vaya a mydir/liferay-portal-6.0.5/tomcat-6.0.26/webapps/ROOT/WEB-INF/classes y edite portal-ext.properties
Allí encontrará las siguientes líneas:
jdbc.default.driverClassName=com.mysql.jdbc.Driver jdbc.default.url=jdbc:mysql://localhost/osip?useUnicode=true&characterEncoding=UTF-8&useFastDateParsing=false jdbc.default.username=osip jdbc.default.password=osip
Estos son los valores por defecto para la conexión a base de datos de OSIP (database: osip, login: osip, password: osip), cámbielos a los valores que desee tras crear la base de datos.
Una vez creada la base de datos, utilice el fichero osip_data.sql para poblarla.
Ahora podemos arrancar el servidor de aplicaciones ejecutando mydir/liferay-portal-6.0.5/tomcat-6.0.26/bin/startup.sh
Si necesita cualquier configuración extra para Tomcat (puertos, conexiones seguras, etc…) cambie cualquier parámetro que desee. Por defecto el Tomcat de OSIP corre en el puerto 8080.
Para comenzar a definir Instalaciones vaya a Panel de Control - Portal - Instalaciones
Allí encontrará un formulario donde puede crear referencias a instalaciones de Osmius formadas por cuatro atributos: nombre, descripción, Osmius Datasource y Osmius login. Osmius Datasource debe ser uno de los repositorios que declaramos como globales en pasos anteriores. Osmius login debe ser un usuario dentro de esa instalación de Osmius con rol ROOT.
Para este ejemplo hemos definido dos instalaciones de Osmius, una localizada en Madrid y otra en Barcelona. Cada una está relacionada con su propia base de datos (jdbc/osmius y jdbc/osmius2 respectivamente).
Puede gestionar sus instalaciones utilizando esta lista:
Para añadir nuevos clientes a OSIP vaya a Panel de Control - Portal - Clientes.
Este proceso creará dos entidades en Liferay: una organización que representa al cliente y un administrador para esta organización. Como puede ver, un cliente está relacionado con una instalación de Osmius y debe asignar un login de esa instalación a este cliente. Es decir, un cliente en OSIP tiene una relación uno a uno con un login en la instalación de Osmius que determina qué información puede ser vista por este cliente. En nuestro ejemplo tenemos un cliente llamado Cliente A cuya monitorización se está relizando desde la instalación de Osmius en Madrid.
Pero un cliente probablemente tendrá más de un usuario. Así que, ¿cómo podemos gestionar la seguridad si sólo tenemos un login? En OSIP, cada administrador de cliente tiene la posibilidad de definir qué datos pueden ser visualizados por cada usuario de su organización utilizando la seguridad de Liferay.
Este esquema es flexible y puede adaptarse a diferentes escenarios. Por ejemplo, un escenario común puede ser la delegación de la gestión de permisos de un cliente a proveedor de monitorización.
Una vez que el cliente queda guardado, puede getionar sus usuarios y organización desde Panel de Control - Portal - Usuarios y Panel de Control - Portal - Organizaciones.
Componer vistas personalizadas para sus usuarios es sencillo con Liferay. El primero paso es crear una nueva página haciéndo click en el menú Añadir - Página en la parte superior de la pantalla:
Después puede ir a Gestión - Página:
Allí puede editar el Look and Feel, los permisos, páginas anidadas, etc… Por favor consulte la documentación de OSIP para obtener más información sobre Administración.
Una vez creada y configurada puede comenzar a añadir portlets a su página. Liferay proporciona algunos portlets útiles por defecto y puede mezclar éstos (o cualquier otro instalado en su portal) con los proporcionados por Osmius en la misma página.
Los portlets de Osmius se distribuyen en dos grupos diferentes: Proveedor y Clientes. El primero contiene portlets diseñados para ser usados por los usuarios de un proveedor mientras que el segundo contiene portlets diseñados para ser utilizados por los usuarios de los clientes. Aunque son muy parecidos, los primeros permiten seleccionar el cliente del que quiere extraer la información que va a ser visualizada mientras que los portlets de clientes sólo permiten recuperar información relativa a ese determinado cliente.
Cuando añada un portlet de Osmius tendrá que introducir parámetros como el cliente/servicio/instancia/evento que desea ver. Para modificar estos parámetros más tarde vaya a Herramientas - Preferencias (esquina superior derecha del portlet).
Si está interesado en el desarrollo de sus propios portlets por favor consulte la documentación de Liferay sobre Desarrollo.
El portlet de Instalaciones permite a un proveedor supervisar qué está ocurriendo en todo el sistema.
La lista muestra la descripción y nombre de cada instalación seguida de los siguientes datos:
Si hace click en el nombre de una instalación se mostrarán gráficos con algunas estadísticas:
El portlet de Panel de Control es un control orientado a negocio que puede ser utilizado para obtener una vista completa del estado de los clientes. Esta vista comienza con un nivel de visión de granularidad bajo que puede ser explorado en profundidad para obtener, en el máximo nivel de detalle, las alarmas de cada elemento monitorizado de cada cliente.
La primera lista contiene un resumen acerca de los clientes:
En el ejemplo, tenemos dos clientes: A y B. El Cliente A tiene cuatro servicios y quince instancias y está siendo monitorizado desde una instalación de Osmius en Madrid. Como puede ver, este cliente tiene problemas con un servicio no disponible y una de sus instancias no está funcionando correctamente. Finalmente, el led rojo indica que estos problemas son recientes (últimas 24 horas). Veamos que ocurre cuando hacemos click en el logo del cliente.
Los controles “Últimas 24 horas” y “Últimos 30 días” encima del listado muestran un resumen dividido en periodos de tiempo que indican si ha habido problemas en ese momento para este cliente. En el ejemplo podemos ver que hemos tenido problemas en las últimas 24 horas entre las 08:00 AM y las 09:00 AM y entre las 09:00 AM y las 10:00 AM y en los dos últimos días.
Si hace click en cualquier celda roja, se mostrará una ventana emergente con detalles acerca de esos problemas:
Los campos en esta pantalla son:
Volvamos a la imagen anterior para ver qué datos se están mostrando:
Continuando con nuestra navegación desde una visión más global a otra más detallada, ahora haremos click en el servicio “Databases” para ver qué está ocurriendo:
El área situada a la izquierda muestra quién es el responsable de este servicio y su correo electrónico (Database Manager) y en horario asignado a este servicio (24×7). “Últimas 24 horas” y “Últimos 30 días” funcionan de forma similar a los controles vistos con anterioridad excepto que ahora muestran información relativa a instancias. El gráfico de Disponiblidad nos dice que este servicio no está disponible desde ayer a las 11:47:39 AM (además lo sabemos porque lo vimos en la ventana emergente anterior). La tabla contiene información sobre las instancias que componen este servicio:
Ahora haremos click en SQL Server para averiguar qué está ocurriendo con esta instancia:
Ahora, si hace click en cualquiera de las celdas rojas, podrá ver las alarmas (eventos rojos) recibidas durante ese periodo de tiempo.
Finalmente, la tabla muestra la alarmas activas para esta instancia. En el ejemplo podemos ver que tenemos una alarma porque el número de filas de una tabla de la base de datos excede los límites del umbral marcado y esto provoca un error (probablemente porque esta medida se haya establecido como un indicador ITIL).
Con este portlet hemos realizado una exploración completa de nuestra infraestructura desde una visión global a otra muy concreta:
Esta es una forma sencilla de explorar los datos de monitorización recolectados por Osmius. Aunque no siempre querremos proporcionar una visión tan completa a todos nuestros usuarios. Por esto tenemos los portlets de Cliente, Servicio e Instancia.
Estos portlets funicionan de forma similar al Panel de Control pero omiten niveles de granularidad. Por ejemplo, un portlet Cliente muestra información de un determinado cliente pero no de los otros, un porlet de servicio muestra un determinado servicio pero no otros, etc… Este esquema permite la creación de cuadros de mando totalmente configurables que pueden segmentar los datos visualizados en función del rol y los permisos de cada usuario.
El portlet de “Estado de Servidor” es un portlet específico para instancias de tipo servidor. Funciona de forma similar al portlet genérico de instancia pero proporciona una visión detallada con diferentes medidas como carga de CPU, Memoria, tráfico de red…
Para configurar estos plugins haga click en Herramientas - Preferencias
Esto mostrará diferentes parámentros. Normalmente necesitará seleccionar un Cliente, Servicio o Instancia dependiendo de cada portlet.
Por ejemplo, si añade un portlet de Servicio a su página y después edita las preferencias, verá algo como esto:
En este ejemplo estamos seleccionando “Databases” del Cliente A como servicio para ser mostrado en este portlet.
Los portlets de gráficas permiten visualizar datos recogidos por Osmius. Estos gráficos muestran datos de diferentes formas, aunque la configuración es igual para todos:
Este es la página de configuración común para cada portlet de Gráfico.
Este portlet muestra una línea de tiempo con series de datos para cada evento. Con este gráfico puede seguir medidas individuales a lo largo del tiempo.
En este gráfico cada linea representa una instancia y cada vértice es la media de ese evento en el periodo de tiempo seleccionado. Esta visualización le permite representar una o más instancias en términos de sus medidas más importantes.
Muestra un gráfico con una barra por cada evento que representa la media de valores de ese evento en el periodo de tiempo seleccionado.
Este es el gráfico más interactivo. Cada instancia está representada por una burbuja en un espacio de cinco dimensiones: tiempo, eje-x, eje-y, tamaño y color. Puede seleccionar cualquier evento de dicha instancia para cualquiera de lo cuatro últimos.
Con este gráfico puede seguir la evolución de una o más instancias en el tiempo en términos de sus medidas más importantes.