Chakray monitorizacion-kpi-service-wso2 esb-wso2bam-20140314 (1)

33 %
67 %
Information about Chakray monitorizacion-kpi-service-wso2 esb-wso2bam-20140314 (1)
Technology

Published on March 14, 2014

Author: Chakray

Source: slideshare.net

Description

En este documento detallaremos como monitorizar una serie de funcionalidades de OpenBravo ERP expuestos como “Business Services” usando un Service Proxy publicado en WSO2 ESB (WSO2 Enterprise Service Bus) con WSO2 BAM (WSO2 Business Activity Monitor).

w w w . c h a k r a y . c o m Monitorizar “Business Services” usando WSO2 ESB y WSO2 BAM Luis Peñarrubia Peñalba En este documento detallaremos como monitorizar una serie de funcionalidades de OpenBravo ERP expuestos como “Business Services” usando un Service Proxy publicado en WSO2 ESB (WSO2 Enterprise Service Bus) con WSO2 BAM (WSO2 Business Activity Monitor).

2 Por Luis Peñarrubia IT Consultant Monitorizar “Business Services” usando WSO2 ESB y WSO2 BAM En este documento detallaremos como monitorizar una serie de funcionalidades de OpenBravo ERP expuestos como “Business Services” usando un Service Proxy publicado en WSO2 ESB1 (WSO2 Enterprise Service Bus) con WSO2 BAM2 (WSO2 Business Activity Monitor). Hemos divido el artículo en los siguientes puntos: 1. Instalación WSO2 ESB y WSO2 BAM 2. Publicar proxy en WSO2 ESB 3. Integrar WSO2 ESB con WSO2 BAM 4. Invocar proxy publicado en WSO2 ESB 5. Monitorizar en WSO2 BAM 6. Gadgets en WSO2 BAM 1. Instalación WSO2 ESB y WSO2 BAM Debemos tener instaladas los productos ESB y BAM de WSO2. En este caso hemos utilizado las versiones ESB 4.8.0 y BAM 2.4.0 sobre un entorno Windows. 1.1. Instalación WSO2 ESB La instalación WSO2 ESB es muy sencilla, a continuación se detallan los pasos: 1) Descargar WSO2 ESB. Se descargará un zip con todo el contenido. 2) Descomprimir zip descargado, se creará una carpeta wso2esb-4.8.0. 3) Para arrancar el servidor simplemente debemos ejecutar el fichero wso2server.bat que se encuentra en la carpeta bin. 4) Una vez arrancado el server podemos comprobar que la instalación ha sido correcta accediendo a la consola de WSO2 ESB desde nuestro navegador: http://localhost:9443 1 http://wso2.com/products/enterprise-service-bus/ 2 http://wso2.com/products/business-activity-monitor/

3 Por Luis Peñarrubia IT Consultant El puerto por defecto es el 9443 (en el log que aparece al arrancar el server se puede comprobar) y el usuario administrador por defecto es admin/admin. 1.2. Instalación WSO2 BAM La instalación de WSO2 BAM es muy similar a la de WSO2 ESB, con la salvedad que en un entorno Windows necesitamos tener instalado cygwin3 : 1) Descargar Cygwin4 e instalarlo siguiendo el wizard. Debemos realizar la instalación básica (marcada por defecto) y asegurarnos que se instalan los paquetes: net (OpenSSH, tcp_wrapper packages) Cygwin contiene muchos paquetes, si seleccionamos todos, la instalación puede llevar bastante tiempo. 2) Una vez instalado cygwin, debemos añadir a la variable de entorno PATH su directorio bin: C:cygwinbin 3) Descargar WSO2 BAM. Se descargará un zip con todo el contenido. 3 https://docs.wso2.org/display/BAM240/FAQ 4 http://cygwin.com/install.html

