# SQLServer # Introducción **Este plugin tiene como finalidad monitorizar bases de datos SQL Server**, mediante consultas que extraerán información sobre datos que son claves para conocer el rendimiento y estado de la bases de datos, como son el número de conexiones, número de consultas y estado de los reinicios. Estos datos se verán reflejados en PandoraFMS, en módulos que aportaran el valor estadístico, dentro de un agente que representará a cada base de datos. Este plugin está desarrollado para usarse con Pandora FMS Discovery, por lo que a diferencia de otros plugins no genera agentes por XML, si no que todo lo descubierto se devuelve en la salida JSON del plugin. # Prerrequisitos Este plugin realiza conexiones remotas a las bases de datos a monitorizar, por lo que es necesario asegurar la conectividad entre el servidor de Pandora FMS y dichas bases de datos. A su vez los siguientes permisos son requeridos para el usuario que se utiliza para conectar. VIEW SERVER STATE: Para ejecutar la consulta SELECT @@VERSION. Para consultar sys.dm\_os\_sys\_info (tiempo de actividad del servidor). Para consultar sys.dm\_exec\_requests (solicitudes activas en el servidor). Para consultar @@MAX\_CONNECTIONS (máximo de conexiones permitidas). Para ejecutar sp\_who 'ACTIVE' (sesiones activas en el servidor). SELECT: Para ejecutar consultas personalizadas en las tablas o vistas de las bases de datos específicas. # Parámetros y configuración **Parámetros**
--conf | Ruta al archivo de configuración |
--target\_databases | Ruta al archivo de configuración que contiene los targets de las bases de datos |
--target\_agents | Ruta al archivo de configuración que contiene los targets de los agentes |
--custom\_queries | Ruta al archivo de configuración que contiene las consultas personalizadas |
server_startup | Supervisa el tiempo de actividad (en días) del servidor de base de datos |
locks_used | Supervisa el porcentaje de bloqueos utilizados y de propietarios de bloqueos |
workspace_memory | Supervisa la cantidad de memoria que se utiliza para ejecutar procesos como operaciones hash, de clasificación, de copia masiva y de creación de índices. |
average_waittime | Tiempo medio de espera de bloqueo de SQL Server |
restart\_detection | **Será 0 si se ha detectado un reinicio inesperado, y 1 de no ser este el caso.** Cuando un servidor se reinicia inesperadamente, puede haber una interrupción en el acceso a la base de datos y potencialmente se pueden perder transacciones o datos no guardados correctamente. |
queries | **Número de consultas totales.** Monitorizar las consultas es esencial para comprender la carga de trabajo que se está ejecutando en el servidor y evaluar el rendimiento general del sistema. Al supervisar el número total de consultas, puedes identificar picos de actividad, optimizar el rendimiento y detectar posibles problemas, como consultas ineficientes o excesivas. |
update | **Número de consultas UPDATE.** Las consultas UPDATE se utilizan para modificar los datos existentes en la base de datos. Monitorizar las consultas UPDATE es importante para evaluar la frecuencia y la eficiencia de las actualizaciones de datos. Puedes identificar consultas UPDATE que afectan a un gran número de filas o que tienen un impacto significativo en el rendimiento del servidor. Esto te permite optimizar las consultas, revisar la estructura de las tablas o tomar medidas para reducir la carga generada por las actualizaciones. |
delete | **Número de consultas DELETE.** Las consultas DELETE se utilizan para eliminar datos de la base de datos. Monitorizar las consultas DELETE es útil para evaluar la frecuencia y la eficiencia de las eliminaciones de datos. Puedes identificar consultas DELETE que afectan a un gran número de filas o que tienen un impacto significativo en el rendimiento del servidor. Esto te permite optimizar las consultas, revisar la estructura de las tablas o tomar medidas para reducir la carga generada por las eliminaciones. |
insert | **Número de consultas INSERT.** Las consultas INSERT se utilizan para insertar nuevos datos en la base de datos. Monitorizar las consultas INSERT te permite evaluar la frecuencia y la eficiencia de las inserciones de datos. Puedes identificar consultas INSERT que están generando una alta carga en el servidor o que podrían estar causando problemas de rendimiento. Esto te permite optimizar las consultas, revisar la estructura de las tablas o considerar estrategias de inserción diferida para mejorar el rendimiento en entornos de alta concurrencia. |
session usage | **Número de conexiones actuales respecto al total de conexiones máximas.** La monitorización del uso de sesiones en SQL Server es importante para optimizar el rendimiento, identificar problemas de bloqueo, mejorar la seguridad y auditoría, y planificar eficientemente los recursos del servidor. |
lock_memory | Controla la cantidad de memoria de bloqueo asignada en Bytes |
connection_memory | Controla la cantidad de memoria de conexión en Bytes |
optimizer_memory | Monitoriza la cantidad de memoria del optimizador en Bytes |
sqlcache_memory | Monitoriza la cantidad de memoria caché SQL en Bytes |
total_memory | Monitoriza la cantidad total de memoria dinámica del servidor en Bytes |
deacklocks | Supervisa el número de bloqueos por segundo |
lock_timeouts | Controlar el número de bloqueos por segundo |
lock_requests | Controlar el número de solicitudes de bloqueo por segundo |
lock_waits | Controlar el número de bloqueos por segundo |
buf_cachehit_ratio | Porcentaje de páginas encontradas en la memoria caché sin tener que leer del disco |
free_connections | Supervisa el % de conexiones libres a la instancia de SQL Server |
page_reads | Supervisa el número de lecturas de páginas de base de datos por segundo |
page_writes | Supervisa el número de escrituras de páginas de base de datos por segundo. |
latch_waits | Controla el número de peticiones de latch por segundo |
full_scans | Supervisa el número de exploraciones completas (tabla o índice) por segundo. |
server_cpu | Monitoriza el % de uso de CPU por instancia de SQL Server |
io_busy | Monitoriza el % de I/O ocupado para la instancia SQL Server |
server_io | Monitoriza el % de I/O ocupado para la instancia SQL Server |
active_connection_ratio | Supervisa la relación entre las conexiones activas y el total de conexiones permitidas. |
locked_users | Controla el número de usuarios suspendidos por bloqueos |
blocked_users | Controla el número de usuarios suspendidos por bloqueos |
active_users | Supervisa el número de usuarios que han iniciado sesión en el servidor. |
long_queries | Supervisa las consultas de larga duración (en segundos) |
long_queries_string | Salida completa de consultas de larga duración |
aag_cluster_quorum_state | Estado: < descripción >. Supervisa el estado de quórum del WSFC AlwaysOn. |
aag_cluster_members_state | Estado: < descripción >. Monitoriza el estado de los nodos WSFC AlwaysOn |
aag_synchronization_health | Estado: <descripción >. Supervisa el estado de sincronización de un grupo de disponibilidad. |
aag_replica_synchronization_health | Estado: < descripción >. Rol: < rol > . Monitoriza la salud de sincronización de una réplica de disponibilidad. |
aag_replica_connected_state | Estado: < descripción > Role: < rol > Supervisa el estado conectado de una réplica de disponibilidad. |
aag_replica_recovery_health | Estado:< descripción >. Rol: < rol >. Monitoriza la salud de recuperación de una réplica de disponibilidad. |
aag_replica_operational_state | Estado: < estado >. Rol: < rol >. Supervisa el Estado operativo actual de la réplica de disponibilidad. |
aag_db_replica_synchronization_state | Estado: < descripción >. Supervisa el estado de sincronización de las bases de datos en la réplica de disponibilidad. |
aag_listener_state | Estado: < desc >. Rol: < rol >. Supervisar el estado de escucha de grupo de disponibilidad AlwaysOn |
active users | Supervisa el número de transacciones de usuario activas por base de datos. |
transactions | Controla el número de transacciones por segundo |
active transactions | Transacciones activas |
log_flush_waits | Supervisa el número de esperas de descarga de registro por segundo. |
log_file_growths | Supervisa el uso (crecimiento) de los registros de transacciones. |
log_file_shrinks | Supervisa el uso (reducción) de los registros de transacciones. |
logfile_size | Supervisa el tamaño del archivo de registro |
logfile_usage | Monitors free space in log files |
backup_status_minutes | Controla el número de minutos transcurridos desde la última copia de seguridad |
backup_status_last_backup | Controla cuándo se hizo la última copia de seguridad |
fg_free_space | Supervisa el espacio libre en los grupos de archivos |
Monitors reserved space in user tables | Supervisa el espacio reservado en las tablas de usuario |
Monitors reserved space free data % in user tables | Supervisa el % de datos libres de espacio reservado en las tablas de usuario |