Monitoring Alfresco: Nagios/Icinga, Hyperic, AuditSurf… JMX rocks!

Si tenemos Alfresco en producción (versión Enterprise), posiblemente queramos tener la aplicación controlada de la mejor forma posible y sobre todo que ese control nos aporte una visión real de lo que está pasando en el servidor y en la aplicación. Una monitorización efectiva nos permite controlar los problemas con el servicio, atisbar problemas futuros de rendimiento, detectar cuellos de botella, anomalías, etc.

Basic RGBnagios hypericauditsurf

La necesidad estaba ahí, necesitamos una solución de monitorización potente para Alfresco. Las versiones 3.X de Alfresco Enterprise permite ver y modificar muchos propiedades de la aplicación en tiempo real, por ejemplo:

  • Cambiar el nivel de log
  • Activar o desactivar FTP, CIFS o NFS
  • Poner el repositorio en solo lectura.
  • Poner el servidor en mono-usuario.
  • Limitar el número máximo de usurios o evitar accesos adicionales.
  • Ver número de sesiones y tickets de usuarios.
  • Ver número de sesiones y tickets no válidos.
  • Y muchos parámetros más.

Todo esto es gracias al soporte de JSR-160 vía JMX.

Vamos a ver qué opciones existen y cómo podemos implementarlas. Haremos un repaso a Hyperic, AuditSurf, cómo conectar a Alfresco con Jconsole y por último cómo implementar este tipo de monitorización con Nagios o Icinga (nuevo fork de Nagios).

ACTUALIZACION: No olvides ver este y este post. A partir de este artículo hice el módulo de Nagios para Alfresco.

Read More

Webinar: Alfresco en una hora, en español.

El próximo jueves 12 de noviembre impartiré el Webinar (seminario vía Webex) sobre Alfresco, y como durará una hora pues de ahí el nombre tan “original”.

alfresco-en-una-hora

Y como dice Alfresco en su web:

Este webinar, en Castellano, está orientado a personas y a organizaciones que están empezando a mirar o evaluar Alfresco ECM. En una hora se aprende los conceptos principales del producto. El webinar está compuesto por una presentación, una demostración de producto y una sesión de preguntas.

Se ruega que las personas que quieren atender a este evento se dirijan al formulario de registro. registrarse aqui

Este webinar “Alfresco en una hora” está enfocado, principalmente, a las características de las últimas versiones de Alfresco. Como siempre, tras el evento colgaré por aquí la presentación. Los contenidos del seminario serán:
Read More

10 consejos básicos de seguridad en Alfresco

¡¡Actualizado el punto 5!!

Si estás empezando a usar Alfresco, en cuanto a seguridad y protección, es recomendable que tengas en cuenta los siguientes consejos básicos:

1. No uses la contraseña de administrador por defecto (admin/admin), debe ser lo primero que cambies al acceder por primera vez a Alfresco. Incluso puedes crear un usuario super administrador diferente a admin. A partir de la versión 3.1 puedes añadir tantos administradores como quieras en el grupo ALFRESCO_ADMINISTRATORS (vía Alfresco Explorer).

2. No uses el usuario y contraseña de base de datos por defecto. Como sabes, se usa usuario alfresco, contraseña alfresco y base de datos alfresco, para tenerlo en local está bien, pero no lo uses en un servidor, la salud de tu Alfresco depende de ello.

3. Nunca ejecutes Alfresco con un super usuario (root). Crea un usuario específico para levantar la aplicación. También recuerda que al repositorio físico (alf_data), índices y a la base de datos sólo debe acceder el usuario que levante la aplicación alfresco o el usuario que conecta a la base de datos, restringe acceso a cualquier otro usuario para evitar inconsistencias en BBDD y/o repositorio.

4. Usa un firewall como IPtables en la máquina donde está instalado Alfresco para hacer portforward de los puertos inferiores al 1024.

5. Usa un Apache y ProxyPass para proteger tu servidor de aplicaciones, no expongas tu servidor de aplicaciones. Esta configuración de Apache te puede servir de ejemplo, yo uso un fichero llamado alfresco.conf en /etc/httpd/conf.d/ (RedHat, CentOS y derivados):

ProxyPreserveHost On
ProxyPass /alfresco http://127.0.0.1:8080/alfresco
ProxyPassReverse /alfresco http://127.0.0.1:8080/alfresco

ProxyPass /share http://127.0.0.1:8080/share
ProxyPassReverse /share http://127.0.0.1:8080/share

