Pandora FMS: Plugin Enterprise de SQL

19
Pandora FMS Manual de Administrador Monitorización SQL Server

description

Este plugin permite monitorizar entornos de servidor sql extrayendo información mediante: la consola de powershell 2.0, una interfaz abierta para especificar colas sql y sqlps.exe. Para más información visite la siguiente pagina web: http://pandorafms.com/index.php?sec=Library&sec2=repository&lng=es&action=view_PUI&id_PUI=315

Transcript of Pandora FMS: Plugin Enterprise de SQL

Page 1: Pandora FMS: Plugin Enterprise de SQL

Pandora FMSManual de Administrador

Monitorización SQL Server

Page 2: Pandora FMS: Plugin Enterprise de SQL

Manual de Administración Monitorización SQL Server  

© Artica Soluciones Tecnológicas 20052012

Indice1Changelog...........................................................................................................................................32Introducción........................................................................................................................................43Requisitos...........................................................................................................................................54Matriz De Compatibilidad .................................................................................................................65Clasificación de módulos de agentes software generados..................................................................7

5.1.Verificación de estado en SQL Server.......................................................................................75.2.Verificación de Performance Counters......................................................................................8

6Instalación.........................................................................................................................................137Monitorización ................................................................................................................................14

7.1.Monitorización via Powershell................................................................................................147.2.Monitorización de instancias SQL...........................................................................................16

Page 3: Pandora FMS: Plugin Enterprise de SQL

1 CHANGELOG

Date Author Change Version

02/08/12 Tomas First Version v1r1

Page 3

Page 4: Pandora FMS: Plugin Enterprise de SQL

2 INTRODUCCIÓN

Este documento tiene como objetivo la descripción de la monitorización masiva de contadores de 

rendimiento en entornos Windows con un servicio SQL integrado.

Para la extracción de la información  se  utiliza:

• Consola Powershell 2.0 (instalado por defecto en Windows Server 2008 R2, y Windows 7. 

Disponible desde Windows XP SP2 en adelante)

• Una interfaz “abierta” (la de Pandora, como extensión de la sección de administración) para 

especificar consultas SQL libres.

• El   sistema,   que   se   integra   con   el   agente   Windows   y   con   la   capacidad   de   distribuir 

colecciones  de   ficheros,  de   forma  que   se   puede  distribuir   el   plugin  por  un   lado   y   las  

colecciones de ficheros de forma individual por agente y/o por política.

• SQLPS.exe, es decir, la consola de administración de SQL Server para Powershell. Disponible 

a partir de SQL Server 2008, en versiones anteriores necesitamos instalarlo a parte.

Cabe destacar que el plugin de monitorización de Performance Counters se puede usar para recoger 

información de tipo numérico (para hacer gestión del rendimiento).

Page 4

Page 5: Pandora FMS: Plugin Enterprise de SQL

3 REQUISITOS

Los requisitos para que funcione correctamente esta monitorización son los siguientes:

• Instalar el agente windows de Pandora FMS en la versión 3.2.1 o superior.

• Una consola Powershell 2.0 para ejecutar el plugin. Por defecto viene instalada en sistemas 

Windows Server 2008 R2 y Windows 7, pero debe ser descargada para versiones anteriores 

de Windows. Powershell no es compatible con sistemas Windows XP SP1 e inferiores.

• Es necesario que el  usuario con el  que se ejecuta el  agente de Pandora FMS, que es el 

usuario que ejecutará el plugin, disponga de los siguiente permisos del sistema: 

◦  Administrador Local

• La política de ejecución de scripts Powershell debe ser establecida como RemoteSigned o 

inferior: 

Set-ExecutionPolicy RemoteSigned

• Los diversos plugins obtendrán automáticamente la información de todos los contadores que 

le hayamos especificado en una lista en el archivo  counters.txt  y generará un módulo por 

cada  uno en Pandora  (Plugin PerfCounter).  Así  mismo,  obtendrán  información sobre  el 

estado de los elementos críticos de cara al servidor SQL (Plugin SQL).

