sql >> Base de Datos >  >> NoSQL >> MongoDB

Supervisión del estado y el rendimiento de ClusterControl

En las dos publicaciones de blog anteriores, cubrimos tanto la implementación de los cuatro tipos de agrupamiento/replicación (MySQL/Galera, MySQL Replication, MongoDB y PostgreSQL) como la administración/supervisión de sus bases de datos y clústeres existentes. Entonces, después de leer estas dos primeras publicaciones de blog, pudo agregar sus 20 configuraciones de replicación existentes a ClusterControl, expandirlas y, además, implementar dos nuevos clústeres de Galera mientras hacía muchas otras cosas. O tal vez implementó sistemas MongoDB y/o PostgreSQL. Entonces, ¿cómo los mantiene saludables?

De eso se trata exactamente esta publicación de blog:cómo aprovechar la funcionalidad de asesores y supervisión del rendimiento de ClusterControl para mantener en buen estado sus bases de datos y clústeres de MySQL, MongoDB y/o PostgreSQL. Entonces, ¿cómo se hace esto en ClusterControl?

Lista de clústeres de bases de datos

La información más importante ya se puede encontrar en la lista de clústeres:siempre que no haya alarmas y no se muestre que ningún host esté inactivo, todo funciona bien. Se activa una alarma si se cumple una determinada condición, p. el host está cambiando y le informa sobre el problema que debe investigar. Eso significa que las alarmas no solo se activan durante una interrupción, sino que también le permiten administrar sus bases de datos de manera proactiva.

Suponga que inicia sesión en ClusterControl y ve una lista de clústeres como esta, definitivamente tendrá algo que investigar:un nodo está inactivo en el clúster de Galera, por ejemplo, y cada clúster tiene varias alarmas:

Una vez que haga clic en una de las alarmas, accederá a una página detallada de todas las alarmas del clúster. Los detalles de la alarma explicarán el problema y, en la mayoría de los casos, también recomendarán la acción para resolver el problema.

Puede configurar sus propias alarmas creando expresiones personalizadas, pero eso ha quedado obsoleto a favor de nuestro nuevo Developer Studio que le permite escribir Javascripts personalizados y ejecutarlos como asesores. Volveremos a este tema más adelante en esta publicación.

Descripción general del clúster:paneles

Al abrir la descripción general del clúster, podemos ver inmediatamente las métricas de rendimiento más importantes para el clúster en las pestañas. Esta descripción general puede diferir según el tipo de clúster ya que, por ejemplo, Galera tiene diferentes métricas de rendimiento para observar que MySQL, PostgreSQL o MongoDB tradicionales.

Tanto la vista general predeterminada como las pestañas preseleccionadas son personalizables. Al hacer clic en Descripción general -> Configuración de tablero se le da un diálogo que le permite definir el tablero:

Al presionar el signo más, puede agregar y definir sus propias métricas para graficar el tablero. En nuestro caso, definiremos un nuevo tablero con el promedio de cola de envío y recepción específico de Galera:

Este nuevo tablero debería brindarnos una buena perspectiva de la longitud promedio de la cola de nuestro clúster de Galera.

Una vez que haya presionado Guardar, el nuevo tablero estará disponible para este clúster:

De manera similar, también puede hacer esto para PostgreSQL, por ejemplo, podemos monitorear los bloques compartidos golpeados versus los bloques leídos:

Como puede ver, es relativamente fácil personalizar su propio tablero (predeterminado).

Descripción general del clúster - Monitor de consultas

La pestaña Query Monitor está disponible para configuraciones basadas en MySQL y PostgreSQL y consta de tres paneles:consultas principales, consultas en ejecución y valores atípicos de consultas.

En el panel de Consultas en ejecución, encontrará todas las consultas actuales que se están ejecutando. Esto es básicamente el equivalente de la declaración SHOW FULL PROCESSLIST en la base de datos MySQL.

Las consultas principales y los valores atípicos de consultas se basan en la entrada del registro de consultas lentas o el esquema de rendimiento. Siempre se recomienda usar Performance Schema y se usará automáticamente si está habilitado. De lo contrario, ClusterControl utilizará el registro de consultas lentas de MySQL para capturar las consultas en ejecución. Para evitar que ClusterControl sea demasiado intrusivo y que el registro de consultas lentas crezca demasiado, ClusterControl probará el registro de consultas lentas encendiéndolo y desactivándolo. Este bucle está configurado de forma predeterminada en 1 segundo de captura y el long_query_time se establece en 0,5 segundos. Si desea cambiar esta configuración para su clúster, puede hacerlo a través de Configuración -> Monitor de consulta .

