By Pass Security Version Parte II

By Pass Security Version Parte II

Hoy os traigo la segunda versión de mi byPass

¿Que he cambiado?, pues básicamente que se pueda acceder a los cuadros de mando vía nombre o TAG y no posición como hasta ahora , esto evita que si elimino algún cuadro de mando o alguna URL no afecte a nada de nuestro sistema.

Ha raíz de mi anterior post tengo que decir que hay muchas soluciones para esto aquí os dejo algunas que siempre son de utilidad:

Además he dado una vuelta mas de tuerca a la hora de mejorar el rendimiento de la búsqueda  de los tokens  ahora se guardan  en una tabla hash donde la clave es el token y el value es el DAO con toda la información, eso hace que la búsqueda sea lineal O(l)  y con un rendimiento mucho mejor, como puedes ver en el diagrama de workflow.

blank-flowchart-new-page
workflow

Os adjunto el diagrama UML basico (que esto ya no se lleva) de como se comunica todo y para que podáis ver por que he usado el patron Singelton a la hora desarrollar . Su intención consiste en garantizar que una clase sólo tenga una instancia y proporcionar un punto de acceso global a ella.

UML DAo and Singelton
UML DAo and Singelton

La instalación es igual que la anterior , como bien dice Juanjo en su blog si aun quieres tener mas seguridad puedes añadir un proxy ya sea a nivel del servidor web (ngix) o si tu arquitectura es mas complicada yo te recomiendo que pases a un sistema de DMZ y tengas un proxy-cache (Configuración de Filtros de Contenido) donde delegues esa información y trabajo. Con esto lo que conseguimos es que una vez el usuario ha hecho session no pueda acceder a mas cosas que las que ya el servidor proxy tenga configurado, además es muy buena idea que el usuario que le demos en pentaho sea lo mas restrictivo posible.

flow

Anuncios

Buenas a todos,

El otro día en el trabajo me tuve que pegar para que PDI pueda conectarse a MySQL mediante SSL . No hay que decir que MySQL y SSL en la misma frase es ya de por si es un dolor pero si sumamos a este PDI ya es una verdadera pasada.

Cuando queremos que MySQL se conecto mediante SSL, pues básicamente cuando queremos que el trafico entre ambos sea encriptado  pero no queremos montar IPSEC o VPN.

Al final y buscando y buscando encontré la solución y  la verdad es que creo que me quedo muy elegante hay que modificar spoon pero bueno es lo que hay.

Generación del  JKS (Java Key Store)

Lo primero de todo es generar el Java Key Store a partir de los certificados y las claves del cliente con este comando:

openssl pkcs12 -export -inkey client-key.pem -in client-cert.pem -out client.packe

Después con el paquete generado generamos el Java Key Store, tenemos que tener en cuenta  que el password ha de ser el mismo. Y ya tenemos todo lo necesario para la conexion.

keytool -importkeystore -deststorepass password -destkeypass password -destkeystore myKS.jks -srckeystore client.packet -srcstoretype PKCS12 -srcstorepass password -alias 1
keytool -importcert -alias mysqlCA -trustcacerts -file /root/ca-cert.pem -keystore myKS.jks

Configuración de Spoon

Ahora hay que añadir a spoon los parametros de la maquina virtual.


-Djavax.net.ssl.keyStore=path_to_keystore_file -Djavax.net.ssl.keyStorePassword=password -Djavax.net.ssl.trustStore=path_to_truststore_file -Djavax.net.ssl.trustStorePassword=password

Una vez hemos hecho esto lo que tenemos que hacer es indicar a spoon que la conexion es cifrada y para eso lo podemos hacer en dos sitios:

SimpleJNDI

En el fichero que esta en data-integration/simple-jndi/jdbc.properties

verifyServerCertificate=false&useSSL=true&requireSSL=true

Properties Spoon

En el la conexión , el menú de options añadimos esos mimso parametros

Vertica Docker Workshop

Hola a todos,

Voy a ir poniendo pequeños post de una formación de iniciación de vertica.

Hoy toca instalar un docker con un vertica y poder lanzar algunas consultas y lanzar la consola de administración.

Bien os dejo en este post

  1. Instalamos Docker (en mac no usar brew) [mac] [linux] [windows]
  2. Después lanzar el siguiente comando (docker run -ti -p 5433:5433  sowe/vertica)
  3. Instalaros o bien el VSQL lo podeis descargar de aqui o dbeaver  clientes (recomiendo usar vcli)
  4. vsql -h IP -U dbadmin -w vertica -p 5433
  5.  adjunto imagen.

Si queremos ejecutar o entrar dentro del docker y lanzar la consola de administración.

  1. docker exec -ti <container_id> bash
    1. docker ps | grep vertica
      4046a40a6585        sowe/vertica        “/docker-entrypoint.s”   21 minutes ago     Up 21 minutes       0.0.0.0:5433->5433/tcp   compassionate_yonath
    2. docker exec -ti 4046a40a6585 bash
    3. root@4046a40a6585:/# cd /opt/vertica/examples/VMart_Schema/
    4. su dbadmin
    5. dbadmin@4046a40a6585:/# cd /opt/vertica/bin/
    6. ./admintool