• Configuración  adecuada de   las   conexiones   y  permisos  para  permitir   al  agente   software 

desde el que se ejecuta el plugin, establecer conexión y loguearse contra las instancias a 

monitorizar y extraer información de sus bases de datos:

◦ Rol de servidor Public con permisos para loguearse en las instancias.

◦ Rol de base de datos db_datareader en todas las BBDD de las instancias.

Page 5

Page 6: Pandora FMS: Plugin Enterprise de SQL

4 MATRIZ DE COMPATIBILIDAD 

La matriz de compatibilidad del agente es la siguiente 

Sistemas donde se ha probado• Windows Server 2008 con SQL Server 

2008

Sistemas donde deberia funcionar • Mismo sistema o superior con requisitos 

instalados.

Según el idioma del sistema, el formato de los contadores a monitorizar pueden cambiar, con lo que 

sería necesario adaptar el fichero counters.txt en función de dichas circunstancias.

Page 6

Page 7: Pandora FMS: Plugin Enterprise de SQL

5 CLASIFICACIÓN DE MÓDULOS DE AGENTES SOFTWARE GENERADOS

5.1. Verificación de estado en SQL Server

La   verificación   de   estado   de   los   servidores   SQL   se   realiza   mediante   el   plugin 

Pandora_Plugin_SQL.ps1 y puede ser aplicada en la tecnología específica de SQL, de forma genérica 

(en el caso de instancias locales), o añadiendo diferentes listados de instancias.

Módulos generados:

– SQL Monitoring

– CPU_Busy – InstanceName, CPU_Timetick – InstanceName

– Idle Time – InstanceName, IO_Busy – InstanceName

– Input Packets Read – InstanceName, Input Packets Sent – InstanceName

– Instance Status – InstanceName, DatabaseName Status – InstanceName

– Packet Errors – InstanceName, Total Disk R/W Errors – InstanceName

– Total Disk Reads – InstanceName, Total Disk Writes – InstanceName

– Total Login Attempts – InstanceName

Page 7

Page 8: Pandora FMS: Plugin Enterprise de SQL

5.2. Verificación de Performance Counters

La   verificación   de   contadores   de   rendimiento   se   realiza   mediante   el   plugin 

Pandora_Plugin_PerfCounter.ps1   y   puede   ser   aplicada   en   diferentes   políticas   para   diferentes 

tecnologías,   cada   una   con   diferentes   listados   de   contadores   en   función   de   qué   queramos 

monitorizar de cada una de dichas tecnologías.

A continuación mostramos el listado de contadores a monitorizar en el caso de SQL Server:

– SQL Server Monitoring

– \SQLServer:Access Methods\Full Scans/sec – \SQLServer:Access Methods\Range Scans/sec – \SQLServer:Access Methods\Probe Scans/sec – \SQLServer:Access Methods\Scan Point Revalidations/sec – \SQLServer:Access Methods\Workfiles Created/sec – \SQLServer:Access Methods\Worktables Created/sec – \SQLServer:Access Methods\Worktables From Cache Ratio – \SQLServer:Access Methods\Forwarded Records/sec – \SQLServer:Access Methods\Skipped Ghosted Records/sec – \SQLServer:Access Methods\Index Searches/sec – \SQLServer:Access Methods\FreeSpace Scans/sec – \SQLServer:Access Methods\FreeSpace Page Fetches/sec – \SQLServer:Access Methods\Pages Allocated/sec – \SQLServer:Access Methods\Extents Allocated/sec – \SQLServer:Access Methods\Mixed page allocations/sec – \SQLServer:Access Methods\Extent Deallocations/sec – \SQLServer:Access Methods\Page Deallocations/sec – \SQLServer:Access Methods\Page Splits/sec – \SQLServer:Access Methods\Table Lock Escalations/sec – \SQLServer:Access Methods\Deferred Dropped rowsets – \SQLServer:Access Methods\Dropped rowset cleanups/sec – \SQLServer:Access Methods\Dropped rowsets skipped/sec – \SQLServer:Access Methods\Deferred dropped AUs – \SQLServer:Access Methods\AU cleanups/sec – \SQLServer:Access Methods\AU cleanup batches/sec – \SQLServer:Access Methods\Failed AU cleanup batches/sec – \SQLServer:Access Methods\Used tree page cookie – \SQLServer:Access Methods\Failed tree page cookie – \SQLServer:Access Methods\Used leaf page cookie – \SQLServer:Access Methods\Failed leaf page cookie – \SQLServer:Access Methods\LobSS Provider Create Count – \SQLServer:Access Methods\LobSS Provider Destroy Count – \SQLServer:Access Methods\LobSS Provider Truncation Count – \SQLServer:Access Methods\LobHandle Create Count – \SQLServer:Access Methods\LobHandle Destroy Count – \SQLServer:Access Methods\Byreference Lob Create Count – \SQLServer:Access Methods\Byreference Lob Use Count 