4 Por Luis Peñarrubia IT Consultant 4) Descomprimir zip descargado, se creará una carpeta wso2 bam. 5) A continuación debemos modificar los puertos de arranque del servidor BAM para que no se solapen con los del ESB. Para ello debemos modificar la propiedad offset definida en el fichero wso2bam- 2.4.0/repository/conf/carbon.xml <!-- Ports offset. This entry will set the value of the ports defined below to the define value + Offset. e.g. Offset=2 and HTTPS port=9443 will set the effective HTTPS port to 9445 --> <Offset>2</Offset> 6) También debemos actualizar los puertos en el fichero wso2bam- 2.4.0/repository/conf/datasources/master-datasources.xml. Hay que sumarles a los puertos por defecto el offset indicado en el punto anterior. <datasource> <name>WSO2BAM_CASSANDRA_DATASOURCE</name> <description>The datasource used for Cassandra data</description> <definition type="RDBMS"> <configuration> <url>jdbc:cassandra://localhost:9162/EVENT_KS</url> <username>admin</username> <password>admin</password> </configuration> </definition> </datasource> <datasource> <name>WSO2BAM_UTIL_DATASOURCE</name> <description>The datasource used for BAM utilities, such as message store etc..</description> <definition type="RDBMS"> <configuration> <url>jdbc:cassandra://localhost:9162/BAM_UTIL_KS</url> <username>admin</username> <password>admin</password> </configuration> </definition> </datasource> 7) Para arrancar el servidor simplemente debemos ejecutar el fichero wso2server.bat que se encuentra en la carpeta bin.

5 Por Luis Peñarrubia IT Consultant 8) Una vez arrancado el server podemos comprobar que la instalación ha sido correcta accediendo a la consola de WSO2 BAM desde nuestro navegador http://localhost:9445 El puerto 9445 viene de sumar al puerto por defecto (9443) el offset (en el log que aparece al arrancar el server se puede comprobar) y el usuario administrador por defecto es admin/admin. 2. Publicar proxy en WSO2 ESB 2.1. Introducción En este artículo no entraremos en los detalles de la creación de proxy services en WSO2 ESB. Crearemos un proxy service que llamaremos proxy_openbravo1_bam a partir de uno existente proxy_openbravo1 y veremos cómo modificarlo para poder ser monitorizado posteriormente mediante WSO2 BAM. El proxy service del que partimos, proxy_openbravo1, hace una petición contra el DAL (Data Acces Layer) que publica OpenBravo ERP5 y transforma la respuesta REST6 con mensaje POX de OpenBravo ERP en SOAP7 1.2. No vamos a entrar en la 5 http://www.openbravo.com/ 6 http://es.wikipedia.org/wiki/Representational_State_Transfer 7 http://es.wikipedia.org/wiki/Simple_Object_Access_Protocol

6 Por Luis Peñarrubia IT Consultant implementación de este proxy service, simplemente nos interesa remarcar dos de las variables definidas en él que serán las que monitoricemos posteriormente con WSO2 BAM: -­‐ uri.var.OB_DAL: Entidad del DAL que consultamos (ej. Order) -­‐ uri.var.ID: ID del registro de la entidad que consultamos (ej. Order con id 1) 2.2. Crear proxy service Lo primero que debemos hacer es crear el nuevo proxy service proxy_openbravo1_bam en WSO2 ESB. Para ello dentro de la pestaña Main debemos hacer click en Services ! Add ! Proxy Service En este caso optamos por crear un Custom Proxy. Aparece un wizard de 3 pasos, en el primer paso simplemente introducimos el nombre que tendrá el proxy service y no especificamos nada en el resto de pasos. Al finalizar el wizard habremos creado un nuevo proxy service vacío.

7 Por Luis Peñarrubia IT Consultant Podemos ver el nuevo proxy service dentro de la pestaña Main haciendo click en Services ! List Como hemos mencionado, proxy_openbravo1_bam será una copia de proxy_openbravo1, para ello copiaremos el Source View de proxy_openbravo1 sobre el Source View de proxy_openbravo1_bam. Debemos cambiar el name en el Source View que copiamos para que coincida con el del nuevo proxy service.

