sábado, 21 de febrero de 2015

Pentaho Audit Log

Ya he hablado de este tema con anterioridad  aquí , y no estoy descubriendo el fuego...  es un tema bastante manido   pero no por ello menos útil.

De lo que se trata aquí es de redirigir el  log de  auditoria de Pentaho a una tabla de base de datos que nos permita posteriormente analizarla con un informe cómo se hacía en la anterior entrada o con un cubo de accesos y tiempos de ejecución... :D


Para ello debemos:




  • Crear la tabla en hibernate que contendrá el log...
CREATE TABLE `PRO_AUDIT` (
  `JOB_ID` varchar(255) NOT NULL,
  `INST_ID` varchar(128) DEFAULT NULL,
  `OBJ_ID` varchar(128) DEFAULT NULL,
  `OBJ_TYPE` varchar(255) DEFAULT NULL,
  `ACTOR` varchar(45) DEFAULT NULL,
  `MESSAGE_TYPE` varchar(255) DEFAULT NULL,
  `MESSAGE_NAME` varchar(128) DEFAULT NULL,
  `MESSAGE_TEXT_VALUE` varchar(128) DEFAULT NULL,
  `MESSAGE_NUM_VALUE` bigint(20) unsigned DEFAULT NULL,
  `DURATION` decimal(7,2) DEFAULT NULL,
  `AUDIT_TIME` datetime DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8

  • Redirigir el log a base de datos editando el archivo pentaho-solutions/system/pentahoObjects.spring.xml y  substituyendo:
<bean id="IAuditEntry" class="org.pentaho.platform.engine.services.audit.AuditFileEntry" scope="singleton" />

por 

<bean id="IAuditEntry" class="org.pentaho.platform.engine.services.audit.AuditSQLEntry" scope="singleton" />

  • Finalmente, reiniciamos nuestro BI server y comprobamos que el log de auditoría se va a la tabla PRO_AUDIT de hibernate...

Una vez tenemos esto... podemos hacer un cubo para analizar los datos de uso... yo he hecho uno muy sencillo, basado en la siguiente consulta (si... con el wizard...) :


SELECT ACTOR, CASE OBJ_ID WHEN 'render' THEN FILE ELSE OBJ_ID END AS RESOURCE, DURATION
,  DATE_FORMAT( AUDIT_TIME, '%Y' ) as YEAR
,   DATE_FORMAT( AUDIT_TIME, '%Y-%m' ) as MONTH
,   DATE_FORMAT( AUDIT_TIME, '%Y-%m-%d' ) as DAY
,   DATE_FORMAT( AUDIT_TIME, '%H' ) as HOUR
,   DATE_FORMAT( AUDIT_TIME, '%H:%i' ) as MINUTE
FROM ( 
SELECT ACTOR, OBJ_ID, MESSAGE_TYPE, ( select MESSAGE_TEXT_VALUE 
from PRO_AUDIT PS 
where  PA.ACTOR = PS.ACTOR 
AND  PA.INST_ID = PS.INST_ID
AND PA.MESSAGE_NAME = PS.MESSAGE_NAME
AND PS.MESSAGE_TYPE = 'instance_start'
) AS FILE, DURATION, AUDIT_TIME
FROM PRO_AUDIT PA
WHERE MESSAGE_TYPE IN ( 'instance_end' ,  'session_start')
AND OBJ_ID != 'doQuery'
) as a

Esto me da  un cubo de auditoría por usuario, recurso y tiempo... Suficiente para mi!

audit.mondrian.xml


Y se ve tal que así:


Nota Bene: Notese que estoy trabajando con Pentaho CE 4.8 y MySql aunque debería funcionar con cualquier versión...


3 comentarios:

  1. Brilliant article. The information I have been searching precisely. It helped me a lot, thanks. Keep coming with more such informative article. Would love to follow them. ibm websphere training

    ResponderEliminar
  2. Soy Абрам Александр, un hombre de negocios que pudo revivir su negocio agonizante a través de la ayuda de un prestamista enviado por Dios conocido como Benjamin Lee, el consultor de préstamos del Servicio de Financiación Le_Meridian. Soy residente en Yekaterinburg Екатеринбург. Bueno, ¿está tratando de iniciar un negocio, saldar su deuda, expandir la existente, necesita dinero para comprar suministros? Si ha tenido problemas para tratar de garantizar una buena línea de crédito, quiero que sepa que el servicio de financiación de Le_Meridian. Es el lugar adecuado para que resuelva todos sus problemas financieros porque soy un testimonio vivo y no puedo guardar esto para mí solo cuando otros están buscando una forma de ser financiados. Quiero que todos se comuniquen con este prestamista enviado por Dios. utilizando los detalles como se indica en otro para participar de esta gran oportunidad Correo electrónico: lfdsloans@lemeridianfds.com / lfdsloans@outlook.com O WhatsApp / Text + 1-989-394-3740.

    ResponderEliminar
  3. Very nice post here thanks for it .I always like and such a super contents of these post.Excellent and very cool idea and great content of different kinds of the valuable information's.

    python Training in chennai

    python Course in chennai

    ResponderEliminar