Page 8

Page 9: Pandora FMS: Plugin Enterprise de SQL

– \SQLServer:Access Methods\Count Push Off Row – \SQLServer:Access Methods\Count Pull In Row – \SQLServer:Access Methods\Count Lob Readahead – \SQLServer:Access Methods\Page compression attempts/sec – \SQLServer:Access Methods\Pages compressed/sec – \SQLServer:Backup Device(*)\Device Throughput Bytes/sec – \SQLServer:Buffer Manager\Buffer cache hit ratio – \SQLServer:Buffer Manager\Page lookups/sec – \SQLServer:Buffer Manager\Free list stalls/sec – \SQLServer:Buffer Manager\Free pages – \SQLServer:Buffer Manager\Total pages – \SQLServer:Buffer Manager\Target pages – \SQLServer:Buffer Manager\Database pages – \SQLServer:Buffer Manager\Reserved pages – \SQLServer:Buffer Manager\Stolen pages – \SQLServer:Buffer Manager\Lazy writes/sec – \SQLServer:Buffer Manager\Readahead pages/sec – \SQLServer:Buffer Manager\Page reads/sec – \SQLServer:Buffer Manager\Page writes/sec – \SQLServer:Buffer Manager\Checkpoint pages/sec – \SQLServer:Buffer Manager\AWE lookup maps/sec – \SQLServer:Buffer Manager\AWE stolen maps/sec – \SQLServer:Buffer Manager\AWE write maps/sec – \SQLServer:Buffer Manager\AWE unmap calls/sec – \SQLServer:Buffer Manager\AWE unmap pages/sec – \SQLServer:Buffer Manager\Page life expectancy – \SQLServer:Buffer Partition(*)\Free pages – \SQLServer:Buffer Partition(*)\Free list requests/sec – \SQLServer:Buffer Partition(*)\Free list empty/sec – \SQLServer:CLR\CLR Execution – \SQLServer:Cursor Manager by Type(*)\Cache Hit Ratio – \SQLServer:Cursor Manager by Type(*)\Cached Cursor Counts – \SQLServer:Cursor Manager by Type(*)\Cursor Cache Use Counts/sec – \SQLServer:Cursor Manager by Type(*)\Cursor Requests/sec – \SQLServer:Cursor Manager by Type(*)\Active cursors – \SQLServer:Cursor Manager by Type(*)\Cursor memory usage – \SQLServer:Cursor Manager by Type(*)\Cursor worktable usage – \SQLServer:Cursor Manager by Type(*)\Number of active cursor plans – \SQLServer:Cursor Manager Total\Cursor conversion rate – \SQLServer:Cursor Manager Total\Async population count – \SQLServer:Cursor Manager Total\Cursor flushes – \SQLServer:Database Mirroring(*)\Bytes Sent/sec – \SQLServer:Database Mirroring(*)\Pages Sent/sec – \SQLServer:Database Mirroring(*)\Sends/sec – \SQLServer:Database Mirroring(*)\Transaction Delay – \SQLServer:Database Mirroring(*)\Redo Queue KB – \SQLServer:Database Mirroring(*)\Redo Bytes/sec – \SQLServer:Database Mirroring(*)\Log Send Queue KB – \SQLServer:Database Mirroring(*)\Bytes Received/sec – \SQLServer:Database Mirroring(*)\Receives/sec 

