Pandora FMS
Manual de Administrador
Monitorización SQL Server
Manual de Administración Monitorización SQL Server  
© Artica Soluciones Tecnológicas 2005­2012
Indice
1Changelog............
1 CHANGELOG
Date Author Change Version
02/08/12 Tomas First Version v1r1
Page 3
2 INTRODUCCIÓN
Este documento tiene como objetivo la descripción de la monitorización masiva de contadores de 
rendimiento...
3 REQUISITOS
Los requisitos para que funcione correctamente esta monitorización son los siguientes:
• Instalar el agente w...
4 MATRIZ DE COMPATIBILIDAD 
La matriz de compatibilidad del agente es la siguiente 
Sistemas donde se ha probado
• Windows...
5 CLASIFICACIÓN DE MÓDULOS DE AGENTES SOFTWARE GENERADOS
5.1. Verificación de estado en SQL Server
La   verificación   de ...
5.2. Verificación de Performance Counters
La   verificación   de   contadores   de   rendimiento   se   realiza   mediante...
– SQLServer:Access MethodsCount Push Off Row 
– SQLServer:Access MethodsCount Pull In Row 
– SQLServer:Access MethodsCount...
– SQLServer:Database Mirroring(*)Log Bytes Received/sec 
– SQLServer:Database Mirroring(*)Log Bytes Sent/sec 
– SQLServer:...
– SQLServer:General StatisticsMars Deadlocks 
– SQLServer:General StatisticsHTTP Authenticated Requests 
– SQLServer:Gener...
– SQLServer:Replication Logreader(*)Logreader:Delivery Latency 
– SQLServer:Replication Logreader(*)Logreader:Delivered Cm...
6 INSTALACIÓN
Copiar los plugins al directorio de plugins del agente, distrubuyéndolo mediante file collections o 
copiand...
7 MONITORIZACIÓN 
7.1. Monitorización via Powershell
Partiendo de la base de que ya tenemos instalado y configurado tanto ...
Esto es debido a que el cmdlet Powershell entiende que si ha pasado “x” tiempo desde la petición de 
la información del co...
Un ejemplo del uso de este comando sería el siguiente:
Get-Service | Select-Object -Property *
Normalmente el resultado de...
estado de las BBDD alojadas en dicha instancia. Si se especifica, también extraerá el estado de todos 
los servicios del n...
Módulos generados por el plugin de monitorización de SQL
Page 18
Page 19
Upcoming SlideShare
Loading in …5
×

Pandora FMS: Plugin Enterprise de SQL

487 views

