Dashboard MySQL/MariaDB en Grafana (Collectd)

por | enero 24, 2019

Existen ya unos cuantos dashboards para MySQL/MariaDB pero en el caso del recolector Collectd los que he encontrado son para scripts en Python hechos a medida. Existe también el plugin dbi que permite hacer queries particulares a la BBDD para obtener métricas concretas, aunque no he visto que este se utilice demasiado pudiendo hacerte tus propios scripts.

Me he montado un dashboard para visualizar las métricas que proporciona Collectd de forma nativa con el plugin mysql. He subido el json a un gist de mi cuenta en GitHub para quien le interese. Aún se pueden añadir más visualizaciones, aunque he incluído entre otras: número de conexiones a Base de Datos, estadísticas Query Cache, comandos SQL, bloqueos, threads, slow queries…

Sigue leyendo

Distribuyendo nuestra clave pública de SSH con Ansible

por | enero 15, 2019

En función del número de servidores donde tengamos que copiar nuestra clave pública, puede ser una tarea sencilla o convertirse en algo tedioso. Ansible nos proporciona una manera rápida de hacerlo en tantos servidores como necesitemos con el módulo authorized_key.

El único requisito es que el usuario con el que vamos a conectar por SSH exista en la máquina remota y tenga en todas la misma contraseña.

En el directorio de nuestro playbook creamos el fichero ansible.cfg con el siguiente contenido:

[defaults]
host_key_checking = false

Sigue leyendo

Configuración UDP y TCP del balanceador mod_cluster

por | enero 9, 2019

Ya habíamos visto anteriormente las distintas maneras de instalar mod_cluster en nuestro Apache. Ahora toca configurarlo para balancear carga con los servidores backend de Jboss.

Como vimos durante la instalación, mod_cluster se sirve de diversos módulos que cumplen una función específica:

LoadModule cluster_slotmem_module modules/mod_cluster_slotmem.so
LoadModule manager_module modules/mod_manager.so
LoadModule proxy_cluster_module modules/mod_proxy_cluster.so
LoadModule advertise_module modules/mod_advertise.so

Cada uno tiene estas funciones:

  • Gestión de memoria y caché con mod_cluster_slotmem
  • Canal conector (mod_proxy_cluster): como su nombre indica es el módulo que hace de proxy y se encarga de dirigir el tráfico del frontend al backend utilizando protocolo AJP, HTTP o HTTPS.
  • Canal de administración (mod_manager): por defecto escucha en el puerto 6666 y mediante el protocolo MCMP se encarga de mantener la lógica del balanceador entre el fronted y el backend: nodos dados de alta en cada balanceador, políticas balanceo por round robin o carga, activación/desactivación de nodos, etc…
  • Canal advertise (mod_advertise): recibe las comunicaciones de los nodos backend para unirse al balanceador (discovery)

Sigue leyendo

Curator: eliminando índices de Elasticsearch

por | enero 7, 2019

La herramienta Curator nos permite trabajar de forma sencilla con nuestros índices de Elasticsearch. Una de sus funcionalidades es la de eliminar índices con cierta antigüedad, ideal para realizar limpiezas periódicas y evitar que aumente la ocupación en disco de forma indefinida.

En estos momentos Curator tiene su propio repositorio independiente del principal de elastic. En mi caso en Debian 9 creo el fichero /etc/apt/sources.list.d/curator.list

deb [arch=amd64] https://packages.elastic.co/curator/5/debian9 stable main

Después con apt instalamos:

apt update && apt-get install elasticsearch-curator

También se puede instalar con pip independientemente del sistema:

pip install elasticsearch-curator

Sigue leyendo

Instalación de mod_cluster en Apache

por | diciembre 17, 2018

Si tenemos cuenta en Red Hat con suscripción activa podemos descargar el conector nativo (módulo para Apache) desde su web.

Si no tenemos cuenta, también podemos hacernos con el módulo descargando los binarios. Actualmente las dos versiones de la rama estable disponibles en la web de Jboss son:

Tenemos una tercera opción que es compilar el módulo desde código fuente. Esta opción además es la única que tenemos de momento para conseguir el módulo de la rama de desarrollo 2.0 que actualmente se encuentra en pre-release y sin binarios oficiales publicados.

Sigue leyendo