Page 9

Page 10: Pandora FMS: Plugin Enterprise de SQL

– \SQLServer:Database Mirroring(*)\Log Bytes Received/sec – \SQLServer:Database Mirroring(*)\Log Bytes Sent/sec – \SQLServer:Database Mirroring(*)\Send/Receive Ack Time – \SQLServer:Database Mirroring(*)\Log Compressed Bytes Rcvd/sec – \SQLServer:Database Mirroring(*)\Log Compressed Bytes Sent/sec – \SQLServer:Database Mirroring(*)\Mirrored Write Transactions/sec – \SQLServer:Database Mirroring(*)\Log Scanned for Undo KB – \SQLServer:Database Mirroring(*)\Log Remaining for Undo KB – \SQLServer:Database Mirroring(*)\Log Bytes Sent from Cache/sec – \SQLServer:Database Mirroring(*)\Log Bytes Redone from Cache/sec – \SQLServer:Database Mirroring(*)\Log Send Flow Control Time (ms) – \SQLServer:Database Mirroring(*)\Log Harden Time (ms) – \SQLServer:Databases(*)\Data File(s) Size (KB) – \SQLServer:Databases(*)\Log File(s) Size (KB) – \SQLServer:Databases(*)\Log File(s) Used Size (KB) – \SQLServer:Databases(*)\Percent Log Used – \SQLServer:Databases(*)\Active Transactions – \SQLServer:Databases(*)\Transactions/sec – \SQLServer:Databases(*)\Repl. Pending Xacts – \SQLServer:Databases(*)\Repl. Trans. Rate – \SQLServer:Databases(*)\Log Cache Reads/sec – \SQLServer:Databases(*)\Log Cache Hit Ratio – \SQLServer:Databases(*)\Bulk Copy Rows/sec – \SQLServer:Databases(*)\Bulk Copy Throughput/sec – \SQLServer:Databases(*)\Backup/Restore Throughput/sec – \SQLServer:Databases(*)\DBCC Logical Scan Bytes/sec – \SQLServer:Databases(*)\Shrink Data Movement Bytes/sec – \SQLServer:Databases(*)\Log Flushes/sec – \SQLServer:Databases(*)\Log Bytes Flushed/sec – \SQLServer:Databases(*)\Log Flush Waits/sec – \SQLServer:Databases(*)\Log Flush Wait Time – \SQLServer:Databases(*)\Log Truncations – \SQLServer:Databases(*)\Log Growths – \SQLServer:Databases(*)\Log Shrinks – \SQLServer:Databases(*)\Tracked transactions/sec – \SQLServer:Databases(*)\Write Transactions/sec – \SQLServer:Databases(*)\Commit table entries – \SQLServer:Exec Statistics(*)\Extended Procedures – \SQLServer:Exec Statistics(*)\DTC calls – \SQLServer:Exec Statistics(*)\OLEDB calls – \SQLServer:Exec Statistics(*)\Distributed Query – \SQLServer:General Statistics\Active Temp Tables – \SQLServer:General Statistics\Temp Tables Creation Rate – \SQLServer:General Statistics\Logins/sec – \SQLServer:General Statistics\Connection Reset/sec – \SQLServer:General Statistics\Logouts/sec – \SQLServer:General Statistics\User Connections – \SQLServer:General Statistics\Logical Connections – \SQLServer:General Statistics\Transactions – \SQLServer:General Statistics\Nonatomic yield rate 

Page 10

Page 11: Pandora FMS: Plugin Enterprise de SQL

