Monitorizar el almacenamiento de grandes cantidades de datos

En los últimos tiempos con la llegada de las redes sociales, ha aparecido la necesidad de almacenar y manejar una enorme cantidad de información. Los sitemas gestores de bases de datos clásicos se han quedado, de algún modo, obsoletos debido a su bajo rendimiento y escalabilidad en este tipo de sistemas.

Los gigantes de las redes sociales se dieron cuenta de esto.

En 2008, Facebook creó Cassandra DB para potenciar la búsqueda en la bandeja de mensajes, y en 2010 Twitter anunció que usarían Cassandra por su capacidad para funcionar en grandes servidores cluster y ser capaz de manejar grandes cantidades de información a la vez. Hoy en día, Cassandra es un proyecto ‘top level’ de Apache, también conocido como Apache Cassandra.

Manejar grandes cantidades de datos incrementa la importancia de monitorizar esta parte de la arquitectura. Si usas Cassandra, querrás saber cómo monitorizarlo.

banner full pandora fms free demo
banner tablet pandora fms free demo
banner mobile pandora fms free demo

¿Qué es Apache Cassandra?

Apache Cassandra es un sistema gestor de bases de datos distribuído open source diseñado para manejar enormes cantidades de datos a través de muchos servidores sencillos, proporcionando alta disponibilidad. Cassandra ofrece soporte robusto para clusters abarcando múltiples centros de datos, con replicación asíncrona permitiendo operaciones con latencia baja para todos los clientes.

Principales características y comparativa con otros sistemas de bases de datos NoSQL

Como recolectar información

La extracción de información de Cassandra se hace básicamente a través de la ejecución de comandos en el sistema operativo. El cliente CQLsh es utilizado para ejecutar comandos CQL y también se obtiene información de los ficheros de log generales de Cassandra.

A continuación se describen los parámetros que obtendremos de Cassandra:

  • Cassandra_Process: Muestra información del estado del proceso de Cassandra.

  • Cassandra_CPU_Usage: Muestra el uso de la cpu por el proceso de Cassandra en %.

  • Cassandra_Memory_Use: Muestra el uso de memoria por el proceso de Cassandra en %.

  • Cassandra_Error_Log_Messages: Muestra la cantidad de mensajes de error en el log de Cassandra.

  • Cassandra_Warning_Log_Messages: Muestra la cantidad de mensajes de advertencia en el log de Cassandra.

  • Cassandra_Network_Connections: Muestra la cantidad de conexiones de clientes.

  • Cassandra_Thrift_Server_Status: Muestra el estado del servidor Thrift.

  • Cassandra_Cluster_Status : Muestra el estado del cluster principal.

  • Cassandra_Key_Cache_Size: Muestra el tamaño de la “key cache” en kbs.

  • Cassandra_Active_Commands: Muestra la cantidad de comandos activos o tareas en ejecución.

  • Cassandra_Pending_Commands: Muestra la cantidad de comandos pendientes.

  • Cassandra_Completed_Commands: Muestra la cantidad de comandos completados.

  • Cassandra_Active_Responses: Muestra la cantidad de respuestas activas a comandos.

  • Cassandra_Pending_Responses: Muestra la cantidad de respuestas pendientes a comandos.

  • Cassandra_Completed_Responses: Muestra la cantidad de respuestas completas a comandos.

  • Cassandra_Nodetool_Configuration: Detecta si Nodetool está funcionado correctamente.

Parámetros que podrían influir negativamente en el rendimiento de Cassandra:

  • Cassandra_ReadStage_Pool_Pending_Tasks

  • Cassandra_RequestResponseStage_Pool_Pending_Tasks

  • Cassandra_MutationStage_Pool_Pending_Tasks

  • Cassandra_ReadRepairStage_Pool_Pending_Tasks

  • Cassandra_ReplicateOnWriteStage_Pool_Pending_Tasks

  • Cassandra_GossipStage_Pool_Pending_Tasks

  • Cassandra_AntiEntropy_Pool_Pending_Tasks

  • Cassandra_MigrationStage_Pool_Pending_Tasks

  • Cassandra_MemoryMeter_Pool_Pending_Tasks

  • Cassandra_MemtablePostFlusher_Pool_Pending_Tasks

  • Cassandra_FlushWriter_Pool_Pending_Tasks

  • Cassandra_MiscStage_Pool_Pending_Tasks

  • Cassandra_PendingRangeCalculator_Pool_Pending_Tasks

  • Cassandra_ReplicateOnWriteStage_Pool_Pending_Tasks

  • Cassandra_Comitlog_archiver_Pool_Pending_Tasks

  • Cassandra_InternalResponseStage_Pool_Pending_Tasks

  • Cassandra_HintedHandoff_Pool_Pending_Tasks

¿Cómo monitorizar Apache Cassandra?

Para monitorizar Cassandra, utilizaremos Pandora FMS. Puedes descargar este software haciendo click aquí.

Si necesitas ayuda con su instalación, hay algunos tutoriales disponibles en la web.

Tras la instalación de Pandora FMS, puedes descargarte el plugin Cassandra.

La monitorización con este plugin se lleva a cabo básicamente obteniendo data a través de la ejecución de comandos en el sistema operativo, analizando el log de Cassandra y ejecutando nodetool (Utilidad de línea de comandos incluída en la instalación de Cassandra).

El plugin ejecuta los comandos, parsea los valores importantes en módulos de agente, formateados en XML y listos para ser enviados al servidor de datos de Pandora FMS.

Así, podemos descargar estos chequeos “prefabricados” en cualquier momento, evitándonos el tener que desarrollarlos nosotros mismos. Así es como aparece el plugin de Cassandra en la librería de la web de Pandora FMS:

Plugin on library

download_it-08

Asumimos que tienes instalado el servidor de Pandora FMS (si no es así, prueba una máquina virtual preconfigurada con Pandora FMS para hacer un test rápido). Neceistarás tener instalado un agente de Pandora FMS en el servidor de Cassandra, y también tener instalado (descargado) el plugin de Cassandra.

Después de descargar y desempaquetar el plugin (fichero tar), obtendrás un script bash (.sh) y la documentación de uso (libreoffice .odt y .pdf). Puedes leer cómo instalar Cassandra paso por paso incluyendo los requisitos necesarios.

Copia el fichero del plugin (cassandra.sh) en el directorio de los plugin de agente: /etc/pandora/plugins

Ahora, edita el fichero de configuración por defecto del agente de Pandora FMS: /etc/pandora/pandora_agent.conf
Añade esta línea:

module_plugin /etc/pandora/plugins/cassandra.sh

Reinicia el agente:

/etc/init.d/pandora_agent_daemon restart

Espera unos 5-10 segundos antes de buscar información de Cassandra en el agente que has instalado. Debería aparecer algo así:


cassandra_modules
Todos los chequeos se han ejecutado y sus resultados se han almacenado en la base de datos de histórico para cada módulo.

Hay muchas cosas que podemos hacer con esta información. Una de ellas es mostrar gráficas para cada uno de los módulos.

cassandra_graph
 

Con todos estos datos en nuestro Pandora FMS, un mundo de posibilidades está abierto ante tí:

  • Ser avisado por email/sms cuando algo va mal utilizando el sistema de alertas.
  • Una completa lista de eventos con filtro personalizable disponible desde tu navegador de internet e incluso desde tus dispositivos móviles utilizando nuestras apps.
  • Generar bajo demanda o recibir periódicamente informes completos.

¡Solamente tienes que echar un vistazo al manual de Pandora FMS para explorar todas las posibilidades!

¿Todavía no usas Apache Cassandra? Descárgalo AQUÍ

Shares