ProxyPass /mobile http://127.0.0.1:8080/mobile
ProxyPassReverse /mobile http://127.0.0.1:8080/mobile

ProxyPass /studio http://127.0.0.1:8080/studio
ProxyPassReverse /studio http://127.0.0.1:8080/studio

También podríamos configurarlo con mod_proxy_ajp en lugar de mod_proxy, para más info sobre las virtudes de mod_proxy_ajp leer este artículo.

RewriteEngine on
RewriteRule ^/alfresco(.*) ajp://127.0.0.1:8009/alfresco$1 [P,L]
RewriteRule ^/share(.*) ajp://127.0.0.1:8009/share$1 [P,L]
RewriteRule ^/mobile(.*) ajp://127.0.0.1:8009/mobile$1 [P,L]

Recuerda activar en el server.xml del tomcat la siguiente línea y reiniciar Alfresco:

<Connector port=”8009″ enableLookups=”false” protocol=”AJP/1.3″ redirectPort=”8443″ />

6. Revisa los logs de Apache y del servidor de aplicaciones continuamente (en Apache el access_log y el error_log así como sus variantes SSL). En cuanto a Alfresco, recuerda que existe el log4j.properties y te permite investigar cualquier evento que ocurra en Alfresco.

7. Protege los accesos y autenticaciones con SSL. Esto se consigue, por ejemplo, instalando el módulo de Apache mod_ssl, de esa forma las conexiones serán seguras (independientemente si se accede desde Internet o Intranet). Además también aseguras las conexiones vía Webdav. Recuerda que accediendo por FTP las contraseñas viajan en claro.

8. Cuidado con los permisos y roles heredados en Alfresco, pueden ser un problema. Recuerda que en Alfresco el protagonista es el contenido, es en él donde hay que aplicar los permisos.

9. Aprovecha el encadenamiento (chaining) que soporta Alfresco en la autenticación y deja siempre para el final la autenticación con la BBDD local, sobre todo si no puedes acceder al LDAP de turno y quieres usar el usuario admin.

10. Realiza backup del repositorio y la base de datos todos los días, ya sea en frío (parando Alfresco) o en caliente, haciendo backup de la base de datos e inmediatamente del repositorio (en este orden). También puedes usar la aplicación de copia de seguridad de Intecna (ver repositorio de software libre de la Junta de Andalucía).

Seguro que se puede ampliar esta lista, ¿que consejos recomiendas tu?

Enseñando Alfresco por México, Perú y Chile

A finales de noviembre, haremos una gira para enseñar Alfresco al otro lado del Atlántico, tendré la oportunidad de visitar México DF, Lima y Santiago de Chile. 3 países, 3 capitales, 3 seminarios, unos 25.000 km y un buen puñado de reuniones en 11 días intensos.

seminarios-2009-ruta

Todo esto es gracias al contacto establecido con compañías locales interesadas en la formación e implantación de Alfresco en sus respectivos paises.

Según Google Analytics, México, Perú y Chile están en el Top 5 de visitantes de blyx.com, por lo tanto, si vives en estos países y estás interesado en asistir a los seminarios, aquí tienes más información:

Estos serán, a grandes rasgos, los contenidos del seminario:

  • Introducción y visión de Alfresco
    • Componentes
    • Caracteristicasalfresco_t
    • Estrategia
  • Administración del sistema Alfresco
  • Implementación: buenas prácticas
    • Casos de uso
    • Arquitectura
    • Desarrollo
    • Mantenimiento
  • Ejemplo práctico
    • Toma de requisitos
    • Reglas
    • Workflow
    • Modelo de datos

Alfresco implementation best practices (presentación)

Ya de vuelta del Meetup, decir que en líneas generales ha sido un evento bastante interesante, en cuanto a asistencia (más de 200 personas), interés de los allí presentes y nivel de las charlas. Como ya comenté, estuve hablando de buenas prácticas en la implementación de Alfresco de la mano de Intecna Soluciones.  Básicamente en la charla, que duró una hora y pico, abordémasterclass temas relacionados con los casos de uso, componentes y características de Alfresco, y finalmente consejos sobre arquitectura, clustering, autenticación, webscripts, desarrollo y seguridad, etc. La verdad es que como ya preveía, se quedaron en el tintero muchas cosas pero creo que, al menos, conté lo más importante sin profundizar mucho en el tema. Fue curioso porque el personal de Alfresco ubicó mi charla en el grupo de las “non-technical” pero sin embargo fue totalmente técnica (lo siento porque creo que algunos asistentes que no se enteraron de mucho).