– \SQLServer:General Statistics\Mars Deadlocks – \SQLServer:General Statistics\HTTP Authenticated Requests – \SQLServer:General Statistics\SOAP Empty Requests – \SQLServer:General Statistics\SOAP SQL Requests – \SQLServer:General Statistics\SOAP Method Invocations – \SQLServer:General Statistics\SOAP WSDL Requests – \SQLServer:General Statistics\SOAP Session Initiate Requests – \SQLServer:General Statistics\SOAP Session Terminate Requests – \SQLServer:General Statistics\Processes blocked – \SQLServer:General Statistics\Temp Tables For Destruction – \SQLServer:General Statistics\Event Notifications Delayed Drop – \SQLServer:General Statistics\Trace Event Notification Queue – \SQLServer:General Statistics\SQL Trace IO Provider Lock Waits – \SQLServer:General Statistics\Tempdb recovery unit id – \SQLServer:General Statistics\Tempdb rowset id – \SQLServer:Latches\Latch Waits/sec – \SQLServer:Latches\Average Latch Wait Time (ms) – \SQLServer:Latches\Total Latch Wait Time (ms) – \SQLServer:Latches\Number of SuperLatches – \SQLServer:Latches\SuperLatch Promotions/sec – \SQLServer:Latches\SuperLatch Demotions/sec – \SQLServer:Locks(*)\Lock Requests/sec – \SQLServer:Locks(*)\Lock Timeouts/sec – \SQLServer:Locks(*)\Number of Deadlocks/sec – \SQLServer:Locks(*)\Lock Waits/sec – \SQLServer:Locks(*)\Lock Wait Time (ms) – \SQLServer:Locks(*)\Average Wait Time (ms) – \SQLServer:Locks(*)\Lock Timeouts (timeout > 0)/sec – \SQLServer:Memory Manager\Connection Memory (KB) – \SQLServer:Memory Manager\Granted Workspace Memory (KB) – \SQLServer:Memory Manager\Lock Memory (KB) – \SQLServer:Memory Manager\Lock Blocks Allocated – \SQLServer:Memory Manager\Lock Owner Blocks Allocated – \SQLServer:Memory Manager\Lock Blocks – \SQLServer:Memory Manager\Lock Owner Blocks – \SQLServer:Memory Manager\Maximum Workspace Memory (KB) – \SQLServer:Memory Manager\Memory Grants Outstanding – \SQLServer:Memory Manager\Memory Grants Pending – \SQLServer:Memory Manager\Optimizer Memory (KB) – \SQLServer:Memory Manager\SQL Cache Memory (KB) – \SQLServer:Memory Manager\Target Server Memory (KB) – \SQLServer:Memory Manager\Total Server Memory (KB) – \SQLServer:Plan Cache(*)\Cache Hit Ratio – \SQLServer:Plan Cache(*)\Cache Pages – \SQLServer:Plan Cache(*)\Cache Object Counts – \SQLServer:Plan Cache(*)\Cache Objects in use – \SQLServer:Replication Agents(*)\Running – \SQLServer:Replication Dist.(*)\Dist:Delivery Latency – \SQLServer:Replication Dist.(*)\Dist:Delivered Cmds/sec – \SQLServer:Replication Dist.(*)\Dist:Delivered Trans/sec 

Page 11

Page 12: Pandora FMS: Plugin Enterprise de SQL

