Aunque las bases de datos NoSQL no son tan conocidas como sus contrapartes relacionales, son muy populares entre las aplicaciones web. Apache Cassandra es probablemente una de las bases de datos más populares. Al igual que cualquier otro tipo de base de datos, estos también deben ser monitoreados. Y dado que puede ser abrumador vigilar constantemente las cosas manualmente, las herramientas de monitoreo son el camino a seguir. Hoy, veremos cinco de las mejores herramientas que puede usar para monitorear las bases de datos de Apache Cassandra.
Comenzaremos presentando Apache Cassandra, en caso de que aún no esté familiarizado con el producto. A continuación, analizaremos las bases de datos NoSQL y qué las diferencia de los tipos más convencionales. Luego, profundizaremos en el tema del monitoreo de bases de datos, con un enfoque en lo que se debe monitorear en las bases de datos. Esto nos llevará al núcleo de nuestra discusión, las mejores herramientas para monitorear las bases de datos de Apache Cassandra.
Sobre Apache Cassandra
Apache Cassandra es un sistema de administración de bases de datos NoSQL de código abierto y gratuito diseñado para manejar grandes cantidades de datos en muchos servidores básicos, proporcionando alta disponibilidad sin un solo punto de falla. Este sistema de base de datos de almacenamiento de columna ancha distribuida ofrece un soporte sólido para clústeres que abarcan múltiples centros de datos con replicación sin maestro asincrónica. Esto permite operaciones de baja latencia. Ha sido utilizado por grandes organizaciones como Apple, Spotify, Netflix y Uber. Se usa ampliamente en parte debido a sus características de tolerancia a fallas, escalables y descentralizadas.
Cassandra fue desarrollada inicialmente en Facebook por Avinash Lakshman, uno de los autores de Dynamo de Amazon, y Prashant Malik para impulsar la función de búsqueda en la bandeja de entrada de Facebook. Facebook lanzó el producto como un proyecto de código abierto en el código de Google en julio de 2008. Unos meses más tarde, en marzo de 2009, el proyecto se convirtió en un proyecto de Apache Incubator y aproximadamente un año después, el 17 de febrero de 2010 se graduó a un nivel superior. proyecto de nivel. El nombre es una referencia directa al profeta mitológico troyano Cassandra, con alusiones clásicas a una maldición sobre un oráculo.
Al ser una base de datos NoSQL, Cassandra usa Cassandra Query Language, una interfaz simple para acceder a Cassandra. CQL, como se le conoce habitualmente, proporciona una capa de abstracción que oculta los detalles de implementación de esta estructura y ofrece sintaxis nativa para colecciones y otras codificaciones comunes. Los controladores de idioma están disponibles para Java, Python, Node.JS, Go y C ++.
Las mejores herramientas para monitorear Apache Cassandra
Entonces, ahora que todos estamos en la misma página en cuanto a lo que implica monitorear las bases de datos de Apache Cassandra, aquí está nuestra selección de algunas de las mejores herramientas que puede usar para ese propósito. Muchas de las herramientas de nuestra lista son en realidad herramientas de supervisión de aplicaciones. Eso no debería sorprendernos, ya que Apache Cassandra es, de hecho, solo otra aplicación que se ejecuta en un servidor. Otras herramientas son herramientas de monitoreo de bases de datos más bien dedicadas, pero eso no significa necesariamente que sean mejores herramientas. Todo depende de cuáles sean sus necesidades exactas.
1. Monitor de aplicaciones y servidor SolarWinds (PRUEBA GRATUITA)
El SolarWinds Server y Application Monitor fue diseñado para servidores administradores ayudar a supervisar, sus parámetros de funcionamiento, sus procesos y las aplicaciones que se ejecutan en ellos. Puede escalar fácilmente desde redes muy pequeñas hasta grandes con cientos de servidores, tanto físicos como virtuales, distribuidos en varios sitios. La herramienta también puede monitorear servicios alojados en la nube como los de Amazon Web Services y Microsoft Azure. Esta poderosa herramienta también le permite monitorear el rendimiento y la disponibilidad de los servidores Apache Cassandra en Linux o Unix. Proporcionará detalles sobre el estado del servicio, las estadísticas de los nodos y el seguimiento de la red, lo que permitirá a los administradores ver todos los parámetros relevantes en un panel unificado.
El SolarWinds Server y supervisión de aplicaciones es muy fácil de configurar y de su configuración inicial es sólo realizan con la misma facilidad con la ayuda de su proceso de auto-descubrimiento. Es un proceso de dos pasos. El primer paso descubrirá servidores y el segundo encontrará aplicaciones. Esto puede llevar tiempo, pero puede acelerarse proporcionando a la herramienta una lista de aplicaciones específicas para buscar. Una vez que la herramienta está en funcionamiento, la GUI fácil de usar hace que su uso sea muy sencillo. Puede optar por mostrar la información en formato de tabla o gráfico.
Los precios de SolarWinds Server y Application Monitor comienzan en $ 2 995 y varían según la cantidad de componentes, nodos y volúmenes monitoreados. Una versión de prueba gratuita de 30 días está disponible para descargar, en caso de que desee probar el producto antes de comprarlo.
2. SolarWinds AppOptics (PRUEBA GRATUITA)
Lo siguiente en nuestra lista es otra gran plataforma de SolarWinds. Sin embargo, es radicalmente diferente de la entrada anterior. SolarWinds AppOptics es una basada en la nube, software como un Servicio (SaaS) para la infraestructura o la supervisión del rendimiento. Este servicio consta de dos componentes.
- AppOptics Infrastructure es un servicio de monitoreo de infraestructura tradicional que le permitirá monitorear el estado de todos sus sistemas críticos con una plataforma altamente escalable y rentable, que le brinda visibilidad continua de hosts, contenedores y su entorno sin servidor.
- El otro componente es AppOptics Application Performance Monitoring y ofrece una supervisión completa de métricas, seguimientos y registros.
Entre otras cosas, SolarWinds AppOptics ofertas distribuyen el rastreo, una funcionalidad que le permite medir y supervisar el rendimiento de pilas de aplicación en cada capa componente, incluyendo la red, base de datos, API, interfaz de usuario, etc. Por ejemplo, para ayudar a solucionar el rendimiento base de datos Apache Cassandra problemas, los desarrolladores pueden utilizar una función llamada "Consultas rastreadas". El uso de ellos, SolarWinds AppOptics puede desglosar en cualquier consulta de base de datos e identificar las llamadas de aplicación que están causando los malos resultados.
SolarWinds AppOptics proporciona un panel unificado, alertas y administración para el desempeño de las aplicaciones y el monitoreo de la infraestructura. Prácticamente elimina la división entre el rendimiento de las aplicaciones y el monitoreo de la infraestructura, lo que le permite hacer referencias cruzadas de las métricas del rendimiento de las aplicaciones, el servidor y la infraestructura en paralelo en el mismo panel de control. Puede ayudar a optimizar sus esfuerzos de solución de problemas y reducir drásticamente el tiempo de resolución.
El costo del servicio APM de SolarWinds AppOptics es de $ 2999 / año. Este es un precio con todo incluido que le permitirá monitorear hasta 10 hosts, 100 contenedores, 100 seguimientos por minuto y 1000 métricas personalizadas. Opcionalmente, puede agregar seguimientos adicionales para sitios web de alto tráfico a un costo de $ 1000 / año por 100 seguimientos adicionales por minuto o métricas personalizadas a un costo de $ 599 / año por 1000 métricas. Si prefiere probar el servicio primero, hay disponible una prueba gratuita de 14 días sin necesidad de tarjeta de crédito .
3. Administrador de aplicaciones ManageEngine
Puede que ManageEngine no sea tan conocido como SolarWinds, pero es otro nombre que goza de una excelente reputación entre los administradores de redes y bases de datos. El administrador de aplicaciones ManageEngine se ocupa de la gestión de aplicaciones. Probablemente lo habías descubierto por ti mismo. Sin embargo, este es un nombre un tanto engañoso, ya que es tanto una plataforma de supervisión como una herramienta de gestión.
Esta herramienta ofrece monitoreo integrado del rendimiento de las aplicaciones para todas sus necesidades de monitoreo de aplicaciones y servidores. También puede hacerlo para los componentes de la infraestructura subyacente, como servidores de aplicaciones, bases de datos, componentes de mensajería y middleware, servidores web, servicios web, paquetes ERP, sistemas virtuales y recursos en la nube. En pocas palabras, esta es una plataforma que lo abarca todo.
El administrador de aplicaciones de ManageEngine proporciona una supervisión y administración del rendimiento integral de Cassandra de todos los nodos de un clúster desde una consola centralizada. Le permite recopilar datos estadísticos de todas las JVM en un clúster, así como métricas de rendimiento clave como métricas de utilización de memoria, métricas de tareas de grupos de subprocesos, métricas de almacenamiento, uso de CPU, rendimiento de operaciones, latencia y tareas pendientes. La herramienta también puede rastrear las métricas del sistema operativo en sus nodos Cassandra, como la cantidad de procesadores, excepciones, uso de CPU y tendencias de tiempo.
Esta herramienta también monitorea distintos grupos de subprocesos de Cassandra para proporcionar estadísticas sobre la cantidad de tareas que están activas, pendientes, completadas y bloqueadas. Monitorear las tendencias en estos grupos para detectar aumentos en la columna de tareas pendientes puede ayudarlo a planificar agregar capacidad adicional. También puede ayudarlo a lidiar con escenarios de sobrecarga en su entorno de Cassandra al estar atento a los mensajes caídos. Puede recibir un resumen del registro de los mensajes caídos junto con el tipo de mensaje, así como establecer umbrales y configurar alarmas para notificarle los mensajes caídos.
ManageEngine Application Manager está disponible en varias ediciones. Hay una edición gratuita con funciones limitadas, así como versiones pagas Professional y Enterprise. Los precios comienzan en $ 945 y los detalles se pueden obtener comunicándose con ManageEngine. También está disponible una versión de prueba gratuita de 30 días.
4. Dynatrace
Dynatrace es otra oferta de software como servicio (SaaS) basada en la nube. Puede detectar, resolver y optimizar aplicaciones de forma automática. Descubrir y mapear un ecosistema de aplicaciones complejo es simplemente una cuestión de instalar Dynatrace OneAgent . El servicio le brindará una vista de alta fidelidad de toda su pila de aplicaciones, desde el rendimiento de las aplicaciones, la infraestructura de la nube y la experiencia del usuario. Le ayudará a detectar problemas sin esfuerzo junto con sus impactos comerciales y la causa raíz.
Cuando se le asigne la tarea de monitorear las bases de datos de Apache Cassandra, Dynatrace las detectará automáticamente en menos de cinco minutos. Le permite monitorear varias métricas, incluida la CPU, la conectividad, el tiempo de recolección de basura, la suspensión y las retransmisiones. En la pestaña " Más detalles" , puede tener una visión más profunda de las estadísticas como el uso del disco, la caché, las sugerencias, la carga, los grupos de subprocesos y la memoria administrada por Java. La plataforma también incluye análisis de causa raíz. Puede resaltar automáticamente la causa raíz de los problemas de rendimiento en nodos individuales, lo que le permite responder a los problemas del servidor mucho más rápido y brindarle toda la información necesaria para elaborar una respuesta informada.
Dynatrace también afirma tener la cobertura más amplia de cualquier solución de monitoreo en términos de idiomas admitidos, arquitecturas de aplicaciones, nube, en las instalaciones o híbridas, aplicaciones empresariales, monitoreo de SaaS y más. La herramienta detecta y supervisa automáticamente los microservicios dinámicos que se ejecutan dentro de los contenedores. Le muestra cómo se están desempeñando, cómo se comunican entre sí y lo ayuda a detectar rápidamente los microservicios de bajo rendimiento.
El precio de Dynatrace no está disponible, pero se puede obtener registrándose para la prueba gratuita de 15 días. Una vez que se registre para la prueba, solo es cuestión de instalar el agente en sus servidores y podrá comenzar a monitorear en 5 minutos.
5. AppDynamics APM
El último en nuestra lista es AppDynamics APM, una excelente herramienta de administración del rendimiento de las aplicaciones de Cisco. Esta herramienta descubrirá, mapeará y visualizará automáticamente los recorridos críticos de sus clientes a través de cada servicio de aplicación y componente de infraestructura. Proporciona a los equipos de gestión una única fuente de información para centrarse en el rendimiento de un extremo a otro en el contexto de la experiencia del cliente, en lugar de supervisar los servicios individuales.
Con las bases de datos de Apache Cassandra, AppDynamics APM las descubrirá y las agregará a su entorno de monitoreo. Una vez agregadas, hay varias métricas que puede monitorear. Por ejemplo, monitorear las comunicaciones de back-end de Cassandra le permitirá recopilar datos sobre el tiempo de respuesta promedio, errores por minuto y llamadas por minuto, brindándole una descripción general de cómo se está desempeñando el servicio.
Esta herramienta utiliza el aprendizaje automático para aprender qué es el rendimiento normal, construyendo efectivamente su propia línea de base del rendimiento de la aplicación. Permite que la herramienta le avise cuando el rendimiento no sea normal. Existe una integración directa con ServiceNow, PagerDuty y Jira para que pueda recibir alertas de inmediato y solucionar problemas antes de que los clientes los noten.
Otra gran característica son los diagnósticos inmediatos y automatizados a nivel de código de la herramienta. Sus profundas capacidades de diagnóstico le permiten identificar la causa raíz hasta la línea individual de código. Su equipo no tendrá que examinar los archivos de registro, lo que ahorrará un valioso tiempo para los desarrolladores.
AppDynamics APM está disponible en varias versiones. El más básico se llama APM Pro. APM Advanced agrega funciones de visibilidad de servidor y visibilidad de red. El nivel superior se llama APM Peak e incluye todas las características de APM Advanced más monitoreo del desempeño comercial, análisis de transacciones y viajes comerciales. Los precios se pueden obtener poniéndose en contacto con AppDynamics y hay una versión de prueba de 30 días disponible.
Presentación de bases de datos NoSQL
Una base de datos NoSQL es un tipo de base de datos que proporciona un mecanismo para el almacenamiento y recuperación de datos que se modela en medios distintos a las relaciones tabulares utilizadas en las bases de datos relacionales. Estas bases de datos han existido desde finales de la década de 1960, sin embargo, no se las conoció como "NoSQL" hasta un aumento de popularidad provocado por las necesidades de las organizaciones Web 2.0 a principios del siglo XXI. Las bases de datos NoSQL se utilizan cada vez más en big data y aplicaciones web en tiempo real. Y aunque no usan SQL per se, de ahí su nombre, algunas personas prefieren llamarlos "No solo SQL" para enfatizar el hecho de que pueden admitir lenguajes de consulta similares a SQL, como CQL para Cassandra, o sentarse junto a SQL bases de datos en arquitecturas persistentes políglotas.
Hay varios tipos de bases de datos NoSQL, con diferentes categorías y subcategorías. En el caso de la base de datos Apache Cassandra, es lo que a menudo se llama un almacén de columna ancha. Este tipo específico de base de datos NoSQL usa tablas, filas y columnas, pero a diferencia de una base de datos relacional, los nombres y el formato de las columnas pueden variar de una fila a otra en la misma tabla. Además, los almacenes de columnas anchas como Apache Cassandra no son almacenes de columnas en el sentido original del término. En los almacenes de columnas genuinos, se adopta un diseño de datos en columnas de modo que cada columna se almacena por separado en el disco. En cuanto a los almacenes de columnas anchas, a menudo admiten la noción de familias de columnas que se almacenan por separado, y cada familia de columnas contiene normalmente varias columnas que se utilizan juntas, de forma similar a las tablas de bases de datos relacionales tradicionales.
Los entresijos del monitoreo de bases de datos
Una gran cosa acerca de Cassandra es cómo viene con características como tolerancia a fallas incorporadas. Eso, sin embargo, no significa que sea una solución para configurar y olvidar. Todavía necesita ser administrado y monitoreado. Por ejemplo, la disponibilidad, el rendimiento y la seguridad de un sistema de base de datos son preocupaciones importantes para cualquier administrador de bases de datos. Esta es la razón por la que los administradores de sistemas suelen hacer uso de varias herramientas de monitoreo de bases de datos.
La configuración adecuada de sistemas de monitoreo de bases de datos puede traer varios beneficios. Por ejemplo, el monitoreo proactivo siempre es mejor que un enfoque reactivo, ya que siempre es preferible identificar cualquier señal de advertencia antes de que se convierta en un incidente importante. Además, una solución de monitoreo de base de datos adecuada puede ayudar a identificar y resolver rápidamente cualquier problema posible. Siempre que un sistema experimenta ralentizaciones inexplicables, el primer lugar donde las personas comienzan a investigar suele ser la base de datos. Pero el seguimiento no se trata solo de rendimiento. También estamos hablando de estar atento a los eventos relacionados con la seguridad. La verificación de las copias de seguridad es otro beneficio común de una buena herramienta de monitoreo de bases de datos.
No existe un modelo universalmente aceptado para crear un entorno de supervisión de bases de datos. Esto se debe en parte al hecho de que diferentes empresas utilizan diferentes bases de datos. Y dado que cada tipo de base de datos puede exponer diferentes tipos de métricas con diferentes niveles de granularidad, una métrica importante en una plataforma puede no serlo en otra.
Por ejemplo, consideremos algunas diferencias importantes entre varios tipos de bases de datos que pueden afectar su estrategia de monitoreo. Las bases de datos relacionales se utilizan principalmente en sistemas de procesamiento de transacciones en línea. Los sistemas de almacenamiento de datos alojan grandes volúmenes de datos de baja velocidad. Las bases de datos NoSQL se utilizan con mayor frecuencia en aplicaciones móviles o web para alojar metadatos o información de estado. Las bases de datos en memoria se utilizan para un rendimiento rápido. Está claro que la necesidad de seguimiento en cada uno de estos casos podría ser muy diferente.
Además, no importa qué categoría de base de datos esté utilizando, otros factores afectarán las métricas importantes. El más importante es sin duda el proveedor de software. Las métricas importantes en una base de datos Cassandra, por ejemplo, podrían ser muy diferentes de las de una base de datos MySQL o una base de datos Oracle. Del mismo modo, las bases de datos locales y alojadas en la nube podrían tener diferentes necesidades de monitoreo, siendo algunas métricas importantes en una pero no en la otra. En el caso de las bases de datos alojadas en la nube, las soluciones de bases de datos administradas y no administradas tendrán diferentes necesidades de monitoreo. Asimismo, las bases de datos locales tendrán diferentes necesidades de monitoreo dependiendo de si se ejecutan en hardware físico o virtual.
Qué monitorear
Con tantas métricas que se pueden monitorear, puede ser abrumador. Y decidir qué monitorear, y qué no, puede ser una tarea abrumadora. Hemos reunido una lista de algunas métricas que creemos que es importante monitorear. Se enumeran a continuación en diferentes categorías de seguimiento. Juntas, estas métricas pueden pintar una imagen bastante detallada del estado de cualquier entorno de base de datos.
Infraestructura
La primera categoría de métricas de monitoreo es la infraestructura. Se ocupa del hardware subyacente en el que se ejecutan sus bases de datos. Cualquier variación de estas métricas por encima de los umbrales inferiores a los aceptables probablemente afectará negativamente a otras métricas de la base de datos. Por ejemplo, la sobreutilización de la red podría desencadenar alertas de rendimiento en métricas de otras categorías.
Disponibilidad
La disponibilidad de la base de datos es, por supuesto, otra categoría de métricas que se encuentra entre las más importantes. Después de todo, generalmente querrá asegurarse de que la base de datos esté disponible y accesible antes de mirar cualquier otra métrica. Hay varias formas en que se puede monitorear la disponibilidad de la base de datos, pero entre las más populares se encuentran la accesibilidad de los nodos de la base de datos mediante protocolos comunes como ping o telnet, la accesibilidad de los puntos finales y puertos de la base de datos o eventos de conmutación por error para nodos maestros y eventos de actualización para esclavos / pares. nodos en clústeres de varios nodos. Cualquiera de estos parámetros se puede utilizar para alertarle de un problema de disponibilidad, pero combinarlos le dará la mejor protección.
Rendimiento
El rendimiento a menudo se refiere a la capacidad de transporte de datos de la red. Esto es diferente en el contexto del monitoreo de bases de datos, y realmente estamos hablando del rendimiento de la base de datos en sí. Idealmente, las métricas de rendimiento se usarían inicialmente para crear una línea de base de rendimiento o, mejor aún, varias líneas de base durante diferentes períodos de carga de trabajo. Por ejemplo, la recopilación de métricas durante el procesamiento por lotes de fin de mes o los eventos de venta del Black Friday durante varios ciclos proporcionará información sobre el rendimiento de un sistema durante esos períodos. Y puede ser bastante diferente de las operaciones fuera del horario laboral o de los eventos de ventas entre semana. Las líneas de base se pueden utilizar para crear umbrales aceptables para las alarmas. Cualquier gran desviación de los valores habituales necesitaría entonces una investigación.
Rendimiento
Los contadores de rendimiento disponibles pueden variar entre diferentes bases de datos. Por lo general, se informan en una escala de tiempo específica (por minuto o por segundo, por ejemplo). Estas métricas pueden proporcionar una señal reveladora de posibles cuellos de botella. Al igual que con el rendimiento, también se recomienda crear líneas de base para estas métricas.
Tareas programadas
Los motores de base de datos a menudo ejecutan automáticamente tareas repetitivas o trabajos programados. Algunos sistemas, como Microsoft SQL Server u Oracle, tienen una función de programación de trabajos incorporada, pero otros utilizan el programador del sistema operativo, como cron, o programadores de terceros. Independientemente de cuáles sean los trabajos reales o de cómo estén programados, lo que necesita monitorear no es solo si se ejecutaron sino, lo que es más importante, cuál fue su resultado (éxito o fracaso).
Seguridad
La seguridad es a menudo el aspecto más importante de la administración de TI y esto es tan cierto con las bases de datos como con otros sistemas. Como tal, es importante vigilar la seguridad de sus bases de datos. Y si bien es posible que no necesite monitorear todos los eventos de seguridad, es posible que desee ver su significado agregado. Vamos a explicar. Suponga que está supervisando los intentos fallidos de inicio de sesión. Un único inicio de sesión fallido es probablemente una señal de que alguien ha escrito mal una contraseña. Por otro lado, si ve cientos de ellos en un período de tiempo relativamente corto, podría ser una señal de un intento de intrusión.
Los inicios de sesión fallidos no son ciertamente el único elemento de seguridad que desea monitorear. Los eventos de cambio de configuración de la base de datos son igualmente importantes. Y también lo son las nuevas creaciones de cuentas de usuario o los cambios de contraseña. Una vez más, una sola instancia de estos eventos suele ser normal y, si se repiten, podrían ser motivo de preocupación.
Registros
Los registros son el lugar donde la mayoría de los motores de bases de datos registran varios tipos de información. Pueden estar formadas por una sola lima o por varias. Algunos sistemas se registran en archivos de texto, mientras que otros se registran en una base de datos. Pero no importa cómo, dónde o lo que registre su base de datos, sus herramientas de monitoreo también pueden ayudarlo con eso. El problema con los troncos es su cantidad. La mayoría de los sistemas crearán cientos de entradas de registro cada hora, demasiado para que las pueda manejar un humano. Algunas herramientas de monitoreo capturarán los registros, los analizarán y crearán un panel de métricas a partir de los datos que contienen. De hecho, la gestión de registros es uno de los requisitos básicos de la supervisión de bases de datos. Hay varias razones para ello, pero la más importante es la amplitud de la información que contienen.
Terminando
Todas las herramientas que acabamos de revisar son excelentes para monitorear sus bases de datos Apache Cassandra. Pero me gustaría contarte un secreto. También son excelentes para todo tipo de monitoreo. Todas las herramientas y servicios monitorearán algunas cosas además de las bases de datos. De hecho, esto es probablemente lo que más debería considerar al seleccionar su solución de monitorización. Elija uno que no solo supervise sus bases de datos, sino también todas las demás aplicaciones y servidores. Después de todo, ahorrará bastante esfuerzo al tener solo una herramienta para implementar y disfrutará de tener una interfaz de usuario unificada para la mayoría de sus necesidades de monitoreo.