Quiero agradecer a todos los asistentes y a mis compañeros de Intecna, concretamente a Fernando Gonzalez, Gildo Castillo y Roberto Gamiz que me han resuelto muchas dudas cuando estuve traduciendo y preparando la presentación. También, por supuesto, al staff de Alfresco que estuvo allí al pie del cañón y Jeff Potts, Russ Danner y Peter Monks por contar conmigo.

UPDATE: Me comenta Nancy Garrity, Alfresco Community Manager, que ya tenemos un espacio Best Practices creado en la Wiki de Alfresco para ir poniendo las buenas prácticas.

Aquí la presentación en español:

Nos vemos en Madrid, Alfresco Meetup!

intecna

El próximo martes 20 de Octubre estaremos de Meetup con Alfresco en el Hotel Meliá Los Galgos  de Madrid. Todo parece indicar que será un éxito de asistencia ya que se ha cerrado el registro con casi dos semanas de antelación, algo que no ha pasado por ahora en ninguna de las otras ciudades donde se celebrará. ¿Qué es y para qué sirve este encuentro? Alfresco lo explica muy bien en su web.

alfresco-logoDe Alfresco vendrán John Powell (CEO), Paul Hampton, Gabriele Columbro, Ben Hagan y Mike Hatfield, además del personal de Márketing y Formación. Será un placer tenerlos por tierras españolas.

He tenido la suerte de ser invitado a impartir una Master Class sobre “Buenas Prácticas con Alfresco”, cuya documentación he podido revisar junto a los gurús Jeff Potts (Optaros), Russ Danner (Rivetlogic) y Peter Monks (Alfresco). La Master Class durará una hora y media, trataré temas como usos conocidos y desconocidos de Alfresco DM y WCM, herramientas, buenas prácticas relacionadas tanto con el desarrollo como con implantación, dimensionamiento, etc. Me temo que se me harán cortos los 90 minutos…

La agenda de la jornada ya está disoponible y puedes verla aquí. Mi compañero (y experto en Alfresco) Fernando González y yo estamos deseando que llegue la fecha!! Si no nos vemos allí ya os contaré y os pasaré la presentación por SlideShare.

Posiblemente, el secreto del éxito de Alfresco

Mi gran amigo Victor Fernandez, con el que he tenido la suerte de trabajar y aprender muchas cosas en los últimos años, me preguntaba el otro día por qué está Alfresco en boca de todo el mundo, todos quieren usarlo, integrarlo y conocerlo, la respuesta que le di fue la siguiente:

Interfaces que soporta, formas de acceder, integrar, ampliar e interactuar con la aplicación:

  1. Alfresco Explorer
  2. Alfresco Share
  3. Alfrescdo iShare (en desarrollo)
  4. Webdav
  5. RSS/ATOM
  6. Webservices (SOAP)
  7. REST (AJAX/Mashups/Webscripts)exito
  8. CIFS
  9. FTP
  10. NFS
  11. SharePoint Protocol
  12. SMTP
  13. IMAP
  14. JMX
  15. CMIS
  16. JCR
  17. Java Foundation API
  18. OpenSearch
  19. WCM
  20. JBoss JBPM Workflows

No sé si se me olvida alguna pero, es interesante verdad? Podrían tomar nota algunos productos que son infinitamente más caros que Alfresco. El que no se integra es porque no quiere…

Info extendida de algunos de estos puntos aquí, gracias Alejandro.

Nueva interfaz para iPhone en Alfresco Labs 3.2

Como ya dijimos en su momento, Alfresco 3.2 traería muchas novedades. Una de las más interesantes es la nueva interfaz para dispositivos móviles y claramente diseñado para iPhone, un nuevo webclient orientado a estos dispositivos. Aunque aún está muy verde no deja de ser toda una declaración de intenciones.

Puedes descargar la versión 3.2 de Alfresco aquí, instalarla en menos de 5 minutos y probar, desde tu teléfono móvil la siguiente URL: http://IP-servidor:8080/mobile/p (importante la p al final). Estas son unas capturas hechas con mi iPhone hace unos minutos:

Pantalla de login:

foto

Pantalla principal:

foto2foto3

Puedes ver el listado completo de novedades y mejoras aquí.