8 Por Luis Peñarrubia IT Consultant 3. Integrar WSO2 ESB con WSO2 BAM Para integrar WSO2 ESB con WSO2 BAM debemos crear un BAM Server Profile. En este BAM Server Profile es donde definiremos el Stream (información que vamos a monitorizar) que enlazaremos posteriormente con nuestro proxy service publicado en WSO2 ESB. 3.1. Crear BAM Server Profile Dentro de WSO2 ESB, en la pestaña Configure debemos hacer click en BAM Server Profile. Nos aparecerá la siguiente pantalla donde debemos añadir un profile. En el profile debemos indicar: -­‐ Nombre del profile. -­‐ El usuario y password de WSO2 BAM (por defecto admin/admin). -­‐ La dirección y puerto donde se levanta Apache Thrift8 (en los logs de arranque de WSO2 BAM aparece esta información). 8 http://thrift.apache.org/

9 Por Luis Peñarrubia IT Consultant Además podemos definir Streams asociados al BAM Server Profile. En este caso vamos a crear el Stream ob1_stream en el que vamos a monitorizar las variables uri.var.OB_DAL y uri.var.ID definidas en nuestro proxy service y las guardaremos como S_OB_DAL y S_OB_ID respectivamente. El campo versión del Stream debe tener el formato X.X.X.

10 Por Luis Peñarrubia IT Consultant 3.2. Enlazar Stream en nuestro proxy service Una vez definido el Stream en nuestro BAM Server Profile, debemos modificar nuestro proxy service para añadirle un mediador de tipo BAM. Para ello debemos acceder al Design View de nuestro proxy service. Y en el segundo paso del wizard, debemos editar el Define Inline. Y añadir un mediador de tipo Agent ! BAM

11 Por Luis Peñarrubia IT Consultant En el mediador BAM debemos especificar el BAM Server Profile y el Stream que queremos asociar a nuestro proxy service. Finalmente guardamos los cambios de nuestro proxy service. Si accedemos al Source Code podemos ver como se ha asociado el Stream. <bam> <serverProfile name="openbravo1_bam_profile"> <streamConfig name="ob1_stream" version="1.0.1"/> </serverProfile> </bam>

12 Por Luis Peñarrubia IT Consultant 4. Invocar proxy publicado en WSO2 ESB Una vez hemos asociado el Stream a nuestro proxy service, vamos a realizar diversas invocaciones de nuestro proxy service para posteriormente monitorizarlas con WSO2 BAM. En este caso para invocar nuestro proxy service vamos a utilizar SoapUI. En SoapUI debemos crear un nuevo proyecto. El valor de Initial WSDL lo obtenemos del WSDSL 1.1 de nuestro proxy service. Una vez creado el proyecto, vamos a crear diferentes request SOAP 1.2. Cada request realizará una petición de consulta contra una entidad distinta de OpenBravo.

13 Por Luis Peñarrubia IT Consultant Como se puede ver en la imagen, para este ejemplo hemos creado las request: -­‐ opcrm_activity: consulta a un registro de la entidad opcrm_activity. -­‐ opcrm_opportunities: consulta a un registro de la entidad opcrm_opportunities. -­‐ opcrm_order: consulta a un registro de la entidad opcrm_order. -­‐ opcrm_product: consulta a un registro de la entidad opcrm_product. 5. Monitorizar en WSO2 BAM Una vez hemos realizado varias invocaciones de nuestro proxy service, vamos a monitorizarlas desde WSO2 BAM. Lo primero que vamos a hacer es acceder a la pestaña Tools y hacer click en Cassandra Explorer ! Explore Cluster