Consultas principales, como su nombre indica, mostrará las consultas principales que se muestrearon. Puede ordenarlos en varias columnas:por ejemplo, la frecuencia, el tiempo medio de ejecución, el tiempo total de ejecución o el tiempo de desviación estándar:

Puede obtener más detalles sobre la consulta seleccionándola y esto presentará el plan de ejecución de la consulta (si está disponible) y sugerencias/avisos de optimización. Query Outliers es similar a Top Queries pero luego le permite filtrar las consultas por host y compararlas en el tiempo.

Descripción general del clúster:operaciones

Al igual que los sistemas PostgreSQL y MySQL, los clústeres de MongoDB tienen la descripción general de las operaciones y son similares a las consultas en ejecución de MySQL. Esta descripción general es similar a emitir el comando db.currentOp() dentro de MongoDB.

Descripción general del clúster:rendimiento

MySQL/Galera

La pestaña de rendimiento es probablemente el mejor lugar para encontrar el rendimiento general y el estado de sus clústeres. Para MySQL y Galera consta de una página de descripción general, los asesores, descripciones generales de estado/variables, el analizador de esquemas y el registro de transacciones.

La página de descripción general le brindará una descripción general gráfica de las métricas más importantes en su clúster. Esto es, obviamente, diferente por tipo de clúster. Se han establecido ocho métricas de forma predeterminada, pero puede configurar fácilmente las suyas, hasta 20 gráficos si es necesario:

Los asesores son una de las características clave de ClusterControl:los asesores son verificaciones programadas que se pueden ejecutar bajo demanda. Los asesores pueden evaluar casi cualquier hecho conocido sobre el host y/o el clúster y dar su opinión sobre el estado del host y/o el clúster e incluso pueden dar consejos sobre cómo resolver problemas o mejorar sus hosts.

La mejor parte está por llegar:puede crear sus propias comprobaciones en Developer Studio (ClusterControl -> Administrar -> Developer Studio ), ejecútelos en intervalos regulares y utilícelos nuevamente en la sección Asesores. Publicamos un blog sobre esta nueva función a principios de este año.

Omitiremos la descripción general de estado/variables de MySQL y Galera, ya que es útil como referencia, pero no para esta publicación de blog:es suficiente que sepa que está aquí.

Ahora suponga que su base de datos está creciendo pero quiere saber qué tan rápido creció la semana pasada. De hecho, puede realizar un seguimiento del crecimiento de los datos y los tamaños de los índices directamente desde ClusterControl:

Y además del crecimiento total en el disco, también puede informar los 25 esquemas más grandes.

Otra característica importante es el analizador de esquemas dentro de ClusterControl:

ClusterControl analizará sus esquemas y buscará índices redundantes, tablas MyISAM y tablas sin clave principal. Por supuesto, depende totalmente de usted mantener una tabla sin una clave principal porque alguna aplicación podría haberla creado de esta manera, pero al menos es bueno obtener el consejo aquí de forma gratuita. Schema Analyzer incluso recomienda la instrucción ALTER necesaria para solucionar el problema.

PostgreSQL

Para PostgreSQL, los asesores, el estado de la base de datos y las variables de la base de datos se pueden encontrar aquí:

MongoDB

Para MongoDB, las estadísticas de Mongo y la descripción general del rendimiento se pueden encontrar en la pestaña Rendimiento. Las estadísticas de Mongo son una descripción general de la salida de mongostat y la descripción general de rendimiento ofrece una buena descripción gráfica de los contadores de operaciones de MongoDB:

Reflexiones finales

Le mostramos cómo mantener sus ojos en las funciones más importantes de monitoreo y verificación de estado de ClusterControl. Obviamente, este es solo el comienzo del viaje, ya que pronto comenzaremos otra serie de blogs sobre las capacidades de Developer Studio y cómo puede aprovechar al máximo sus propias comprobaciones. También tenga en cuenta que nuestro soporte para MongoDB y PostgreSQL no es tan extenso como nuestro conjunto de herramientas de MySQL, pero estamos mejorando esto continuamente.

Puede preguntarse por qué nos hemos saltado la supervisión del rendimiento y las comprobaciones de estado de HAProxy, ProxySQL y MaxScale. Lo hicimos deliberadamente ya que la serie de blogs cubrió solo las implementaciones de clústeres hasta ahora y no la implementación de componentes HA. Así que ese es el tema que cubriremos la próxima vez.