– \SQLServer:Replication Logreader(*)\Logreader:Delivery Latency – \SQLServer:Replication Logreader(*)\Logreader:Delivered Cmds/sec – \SQLServer:Replication Logreader(*)\Logreader:Delivered Trans/sec – \SQLServer:Replication Merge(*)\Uploaded Changes/sec – \SQLServer:Replication Merge(*)\Downloaded Changes/sec – \SQLServer:Replication Merge(*)\Conflicts/sec – \SQLServer:Replication Snapshot(*)\Snapshot:Delivered Cmds/sec – \SQLServer:Replication Snapshot(*)\Snapshot:Delivered Trans/sec – \SQLServer:SQL Errors(*)\Errors/sec – \SQLServer:SQL Statistics\Batch Requests/sec – \SQLServer:SQL Statistics\Forced Parameterizations/sec – \SQLServer:SQL Statistics\AutoParam Attempts/sec – \SQLServer:SQL Statistics\Failed AutoParams/sec – \SQLServer:SQL Statistics\Safe AutoParams/sec – \SQLServer:SQL Statistics\Unsafe AutoParams/sec – \SQLServer:SQL Statistics\SQL Compilations/sec – \SQLServer:SQL Statistics\SQL ReCompilations/sec – \SQLServer:SQL Statistics\SQL Attention rate – \SQLServer:SQL Statistics\Guided plan executions/sec – \SQLServer:SQL Statistics\Misguided plan executions/sec – \SQLServer:Transactions\Transactions – \SQLServer:Transactions\Snapshot Transactions – \SQLServer:Transactions\Update Snapshot Transactions – \SQLServer:Transactions\NonSnapshot Version Transactions – \SQLServer:Transactions\Longest Transaction Running Time – \SQLServer:Transactions\Update conflict ratio – \SQLServer:Transactions\Free Space in tempdb (KB) – \SQLServer:Transactions\Version Generation rate (KB/s) – \SQLServer:Transactions\Version Cleanup rate (KB/s) – \SQLServer:Transactions\Version Store Size (KB) – \SQLServer:Transactions\Version Store unit count – \SQLServer:Transactions\Version Store unit creation – \SQLServer:Transactions\Version Store unit truncation – \SQLServer:User Settable(*)\Query – \SQLServer:Wait Statistics(*)\Lock waits – \SQLServer:Wait Statistics(*)\Memory grant queue waits – \SQLServer:Wait Statistics(*)\Threadsafe memory objects waits – \SQLServer:Wait Statistics(*)\Log write waits – \SQLServer:Wait Statistics(*)\Log buffer waits – \SQLServer:Wait Statistics(*)\Network IO waits – \SQLServer:Wait Statistics(*)\Page IO latch waits – \SQLServer:Wait Statistics(*)\Page latch waits – \SQLServer:Wait Statistics(*)\NonPage latch waits – \SQLServer:Wait Statistics(*)\Wait for the worker – \SQLServer:Wait Statistics(*)\Workspace synchronization waits – \SQLServer:Wait Statistics(*)\Transaction ownership waits

Page 12

Page 13: Pandora FMS: Plugin Enterprise de SQL

6 INSTALACIÓN

Copiar los plugins al directorio de plugins del agente, distrubuyéndolo mediante file collections o 

copiandolo directamente a la carpeta de plugins del agente. Lo mismo con los ficheros adicionales  

que  se necesiten. La llamada desde el agente será similar a esta, pero usando los paths donde esté 

instalado el plugin y el listado. Por ejemplo:

module_plugin "<ruta-powershell>\powershell.exe" -command C:\'<ruta-plugin>\Pandora_Plugin_PerfCounter_vx.y.ps1' -list C:\'<ruta-listado>\counters.txt' 2> counter_plugin.error

Page 13

Page 14: Pandora FMS: Plugin Enterprise de SQL

7 MONITORIZACIÓN 

7.1. Monitorización via Powershell

Partiendo de la base de que ya tenemos instalado y configurado tanto Pandora como el sistema a monitorizar,  vamos a  explicar  como obtener   información sobre el  estado del servidor SQL en general, desde actividad de los diferentes servicios así como contadores a raiz   de   Powershell   que   mediante   diferentes   cmdlets   se   encargará   de   realizar comprobaciones sobre elementos críticos de nuestros sistemas.

Para este caso instalaremos tanto un agente software de Pandora como los diferentes plugins de agente Powershell en la máquina en cuestión.

Para hacer que el agente software de Pandora que tenemos instalado en nuestro servidor a monitorizar ejecute dicho script, debemos editar el archivo de configuración del agente y hacer la llamada al plugin mediante el token de configuración module_plugin.

Podemos editar el archivo de configuración del agente de Pandora desde la consola de administración de Pandora FMS o simplemente sobreescribiendo el pandora_agent.conf dependiendo si esta activado remote_config o no.Introduciremos lo siguiente al final del archivo de configuración por ejemplo:

# Agent Plugins for SQL Monitoring