14 Por Luis Peñarrubia IT Consultant Debemos introducir los datos de conexión a la base de datos Cassandra9 del BAM. Estos se encuentran definidos en el fichero wso2bam- 2.4.0/repository/conf/datasources/master-datasources.xml. Una vez autenticados nos aparecerá el listado de Keyspaces. Dentro de EVENT_KS aparecerá una entrada con el nombre del Stream definido, en este caso ob1_stream. Si accedemos a la entrada ob1_stream, se muestra un listado de todas las peticiones que se han monitorizado para el stream. 9 http://cassandra.apache.org/

15 Por Luis Peñarrubia IT Consultant Si accedemos al detalle de una entrada podemos ver toda la información monitorizada. Entre ella, las dos variables que hemos definido en el Stream.

16 Por Luis Peñarrubia IT Consultant 6. Gadgets en WSO2 BAM Finalmente vamos a crear un gadget o gráfico en WSO2 BAM que nos muestre el número de peticiones que se han realizado por entidad. Es decir, vamos a graficar cuantas peticiones de las que hemos definido el 4. Invocar proxy publicado en WSO2 ESB se han realizado por tipo: -­‐ opcrm_activity: consulta a un registro de la entidad opcrm_activity. -­‐ opcrm_opportunities: consulta a un registro de la entidad opcrm_opportunities. -­‐ opcrm_order: consulta a un registro de la entidad opcrm_order. -­‐ opcrm_product: consulta a un registro de la entidad opcrm_product.

17 Por Luis Peñarrubia IT Consultant 6.1. Añadir Script de Analítica Lo primero que debemos hacer es crear en la base de datos de WSO2 BAM las tablas que contendrán dicha información. Para ello vamos a utilizar el siguiente script en Hive10 : CREATE EXTERNAL TABLE IF NOT EXISTS OpenBravo1Bam (messageID STRING, dalName STRING, dalId STRING) STORED BY 'org.apache.hadoop.hive.cassandra.CassandraStorageHandler' WITH SERDEPROPERTIES ("wso2.carbon.datasource.name" = "WSO2BAM_CASSANDRA_DATASOURCE" , "cassandra.cf.name" = "ob1_stream" , "cassandra.columns.mapping" = ":key, payload_S_OB_DAL, payload_S_OB_ID" ); CREATE EXTERNAL TABLE IF NOT EXISTS OpenBravo1BamSummary (dalName STRING, totalQueriesDone INT) STORED BY "org.wso2.carbon.hadoop.hive.jdbc.storage.JDBCStorageHandler" TBLPROPERTIES ("wso2.carbon.datasource.name" = "WSO2BAM_DATASOURCE", "hive.jdbc.update.on.duplicate" = "true" , "hive.jdbc.primary.key.fields" = "dalName" , "hive.jdbc.table.create.query" = "CREATE TABLE OpenBravo1BamSummary (dalName VARCHAR(100) NOT NULL PRIMARY KEY, totalQueriesDone INT)" ); INSERT OVERWRITE TABLE OpenBravo1BamSummary SELECT bam.dalName, COUNT(bam.dalName) AS totalQueriesDone FROM OpenBravo1Bam bam GROUP BY bam.dalName; En resumen: -­‐ La primera sentencia crea la tabla OpenBravo1Bam y la rellena con la información captada en nuestro Stream ob1_stream. -­‐ La segunda sentencia crea la tabla OpenBravo1BamSummary. Esta tabla será la que contendrá la información que posteriormente grafiquemos. 10 http://hive.apache.org/

18 Por Luis Peñarrubia IT Consultant -­‐ La tercera sentencia inserta en OpenBravo1BamSummary la información de OpenBravo1Bam agrupada de la forma que necesitamos para nuestro gráfico. Para ejecutar este script, debemos acceder a la pestaña Main y hacer click en Analytics ! Add El editor de script en esta versión de WSO2 BAM es bastante simple, se recomienda eliminar saltos de línea y tabulaciones en el script. Una vez introducido el script pulsamos en Ejecutar, validamos que la respuesta es correcta y finalmente lo guardamos. Al guardar el script nos aparecerá un popup preguntándonos si queremos programar este script. En este caso vamos a programarlo para que se ejecute cada hora. De esta forma podremos mostrar en nuestro gráfico información actualizada cada hora.