Digitalización, scanning y OCR con Alfresco

alfresco-logoEn el paradigma “oficina sin papeles”, intervienen muchos actores, siendo los principales las personas, que deben ajustarse a una serie de procedimientos y metodologías, y los sistemas de información, que deben proveer soluciones al paradigma.

En cuanto a complejidad, un proyecto de “Paperless Office” es tan difícil y en ocasiones frustrante como un proyecto de “Single Sign” o “Identity Management” en grandes organizaciones consolidadas ya sean públicas o privadas. El problema principal son, por un lado las soluciones Open Source de calidad, que no son muchas, los requerimientos técnicos del cliente dados muchas veces por aplicaciones obsoletas y heredadas.

Con Alfresco, gracias a características como el soporte CIFS, Webdav, reglas, transformación de formatos, workflow o indexación, conseguimos aproximarnos a nuestro objetivo, aunque en una oficina sin papeles necesitaríamos integrarnos con otras soluciones como firma digital, etc, que ya contemplaré algún día por estos lares.

En este caso me gustaría contar qué puede hacer Alfresco por nosotros en cuanto a digitalización de documentos, escaneo masivo (bulk scan) y OCR:

a) Ad-hoc scanning: usando CIFS o Webdav con la extracción de metadatos automática (por defecto). La mayoría de las impresoras/escaner multifunción modernas de oficina y de cierta envergadura soporta montar volúmenes remotos (conectarse a carpetas de red) para colocar la documentación escaneada. También podríamos hacerlo desde un escaner conectado a nuestra estación de trabajo. De esta forma se almacenarían los documentos directamente en Alfresco y posteriormente se pueden lanzar workflows, transformaciones, reglas, etc. Por ejemplo, una hoja de gastos, hoja de reclamaciones, actas, pedidos de clientes, documentos de identificación en puestos de control, etc.

En el caso anterior, que hemos llamado Ad-hoc scanning, no se contempla indexación del contenido de los documentos ya que estas grandes impresoras por defecto no hacen reconocimiento de texto (OCR), por lo que el documento escaneado, aun conteniendo texto, sería como una imagen. Para salvar este escollo se puede integrar con Alfresco una solución gratuita llamada Intelliant, basada en la SDK de Tiger OCR. Esta solución, que sólo funciona si el servidor Alfresco está instalado en un sistema operativo MS Windows, nos permitirá, a través de reglas y transformaciones, extraer todo el texto de un documento escaneado de forma que se pueda indexar y podamos hacer búsquedas por el contenido, algo realmente cómodo.

b) Batch scanning: Cuando necesitamos escanear cientos de documentos tipo plantilla, por ejemplo hojas de matrícula, facturas, exámenes, etc, y de éstos documentos queremos extraer la información y poder vincularla a metadatos de Alfresco, ya sea del modelo de datos por defecto o de un modelo personalizado, necesitaremos una solución que permita mapear la información existente en la plantilla/documento escaneado de turno, con un tipo de contenido de Alfresco, campo del documento con un metadato en Alfresco, etc. Esta solución se llama Kofax Ascent Capture, Alfresco dispone de un plugin gratuito y disponible en la forja de Alfresco [http://forge.alfresco.com]. Este software utiliza la API de WebServices de Alfresco para realizar su trabajo. El plugin sólo funciona en MS Windows.

Kofax Ascent Capture tiene las siguientes características (fuente):

  • Corrección y mejora automática de imágenes.
  • Separado automático de documentos e identificación automática de formularios.
  • OCR, ICR y OMR para reconocimiento de texto impreso o escrito a mano en cientos de idiomas, códigos de barras y otros tipos de códigos.
  • Certificado para funcionar con la mayoría de scanners, ver listado.
  • Integración con Alfresco y gestión de procesos de negocio.

La opción a) es completamente gratuita y la opción b) depende del propio software Kofax Ascent Capture, que no es gratuito.

Hay otras soluciones como usar un escaner con soporte eCopy, cuyo conector con Alfresco ha sido desarrollado por SIRA Systems. Este conector permite a un usuario escanear un documento y ponerlo directamente en Alfresco. Este software se instala en el escaner y hace de interfaz entre el escaner y Alfresco. Sería una solución del tipo a) ya que no contempla selección ni mapeo de datos de los documentos escaneados, aunque si permite la indexación del contenido ya que incorpora un OCR, esta solución cuesta 2.495USD. Más información sobre el conector de SIRA Systems aquí.