insert20image201560en_01_04
admin console

Ahora podemos lanzar el VSQL o VCLI o el DEABER y ver que schemas y bases de datos tenemos.

  • vcli -h localhost -U dbadmin
  • vsql -h localhost -U dbadmin

dbader

 

Vertica Materiales

Hola a todos,

Como ya sabréis el proximo  Martes es el primer taller de Vertica en Madrid. Como quiero que todo el mundo tenga instalado un maquina virtual con linux y a ser posible con la base de datos ya funcionando os he creado una maquina virtual de VirtualBox y un Docker para ello.

Por otro lado os comento que podeis  instalaros  el VSQL (cliente por linea de comandos) os lo adjunto.

 

Nos vemos Mañana.

Encoding… va encoding viene …

Hola a todos,

Hoy os quería enseñar como tratar desde una ETL el típico error de los encoding que siempre esta ahi y siempre es un coñazo de tratar, este post va dedicado a mi amigo @Caranthol.

 

Lo primero es via shell desde un trabajo lo que hacemos es llamar a este conjunto de comandos del sistema (linux)

file --mime-encoding filename or file -bi filename
iconv -f old_encoding -t new_encoding filename

Si tenemos mas de un fichero lo que podemos hacer es

for file in *.txt; do
    iconv -f ascii -t utf-8 "$file" -o "${file%.txt}.utf8.txt"
done

La otra opción es llamar al pase Select values desde una transformación y en la pestaña metada elegir el encodig que queremos

Hp Vertica Workshop in Madrid

Hola a todos,

Desde el grupo de pentaho/saiku  y en colaboración con redcloverBI y gracias ha la cooperación con  HP, vamos a organizar el primer curso de vertica en Madrid.

Aunque aun estamos trabajando sobre el curso  os queria informar antes de dar acceso a gente fuera del grupo.Y así que podais  ir viendo el contenido del curso.

Os adjunto el borrador del temario.

Day 1:

2h30mn                HPE Vertica technical overview

1h                           Download HPE Vertica from my.vertica.com and install it

3h                           Hands-on

  • Create VMart database in Vertica, create and load VMart tables
  • Run sample queries and record run time
  • Run DBD on sample queries and existing database
  • Re-run sample queries and record run time

Day 2:

4h                           Hands on use cases:

  • IoT Analytics (time series / gap filling with interpolation, event series join)
  • Click stream analysis (conditional true event, event series pattern matching)
  • Play scenarios with Vertica on data brought by the audience
  • Summary & Closing

Como podeis ver es un temario de iniciación-medio y con 4h de hands on es decir totalmente practico. Las plazas van a ser limitadas no maximo de 30 personas .

Flow Azkaban Parte 1

Start froom scratch

Hola a todos, hoy os quería enseñar una de las herramientas que me encontre por casaluidad y  que me ha solucionado muchos de los tipicos problemas que tenemos cuando vamos montando un sistema de ETL grande y con diversas fuentes independientes.

prisons-200412-azkaban-harry-potter-halloween-treat-reveals-secrets-of-umbridge-thestrals-ministers-and-azkaban-jpeg-165310Azkaban es un planificador de tareas de trabajo por lotes creado en LinkedIn para ejecutar trabajos .

Azkaban resuelve el pedido a través de las dependencias de trabajo y proporciona una interfaz  fácil de usar via  web para mantener y realizar un seguimiento de los flujos de trabajo.

  • Compatible con cualquier version de Hadoop
  • UI web de uso facil
  • Web Simple and Uploads
  • Project workspaces
  • Programar workflows
  • Modular y pluginable
  • Usuarios y Roles
  • Tracking de usuarios y acciones
  • Email de alerts o fallos y successes
  • SLA alerting y auto killing
  • Reintentos de trabajos fallidos

Vamos por partes Azkaban permite tener trabajos y hace flow s(flujos de trabajo) , que conseguimos con esto , poder  encadenar trabajos independientes de manera logica.

Yo tengo siempre el mismo problema, las empresas tiene procesos ajenos a las ETL pero que necesito poder controlar para que los datos de los procesos sean correctos ademas y es un problema que me he encontrado últimamente.

Este problema es que hay procesos que están controlados por el crontab y cuando alguno de los proceso tarda más de lo habitual el resto de los procesos se lanzan y salen datos erróneos, cosa que no es muy adecuado.

azkaban2overviewdesign
Arquitectura de Azkaban

 

Instalación

cd /tmp
curl -O https://s3.amazonaws.com/azkaban2/azkaban2/2.5.0/azkaban-solo-server-2.5.0.tar.gz
tar -zxvf azkaban-solo-server-2.5.0.tar.gz
mv azkaban-solo-server-2.5.0 /opt/
chmod +x /opt/azkaban-solo-server-2.5.0/*
mv azkaban-solo-server-2.5.0 azkaban-server
./bin/azkaban-solo-start

Una vez que tenemos esto instalado lo que hacemos es arrancar el servicio y ya podemos entrar via web.

En proximos post os ire comentado como hacer para añadir un trabajo/flujo o un SLA a un servicio , etc…. Pero es una herramienta muy buena  que nos ayuda en los típicos casos en los que tengamos un hadoop un hive etc…