19 Por Luis Peñarrubia IT Consultant 6.2. Crear Gadget A continuación debemos crear el gadget o gráfico. Para ello debemos acceder a la pestaña Tools y hacer click en Gadget Gen Tool. Nos aparecerá un wizard en el que debemos definir el gráfico a mostrar. En el primer paso nos pide los datos del datasource WSO2BAM_DATASOURCE. En este datasource es donde se encuentra la información a mostrar. Esta información la podemos obtener del fichero wso2bam-2.4.0/repository/conf/datasources/master- datasources.xml.

20 Por Luis Peñarrubia IT Consultant En el segundo paso debemos indicar qué query vamos a mostrar en el gráfico. Además podemos previsualizar la información que se mostrará. En el tercer paso debemos indicar el tipo de gráfico, así como sus detalles (datos en cada eje, título, etc.).

21 Por Luis Peñarrubia IT Consultant En el cuarto paso debemos introducir el nombre del Gadget así como su frecuencia de refresco. Al pulsar sobre generar nos mostrará la URL donde se ha generado el Gadget. 6.3. Añadir Gadget al Dashboard de WSO2 BAM Para finalizar vamos a añadir el gráfico creado al Dashboard de WSO2 BAM. Para ello debemos hacer click en el link Go To Dashboard.

22 Por Luis Peñarrubia IT Consultant Nos aparecerá el Dashboard, desde donde podremos añadir nuestro gráfico pulsando en Add Gadgets. Copiamos la URL del gadget en el apartado Add gadget from URL y pulsamos en Add Gadget.

23 Por Luis Peñarrubia IT Consultant 7. Conclusiones Hemos detallado el proceso de cómo hacer BAM, es decir, monitorizamos la actividad realizada sobre las funcionalidades de negocio (OpenBravo ERP) expuestas como servicios usando WSO2 ESB. Mientras que WSO2 BAM nos da soporte en la recolección de información de actividad de nuestros servicios, almacenamiento de grandes volúmenes de información y en la creación de Dashboards para mostrar de manera dinámica la anterior información recolectada. Hay que tener en cuenta que hacer BAM es parte de lo que se suele llamar Inteligencia de Negocio (Business Intelligence) y que no es una actividad que se suele realizar con una única herramienta. Al contrario, la ventaja de usar WSO2 ESB y WSO2 BAM, nos permite crear una plataforma adaptable a las necesidades de los proyectos de Inteligencia de Negocio. Destaco que el uso de WSO2 ESB y WSO2 BAM nos permite dar el salto rápidamente a escenarios de aplicación relacionados a Big Data. Recordar que WSO2 BAM incluye Apache Cassandra y Apache Hive, herramientas fundamentales para el tratamiento de grandes volúmenes de información.

24 Por Luis Peñarrubia IT Consultant Autor: Luis Peñarrubia IT Consultant Chakray Consulting www.chakray.com • LinkedIn: http://www.linkedin.com/in/luispenarrubia Twitter: @LuisPenarrubia

Add a comment

Related presentations

Related pages

Chakray enterprise-security-soi-portunoidm-v3.0 - Documents

Chakray monitorizacion-kpi-service-wso2 esb-wso2bam-20140314 (1) En este documento detallaremos como monitorizar una serie de funcionalidades de OpenBravo ...
Read more

Chakray integración-service-wso2 esb-bonitabpm-20140504 ...

1. ... Chakray monitorizacion-kpi-service-wso2 esb-wso2bam-20140314 (1) Chakray formacion 2014. Chakray portales liferay. Nota de prensa chakray sonicon.
Read more