module_plugin "<ruta-sqlps>\sqlps.exe" -command C:\'<ruta-plugin>\Pandora_Plugin_SQL_v1.0.ps1' -select list -list C:\'<ruta-listado>\instances.txt' 2> plugin_sql.error

module_plugin "<ruta-powershell>\powershell.exe" -command C:\'<ruta-plugin>\Pandora_Plugin_PerfCounter_vx.y.ps1' -list C:\'<ruta-listado>\counters.txt' 2> counter_plugin.error

** El plugin PerfCounter.ps1 no se incluye en el .zip pero si se encuentra disponible en el .zip correspondiente  subido al servidor con el nombre PerfCounter.

Guardamos el archivo y reiniciamos el agente de Pandora.

Hay que tener en cuenta la redirección de errores del plugin a un log de errores, sobre todo debido 

al timeout de ejecución de los cmdlets cuando se tiene que procesar gran cantidad de información 

en poco tiempo.

En  el   supuesto  de  que  quisieramos  generar  un módulo  por   cada  uno  de   los   contadores  de   la 

máquina, el cmdlet tendría que procesar una media de 20000 contadores de una sola vez, y ya que 

hasta que no ha procesado todo el listado de contadores no muestra la información, todo el tiempo 

desde que procesa la información hasta que la presenta, el cmdlet Powershell saca un mensaje de 

error tras otro avisando que el contador de la lista no se ha encontrado.

Page 14

Page 15: Pandora FMS: Plugin Enterprise de SQL

Esto es debido a que el cmdlet Powershell entiende que si ha pasado “x” tiempo desde la petición de 

la información del contador y esta información no ha sido presentada en el output, entonces no se 

ha  podido encontrar   la   información que andaba buscando,  cuando  en realidad ésta  sí  ha  sido 

encontrada, solo que aún no ha sido presentada.

Para evitar incrementar el log sin control y aun así recibir todos los errores ocurridos durante la 

ejecución del plugin en el último intervalo (por si hay algún error real), hacer la redirección usando 

el   símbolo   “2>”  tal   como viene  especificado en   la   línea  que  se  debe   introducir  al  archivo  de 

configuración.

Una vez configurado, nos encargamos de distribuir los ficheros necesarios mediante file collections 

o copiandolos en la carpeta correspondiente del agente. 

Una de las característica mas potentes del plugin en Powershell es la posibilidad de especificar en 

vez de ir creando uno a uno módulos para cada contador de rendimiento, seleccionar todos los 

contadores especificados en una lista, para que el plugin haga una única comprobación y genere 

automática un módulo para todos los estos contadores, optimizando lo máximo posible el tiempo 

necesario para extraer toda la información. Dicha lista la deberemos situar en la misma carpeta 

donde se encuentra el plugin, con el nombre counters.txt Veamos un ejemplo de su contenido:

\SQLServer:Access Methods\Full Scans/sec\SQLServer:Access Methods\Range Scans/sec\SQLServer:Access Methods\Probe Scans/sec\SQLServer:Access Methods\Scan Point Revalidations/sec

Conteniendo counters.txt estos contadores, el plugin hará un módulo por cada uno de ellos. Si un 

contador tiene varias instancias, como en el caso de (*), el plugin hará un módulo por cada una de 

las instancias del contador. Para el desarrollo de cualquier otro plugin que extraiga información via 

Powershell es importante tener en cuenta el uso del cmdlet:

select-object -property *

En base a este cmdlet, podemos añadirlo después de cualquier otro cmdlet que nos proporcione 

estadísticas, precedido de una tubería (|), y nos dará información de  todas  las propiedades que 

contiene  dicho cmdlet,  a  pesar  de  que al  ejecutar  el  primer cmdlet  de  forma general   sin  usar 

parámetros, sólo nos devolviera una lista predeterminada de info.

De  esta   forma nuestras  posibilidades  de  monitorización haciendo  uso  de  Powershell   se  amplía 

notablemente.

En caso de que quisiéramos añadir nuevos módulos a nuestro plugin, antes de hacer nada, probar a 

