Monitorización en MongoDB

MongoDB es una base de datos NoSQL orientada a documentos. Almacena una estructura de datos de tipo JSON con un esquema dinámico.

Los productos que menciona MongoDB en su Web para monitorizar son los siguientes:

http://docs.mongodb.org/manual/administration/monitoring/#third-party-tools

Imagen

1.1         Ganglia

http://sourceforge.net/apps/trac/ganglia/wiki

Script de Python que reporta operaciones por segundo, como el uso de memoria, las estadísticas btree, estado del master / slave y las conexiones actuales.

Es un sistema de control distribuido escalable para sistemas de computación de alto rendimiento, tales como clusters y Grids. Se basa en un diseño jerárquico dirigido a las federaciones de agrupaciones. Aprovecha las tecnologías utilizadas como XML para la representación de datos, XDR para compacto, transporte de datos portátil y RRDtool para el almacenamiento de datos y visualización. Utiliza las estructuras de datos y algoritmos cuidadosamente diseñados para lograr los gastos generales por nodo muy bajos y alta concurrencia

1.2         mikoomi-mongodb

https://code.google.com/p/mikoomi/wiki/03

Este plugin monitoriza la disponibilidad, utilización de recursos, el estado, el rendimiento y otros parámetros importantes de un entorno de MongoDB. Se integra con Zabbix

1.3         nagios-plugin-mongodb

https://github.com/mzupan/nagios-plugin-mongodb

Plugin para monitorizar MongoDB que se integra con Nagios

Chequea entre otros los siguientes parámetros:

  • Memoria usada
  • Conexiones abiertas
  • Porcentaje del tiempo de bloqueos
  • Promedio de tiempo de los flush
  • Tamaño de la base de datos…

Un poco de Spring Integration

Spring Integration brinda una extensión a Spring para facilitar el desarrollo de soluciones de integración soportando los Patrones de Integración Corporativos (EAI).

Puede verse como un ESB ligero montado sobre el contenedor de Spring y por tanto independiente del AppServer

Soporta estos casos de uso:

  • Transformar mensajes: permite cambiar el contenido o cabeceras de un mensaje antes de pasarlo a otro endpoint
  • Rutear mensajes: permite establecer lógica de ruteado (pj pasar de un input channel a varios output channels)
  • Filtrar mensajes: datos que no deben procesarse
  • Adaptar mensajes entre sistemas cambiando el mecanismo de comunicación
  • Split mensajes cuando el mensaje es demasiado grande
  • Agregar mensajes: generar un mensaje agregado en base a varios

En cuanto a Patrones de Integración soporta:

· Patrones de Interacción: permite a los despachar mensajes o recibirlos

· Patrones de mediación: Transforman mensajes al vuelo

· Patrones compuestos: combinaciones entre patrones de interacción y mediación

Los principales conceptos de Spring Integration son (ya los contamos en este post)

· Message:contenedor de datos (Payload) y cabecera (Header) que provee propiedades de mensajería (id, id de correlación, expiración, url de retorno,…).

· Channel: representa un canal lógico por donde se reciben o se envían mensajes.

Provee métodos para enviar (send) y recibir (receive)

Hay canales de tipo Punto a punto y Publish-Suscribe:

· Channel Adapter representa el adaptador entre el canal lógico (MessageChannel) y una implementación física de ese canal.

Hay adaptadores para ficheros, UDP, TCP, HTTP, RSS/ATOM, Web Services, Mail, JMS, JDBC, RMI, JMX, Mongo, Twitter,…

Por ejemplo:

O:

  • Message Endpoint Conecta un Handler a un MessageChannel de entrada o/y a uno de salida.

Hay diferentes tipos como:

  • Channel Adapter

  • Service Activator: invoca un servicio en base a un mensaje de entrada y envía un mensaje de salida con el resultado

  • Gateway

  • Routers, Splitters, Agregadores, Transformadores

Soporte Herramientas

Spring Integration está soportado por STS (Spring Tool Suite), que permite modelar visualmente los flujos:

Esquema de uso:

Otro ejemplo:

En STS este modelado

Corresponde con:

Algo más complejo:

Algunos componentes:

jdbcInbound:

wsOutbound:

Filter:

Splitter:

Transformer:


Sobre el soporte técnico en MongoDB

Tal y como suele ser usual en los productos open-source actuales MongoDB ofrece un modelo mixto: versión comunidad y versión comercial.

Si usamos el modelo open-source el soporte podemos obtenerlo de:

Si preferimos o necesitamos una versión comercial con soporte tenemos varias opciones, lo que se llaman Suscripciones MongoDB y entre estas tenemos Basic, Standard o Enterprise

Las diferencias entre las suscripciones pueden verse aquí:

Todas salvo la suscripción Enterprise se basa en la versión Community de MongoDB.

Las diferencias entre MongoDB y MongoDB Enterprise:

Más información

Humor:Llego tarde a una reunión!

Publicado en Humor. Leave a Comment »
A %d blogueros les gusta esto: