Monitorizando SQL Server con Centreon

Venga va, que hacía ya un tiempo que no le dábamos a Centreon; hoy un clásico, pero bien. Si tenemos algún servicio de Microsoft SQL Server en nuestra organización, no podemos dejarlo pasar, a parte de su disponibilidad, debemos conocer su rendimiento!

Así que lo dicho, hoy toca desgranar nuestros servidores SQL Server y conocer qué tal se comportan, en posts anteriores ya vimos cómo se monitoriza un equipo Windows, donde se le mira una base (CPU, Memoria RAM, Swap, Uso de discos, Red, Uptime…), y a parte otros mínimos como puedan ser los servicios que ofrece, puertos, contadores de rendimiento, carga de los discos

Hoy usaremos de nuevo los maravillosos ‘Centreon-Plugins’ que sirven para casi todo, ya vimos en este post cómo instalarlos, así que caña que empezamos! Al final del post vamos a poder conocer:

  • Antigüedad del backup.
  • Procesos bloqueados.
  • Bloqueos.
  • Bloqueos/espera.
  • Esperanza de vida de la página.
  • Tamaño de las bases de datos.
  • Tamaño de los logs.
  • Tasa de aciertos de caché.
  • Trabajos fallidos.
  • Usuarios conectados.
  • Tiempo de conexión.
  • Transacciones.

 