ejecutar el cmdlet del cual queremos sacar información junto con el mencionado, para así sacar 

toda la información posible.

Page 15

Page 16: Pandora FMS: Plugin Enterprise de SQL

Un ejemplo del uso de este comando sería el siguiente:

Get-Service | Select-Object -Property *

Normalmente el resultado del cmdlet GetService sería un listado en formato tabla de todos los 

servicios   con   su   descripción   y   su   estado.   Sin   embargo,   al   aplicarle   este   segundo   cmdlet, 

conseguimos  para   cada   servicio   información  de   todas   las   propeidades  de   las  que  dispone   ese 

servicio:

Name : serviceRequiredServices : {service1, service2}CanPauseAndContinue : FalseCanShutdown : TrueCanStop : TrueDisplayName : This is a Windows ServiceDependentServices : {service3}MachineName : .ServiceName : serviceServicesDependedOn : {service1, service2}ServiceHandle : SafeServiceHandleStatus : StoppedServiceType : Win32ShareProcessSite :Container :

7.2. Monitorización de instancias SQL

En una arquitectura clúster activo/pasivo con instancias remotas, accesibles desde los nodos SQL 

Server,   es   posible,   haciendo   uso   de   la   consola   de   administración   Powershell   de    

SQL Server, realizar chequeos de disponibilidad de dichas instancias desde estos nodos, así como 

extraer información sobre el rendimiento y el estado de las bases de datos almacenadas en aquellas 

instancias levantadas, desde los nodos activos del clúster.

En el caso de los nodos pasivos, la monitorización se limita a los chequeos de disponibilidad de 

instancias, para indicar si dicho nodo permanece pasivo o pasa a estado activo y mientras tanto, no  

intentará conectar contra las instancias ni devolverá información alguna sobre su estado.

Adicionalmente, desde el servidor de Pandora se pueden definir chequeos ICMP contra las Ips de 

servicio de las instancias remotas para asegurar su conectividad.

Con este propósito se ha desarrollado un plugin Powershell al que, indicando una lista de instancias 

a monitorizar buscará en la lista de servicios del nodo, por cada instancia, si el servicio SQL Server 

de dicha instancia se encuentra levantado (en el caso del nodo activo) y en tal caso tratará  de 

establecer conexión con el combo IP\nombreinstancia a la hora de recabar información sobre el 

Page 16

Page 17: Pandora FMS: Plugin Enterprise de SQL

estado de las BBDD alojadas en dicha instancia. Si se especifica, también extraerá el estado de todos 

los servicios del nodo relacionados con SQL.

Los parámetros de este plugin son los siguientes:

-select all All local instances and services are checked (not to be used in clusters)

-select list Instances from the list are checked

-select services All local services are checked

-list Provides a path for a list with instances to check

Usage example: .\Pandora_Plugin_SQL_v1.0.ps1 -select all -list instances.txt 2> plugin_error.log

Para el correcto funcionamiento del plugin cabe destacar que:

– El modo “select all” sólo deberá usarse en servidores SQL cuyas instancias son todas locales.

– En el caso de instancias ubicadas en servidores remotos, no se puede resolver el hostname 

de la máquina donde está ubicada la instancia remota del servidor SQL, luego para conectar 

con la instancia se hará mediante el combo IP\nombreinstancia.

Ejemplo de instancias.txt:

10.93.6.81\MSSQLSERVER 10.93.6.85\ESTGCDBP008 10.93.6.86\ESTGCDBP008 10.93.6.89\ESTGCDBP008

En la siguiente imagen podemos apreciar como en el caso del  nodo activo,  el plugin recoge el 

estado de cada una de  las  instancias definidas en nuestra lista,  pero sólo  establece conexión y 

recaba datos adicionales de aquellas que estén levantadas y dispongamos de credenciales suficientes 

para acceder al contenido de sus BBDD:

Page 17

Page 18: Pandora FMS: Plugin Enterprise de SQL

Módulos generados por el plugin de monitorización de SQL

Page 18

Page 19: Pandora FMS: Plugin Enterprise de SQL

Page 19