Published on

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

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
487
On SlideShare
0
From Embeds
0
Number of Embeds
11
Actions
Shares
0
Downloads
4
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Pandora FMS: Plugin Enterprise de SQL

  1. 1. Pandora FMS Manual de Administrador Monitorización SQL Server
  2. 2. Manual de Administración Monitorización SQL Server   © Artica Soluciones Tecnológicas 2005­2012 Indice 1Changelog...........................................................................................................................................3 2Introducción........................................................................................................................................4 3Requisitos...........................................................................................................................................5 4Matriz De Compatibilidad .................................................................................................................6 5Clasificación de módulos de agentes software generados..................................................................7 5.1.Verificación de estado en SQL Server.......................................................................................7 5.2.Verificación de Performance Counters......................................................................................8 6Instalación.........................................................................................................................................13 7Monitorización ................................................................................................................................14 7.1.Monitorización via Powershell................................................................................................14 7.2.Monitorización de instancias SQL...........................................................................................16
  3. 3. 1 CHANGELOG Date Author Change Version 02/08/12 Tomas First Version v1r1 Page 3
  4. 4. 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
  5. 5. 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
  6. 6. 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
  7. 7. 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
  8. 8. 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 MethodsFull Scans/sec  – SQLServer:Access MethodsRange Scans/sec  – SQLServer:Access MethodsProbe Scans/sec  – SQLServer:Access MethodsScan Point Revalidations/sec  – SQLServer:Access MethodsWorkfiles Created/sec  – SQLServer:Access MethodsWorktables Created/sec  – SQLServer:Access MethodsWorktables From Cache Ratio  – SQLServer:Access MethodsForwarded Records/sec  – SQLServer:Access MethodsSkipped Ghosted Records/sec  – SQLServer:Access MethodsIndex Searches/sec  – SQLServer:Access MethodsFreeSpace Scans/sec  – SQLServer:Access MethodsFreeSpace Page Fetches/sec  – SQLServer:Access MethodsPages Allocated/sec  – SQLServer:Access MethodsExtents Allocated/sec  – SQLServer:Access MethodsMixed page allocations/sec  – SQLServer:Access MethodsExtent Deallocations/sec  – SQLServer:Access MethodsPage Deallocations/sec  – SQLServer:Access MethodsPage Splits/sec  – SQLServer:Access MethodsTable Lock Escalations/sec  – SQLServer:Access MethodsDeferred Dropped rowsets  – SQLServer:Access MethodsDropped rowset cleanups/sec  – SQLServer:Access MethodsDropped rowsets skipped/sec  – SQLServer:Access MethodsDeferred dropped AUs  – SQLServer:Access MethodsAU cleanups/sec  – SQLServer:Access MethodsAU cleanup batches/sec  – SQLServer:Access MethodsFailed AU cleanup batches/sec  – SQLServer:Access MethodsUsed tree page cookie  – SQLServer:Access MethodsFailed tree page cookie  – SQLServer:Access MethodsUsed leaf page cookie  – SQLServer:Access MethodsFailed leaf page cookie  – SQLServer:Access MethodsLobSS Provider Create Count  – SQLServer:Access MethodsLobSS Provider Destroy Count  – SQLServer:Access MethodsLobSS Provider Truncation Count  – SQLServer:Access MethodsLobHandle Create Count  – SQLServer:Access MethodsLobHandle Destroy Count  – SQLServer:Access MethodsBy­reference Lob Create Count  – SQLServer:Access MethodsBy­reference Lob Use Count  Page 8
  9. 9. – SQLServer:Access MethodsCount Push Off Row  – SQLServer:Access MethodsCount Pull In Row  – SQLServer:Access MethodsCount Lob Readahead  – SQLServer:Access MethodsPage compression attempts/sec  – SQLServer:Access MethodsPages compressed/sec  – SQLServer:Backup Device(*)Device Throughput Bytes/sec  – SQLServer:Buffer ManagerBuffer cache hit ratio  – SQLServer:Buffer ManagerPage lookups/sec  – SQLServer:Buffer ManagerFree list stalls/sec  – SQLServer:Buffer ManagerFree pages  – SQLServer:Buffer ManagerTotal pages  – SQLServer:Buffer ManagerTarget pages  – SQLServer:Buffer ManagerDatabase pages  – SQLServer:Buffer ManagerReserved pages  – SQLServer:Buffer ManagerStolen pages  – SQLServer:Buffer ManagerLazy writes/sec  – SQLServer:Buffer ManagerReadahead pages/sec  – SQLServer:Buffer ManagerPage reads/sec  – SQLServer:Buffer ManagerPage writes/sec  – SQLServer:Buffer ManagerCheckpoint pages/sec  – SQLServer:Buffer ManagerAWE lookup maps/sec  – SQLServer:Buffer ManagerAWE stolen maps/sec  – SQLServer:Buffer ManagerAWE write maps/sec  – SQLServer:Buffer ManagerAWE unmap calls/sec  – SQLServer:Buffer ManagerAWE unmap pages/sec  – SQLServer:Buffer ManagerPage life expectancy  – SQLServer:Buffer Partition(*)Free pages  – SQLServer:Buffer Partition(*)Free list requests/sec  – SQLServer:Buffer Partition(*)Free list empty/sec  – SQLServer:CLRCLR 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 TotalCursor conversion rate  – SQLServer:Cursor Manager TotalAsync population count  – SQLServer:Cursor Manager TotalCursor 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
  10. 10. – 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 StatisticsActive Temp Tables  – SQLServer:General StatisticsTemp Tables Creation Rate  – SQLServer:General StatisticsLogins/sec  – SQLServer:General StatisticsConnection Reset/sec  – SQLServer:General StatisticsLogouts/sec  – SQLServer:General StatisticsUser Connections  – SQLServer:General StatisticsLogical Connections  – SQLServer:General StatisticsTransactions  – SQLServer:General StatisticsNon­atomic yield rate  Page 10
  11. 11. – SQLServer:General StatisticsMars Deadlocks  – SQLServer:General StatisticsHTTP Authenticated Requests  – SQLServer:General StatisticsSOAP Empty Requests  – SQLServer:General StatisticsSOAP SQL Requests  – SQLServer:General StatisticsSOAP Method Invocations  – SQLServer:General StatisticsSOAP WSDL Requests  – SQLServer:General StatisticsSOAP Session Initiate Requests  – SQLServer:General StatisticsSOAP Session Terminate Requests  – SQLServer:General StatisticsProcesses blocked  – SQLServer:General StatisticsTemp Tables For Destruction  – SQLServer:General StatisticsEvent Notifications Delayed Drop  – SQLServer:General StatisticsTrace Event Notification Queue  – SQLServer:General StatisticsSQL Trace IO Provider Lock Waits  – SQLServer:General StatisticsTempdb recovery unit id  – SQLServer:General StatisticsTempdb rowset id  – SQLServer:LatchesLatch Waits/sec  – SQLServer:LatchesAverage Latch Wait Time (ms)  – SQLServer:LatchesTotal Latch Wait Time (ms)  – SQLServer:LatchesNumber of SuperLatches  – SQLServer:LatchesSuperLatch Promotions/sec  – SQLServer:LatchesSuperLatch 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 ManagerConnection Memory (KB)  – SQLServer:Memory ManagerGranted Workspace Memory (KB)  – SQLServer:Memory ManagerLock Memory (KB)  – SQLServer:Memory ManagerLock Blocks Allocated  – SQLServer:Memory ManagerLock Owner Blocks Allocated  – SQLServer:Memory ManagerLock Blocks  – SQLServer:Memory ManagerLock Owner Blocks  – SQLServer:Memory ManagerMaximum Workspace Memory (KB)  – SQLServer:Memory ManagerMemory Grants Outstanding  – SQLServer:Memory ManagerMemory Grants Pending  – SQLServer:Memory ManagerOptimizer Memory (KB)  – SQLServer:Memory ManagerSQL Cache Memory (KB)  – SQLServer:Memory ManagerTarget Server Memory (KB)  – SQLServer:Memory ManagerTotal 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
  12. 12. – 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 StatisticsBatch Requests/sec  – SQLServer:SQL StatisticsForced Parameterizations/sec  – SQLServer:SQL StatisticsAuto­Param Attempts/sec  – SQLServer:SQL StatisticsFailed Auto­Params/sec  – SQLServer:SQL StatisticsSafe Auto­Params/sec  – SQLServer:SQL StatisticsUnsafe Auto­Params/sec  – SQLServer:SQL StatisticsSQL Compilations/sec  – SQLServer:SQL StatisticsSQL Re­Compilations/sec  – SQLServer:SQL StatisticsSQL Attention rate  – SQLServer:SQL StatisticsGuided plan executions/sec  – SQLServer:SQL StatisticsMisguided plan executions/sec  – SQLServer:TransactionsTransactions  – SQLServer:TransactionsSnapshot Transactions  – SQLServer:TransactionsUpdate Snapshot Transactions  – SQLServer:TransactionsNonSnapshot Version Transactions  – SQLServer:TransactionsLongest Transaction Running Time  – SQLServer:TransactionsUpdate conflict ratio  – SQLServer:TransactionsFree Space in tempdb (KB)  – SQLServer:TransactionsVersion Generation rate (KB/s)  – SQLServer:TransactionsVersion Cleanup rate (KB/s)  – SQLServer:TransactionsVersion Store Size (KB)  – SQLServer:TransactionsVersion Store unit count  – SQLServer:TransactionsVersion Store unit creation  – SQLServer:TransactionsVersion Store unit truncation  – SQLServer:User Settable(*)Query  – SQLServer:Wait Statistics(*)Lock waits  – SQLServer:Wait Statistics(*)Memory grant queue waits  – SQLServer:Wait Statistics(*)Thread­safe 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(*)Non­Page latch waits  – SQLServer:Wait Statistics(*)Wait for the worker  – SQLServer:Wait Statistics(*)Workspace synchronization waits  – SQLServer:Wait Statistics(*)Transaction ownership waits Page 12
  13. 13. 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
  14. 14. 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
  15. 15. 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 MethodsFull Scans/sec SQLServer:Access MethodsRange Scans/sec SQLServer:Access MethodsProbe Scans/sec SQLServer:Access MethodsScan 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
  16. 16. Un ejemplo del uso de este comando sería el siguiente: Get-Service | Select-Object -Property * Normalmente el resultado del cmdlet Get­Service 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 : service RequiredServices : {service1, service2} CanPauseAndContinue : False CanShutdown : True CanStop : True DisplayName : This is a Windows Service DependentServices : {service3} MachineName : . ServiceName : service ServicesDependedOn : {service1, service2} ServiceHandle : SafeServiceHandle Status : Stopped ServiceType : Win32ShareProcess Site : 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 IPnombreinstancia a la hora de recabar información sobre el  Page 16
  17. 17. 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 IPnombreinstancia. Ejemplo de instancias.txt: 10.93.6.81MSSQLSERVER 10.93.6.85ESTGCDBP008 10.93.6.86ESTGCDBP008 10.93.6.89ESTGCDBP008 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
  18. 18. Módulos generados por el plugin de monitorización de SQL Page 18
  19. 19. Page 19

×