Bien, qué necesitamos para empezar? Pues tener instalado Centreon-Plugins como hemos dicho 🙂 y luego en Centreon no será, más que crear los comandos que necesitamos que ejecute el Centreon para obtener esos datos (Desde «Configuration» > «Commands» > «Check» > «Add». ¡Ah! y obviamente también necesitamos un usuario con permisos de lectura en SQL, sea usuario local o de dominio. Bueno, nada, lo dejo esto chupado, sólo tenemos que copiar los Comandos que nos interesen:

 

  • centreon_plugins.pl_sql_backup-age
/usr/bin/perl /usr/lib/centreon/plugins/centreon-plugins/centreon_plugins.pl --hostname=$HOSTADDRESS$ --username='DOMINIO\\USUARIO' --password='CONTRASEÑA' --port=1433 --plugin=database::mssql::plugin --mode=backup-age

Nota: Si necesitas indicar la instancia ya que no es la predeterminada, a cada comando deberás añadir:

--server=$HOSTADDRESS$\NOMBRE_INSTANCIA

 

  • centreon_plugins.pl_sql_blocked-processes
/usr/bin/perl /usr/lib/centreon/plugins/centreon-plugins/centreon_plugins.pl --hostname=$HOSTADDRESS$ --username='DOMINIO\\USUARIO' --password='CONTRASEÑA' --port=1433 --plugin=database::mssql::plugin --mode=blocked-processes --warning-blocked-processes=$ARG1$ --critical-blocked-processes=$ARG2$

 

  • centreon_plugins.pl_sql_cache-hitratio
/usr/bin/perl /usr/lib/centreon/plugins/centreon-plugins/centreon_plugins.pl --hostname=$HOSTADDRESS$ --username='DOMINIO\\USUARIO' --password='CONTRASEÑA' --port=1433 --plugin=database::mssql::plugin --mode=cache-hitratio --warning=$ARG1$ --critical=$ARG2$

 

  • centreon_plugins.pl_sql_connected-users
/usr/bin/perl /usr/lib/centreon/plugins/centreon-plugins/centreon_plugins.pl --hostname=$HOSTADDRESS$ --username='DOMINIO\\USUARIO' --password='CONTRASEÑA' --port=1433 --plugin=database::mssql::plugin --mode=connected-users --warning=$ARG1$ --critical=$ARG2$

 

  • centreon_plugins.pl_sql_connection-time
/usr/bin/perl /usr/lib/centreon/plugins/centreon-plugins/centreon_plugins.pl --hostname=$HOSTADDRESS$ --username='DOMINIO\\USUARIO' --password='CONTRASEÑA' --port=1433 --plugin=database::mssql::plugin --mode=connection-time --warning=$ARG1$ --critical=$ARG2$

 

  • centreon_plugins.pl_sql_databases-size
/usr/bin/perl /usr/lib/centreon/plugins/centreon-plugins/centreon_plugins.pl --hostname=$HOSTADDRESS$ --username='DOMINIO\\USUARIO' --password='CONTRASEÑA' --port=1433 --plugin=database::mssql::plugin --mode=databases-size

 

  • centreon_plugins.pl_sql_dead-locks
/usr/bin/perl /usr/lib/centreon/plugins/centreon-plugins/centreon_plugins.pl --hostname=$HOSTADDRESS$ --username='DOMINIO\\USUARIO' --password='CONTRASEÑA' --port=1433 --plugin=database::mssql::plugin --mode=dead-locks --warning=$ARG1$ --critical=$ARG2$

 

  • centreon_plugins.pl_sql_failed-jobs
/usr/bin/perl /usr/lib/centreon/plugins/centreon-plugins/centreon_plugins.pl --hostname=$HOSTADDRESS$ --username='DOMINIO\\USUARIO' --password='CONTRASEÑA' --port=1433 --plugin=database::mssql::plugin --mode=failed-jobs --warning=$ARG1$ --critical=$ARG2$

 

  • centreon_plugins.pl_sql_locks-waits
/usr/bin/perl /usr/lib/centreon/plugins/centreon-plugins/centreon_plugins.pl --hostname=$HOSTADDRESS$ --username='DOMINIO\\USUARIO' --password='CONTRASEÑA' --port=1433 --plugin=database::mssql::plugin --mode=locks-waits --warning=$ARG1$ --critical=$ARG2$

 

  • centreon_plugins.pl_sql_logs-size
/usr/bin/perl /usr/lib/centreon/plugins/centreon-plugins/centreon_plugins.pl --hostname=$HOSTADDRESS$ --username='DOMINIO\\USUARIO' --password='CONTRASEÑA' --port=1433 --plugin=database::mssql::plugin --mode=logs-size

 

  • centreon_plugins.pl_sql_page-life-expectancy
/usr/bin/perl /usr/lib/centreon/plugins/centreon-plugins/centreon_plugins.pl --hostname=$HOSTADDRESS$ --username='DOMINIO\\USUARIO' --password='CONTRASEÑA' --port=1433 --plugin=database::mssql::plugin --mode=page-life-expectancy

 

  • centreon_plugins.pl_sql_transactions
/usr/bin/perl /usr/lib/centreon/plugins/centreon-plugins/centreon_plugins.pl --hostname=$HOSTADDRESS$ --username='DOMINIO\\USUARIO' --password='CONTRASEÑA' --port=1433 --plugin=database::mssql::plugin --mode=transactions

 

Una vez creados los Comandos nos queda crear los Servicios, en este caso uno por cada Comando, ya sabéis, los creamos desde «Configuration» > «Services» > «Services by host». Y al finalizar recordar grabar los cambios exportando la configuración de Centreon.

 

Y nada, tras un ratito que le dediquemos tendremos perfectamente monitorizado nuestro SQL Server, además de los servicios básicos que comentábamos al inicio como pueda ser CPU, RAM, Swap, Uso de discos, carga de los discos, uso de red, servicios, procesos, certificados, puertos, contadores de rendimiento de SQL Server que hay alguno interesante…. Y ahora conocemos además la Antiguedad del backup de cada base de datos, los Procesos bloqueados que puedan existir, los Bloqueos, lo Bloqueos/espera, la Esperanza de vida de la página, el Tamaño de cada bases de datos, el Tamaño de los logs de transacciones, la Tasa de aciertos de caché, los Trabajos fallidos, los Usuarios conectados, el Tiempo de conexión, e incluso las Transacciones que sufre nuestro servidor! Que sepáis que también se podrían hacer queries y monitorizar su resultado, pero eso lo vemos otro día 😉

¡Ah! y si es una máquina virtual no te olvides de sus métricas de virtualización!

 

Bueno pues con esto lo dejamos por ahora, con que a alguien le haya sido de provecho me doy por servido. Como siempre, un caluroso abrazo, gracias por compartir estas cosas por las redes sociales, es lo que nos ha tocado en el S. XXI, darle al Like a las cosas… en fin… ¡Besotes!

 

Héctor Herrero
Últimas entradas de Héctor Herrero (ver todo)