Dentro de las labores del buen DBA está la de asegurar el correcto estado de las instancias SQL y esto se consigue gracias a una buena monitorización del entorno y de las instancias en sí mismas. No obstante, es importante aclarar qué es necesario monitorizar y cómo hacerlo.
Para asegurar el correcto estado de las instancias SQL es necesario el correcto estado a su vez del hardware en el que se encuentra esa instancia; por lo tanto, algunos de los parámetros importantes a comprobar en una monitorización pueden ser:
- Consumo de CPU
- Consumo de memoria
- Latencias de disco
- Bloqueos
- Event-log de SQL
- Espacio libre en discos críticos para el servicio (C:\, discos donde se almacenen los ficheros de datos, log y backups…)
Estos parámetros se comprobarán mediante la ejecución periódica de scripts (a partir de ahora KPIs) o mediante la activación de servicios como el “Performance Monitor” para capturar información de telemetría del servidor. Estos datos serán procesados y almacenados para poder lanzar alertas o realizar análisis más detallados si fuese oportuno.
Es necesario aclarar que habría dos tipos de KPIs. Por un lado estarían aquellos KPIs que se encargarían de consultar un determinado parámetro en el entorno de producción (CPU, bloqueos, servicios detenidos…) y lanzar una alerta si el valor del parámetro supera un determinado umbral, en Flex denominamos a estos KPIs de tipo “Monitor”; otros KPIs/servicios se encargarán de recolectar información del entorno productivo con el objetivo de hacer un análisis periódico de los datos almacenados para poder hacer un análisis del estado global del sistema, en Flex conocemos estos KPIs como “Assesments” y solemos usarlos para almacenar datos como el PLE, las latencias de disco, el crecimiento de los ficheros SQL, telemetría…
Normalmente será necesario disponer de un servicio o programador de tareas que lance los KPIs encargados de comprobar éstos parámetros. Este servicio puede encontrarse en el propio servidor de producción (Nagios) o puede ser ejecutado desde un servidor externo (Flex), lo ideal es disponer de un servicio que se pueda ejecutar fuera del servidor de producción para que así se libere de esa carga a la máquina.
Estos KPIs/servicios pueden ser de varios tipos y cada uno de ellos tendrá distintas limitaciones y complicaciones:
- WMI
- T-SQL
- PowerShell
- Performance Monitor
La información recolectada se puede explotar de distintas maneras:
- Reporting Services
- PowerBI
- Chatbot