Windows MSSQL2005 Server (via WMI)

Description

Monitors several statistics for Window 2005 MSSQL servers using Windows Management Instrumentation (WMI). Nagios Remote Plugin Executor (NRPE) is used by the Nagios server to communicate with the WMI proxy server. This proxy server queries the monitored Windows server for measurements and status using WMI.

Additionally, you may want to refer to the WMI Monitoring documentation. This project consists of a collection of script monitors (.vbs for starters) that use the Microsoft .Net Framework and WMI to retrieve performance data from remote Windows hosts without the need for agents on the remote hosts.

The nrpe.cfg file on the Windows server maps commands issued by the GroundWork server to scripts in the c:\nrpe_nt directory. Commands issued by this profile are installed with this package. If new NRPE commands are added, this file must be modified. The WMI proxy server must be in the same domain as target monitored Windows server, and must have administrator rights.

Profile Package

This package includes the following files:

  • Profile definition: service-profile-wmi-mssql2005.xml
  • Plugin script (installed on the GroundWork server): check_nrpe

Installation

GroundWork Monitor includes many monitoring profiles for a variety of devices, systems and applications. Some profiles are pre-imported on a new GroundWork installation and others are distributed with the product. The configuration tool is used to import updated profiles and profiles that require additional setup, services can also be imported, see Importing Profiles.

Services Configuration

For plugin details you can run the service help command from within the nagios container. For example: Get to the nagios container from the gw8 directory: docker-compose exec -u 1000 nagios bash, then to the libexec directory: cd /usr/local/nagios/libexec, and enter a service help command e.g., ./check_snmp --help to receive help content.

Service/Command Line/Plugin CommandCommand Parameters

This column lists the Service Definition name, Service Command name with arguments to be passed to the plugin, and the Plugin Command line which is the plugin script called by Nagios for the service.

Command parameters are in the configuration services section with the following names and default values.

  • wmi_mssql_checkpointpagespersec

  • check_wmi_mssql_checkpointpagespersec!80!90

  • $USER1$/check_nrpe -t 60 -H $USER21$ -c get_counter_bulk_count -a "$HOSTADDRESS$" "Win32_PerfRawData_MSSQLSERVER_SQLServerBufferManager" "*" "CheckpointpagesPersec" "$ARG1$" "$ARG2$"

The rate of recording check point pages per second

  • $USER21$: The WMI Proxy Server IP Address

  • $ARG1$: Warning threshold, default is 80

  • $ARG2$: Critical threshold, default is 90

  • wmi_mssql_lazywritespersec

  • check_wmi_mssql_lazywritespersec!80!90

  • $USER1$/check_nrpe -t 60 -H $USER21$ -c get_counter_bulk_count -a "$HOSTADDRESS$" "Win32_PerfRawData_MSSQLSERVER_SQLServerBufferManager" "*" "LazywritesPersec" "$ARG1$" "$ARG2$"

The rate of lazy writes per second

  • $USER21$: The WMI Proxy Server IP Address

  • $ARG1$: Warning threshold, default is 80

  • $ARG2$: Critical threshold, default is 90

  • wmi_mssql_pagelifeexpectancy

  • check_wmi_mssql_

    pagelifeexpectancy!600000!700000

  • $USER1$/check_nrpe -t 60 -H $USER21$ -c get_counter_large_rawcount -a "$HOSTADDRESS$" "Win32_PerfRawData_MSSQLSERVER_SQLServerBufferManager" "*" "Pagelifeexpectancy" "$ARG1$" "$ARG2$"

The life expectancy of a page in milliseconds

  • $USER21$: The WMI Proxy Server IP Address

  • $ARG1$: Warning threshold, default is 600,000

  • $ARG2$: Critical threshold, default is 700,000

  • wmi_mssql_pagelookupspersec

  • check_wmi_mssql_

    pagelookupspersec!80!90

  • $USER1$/check_nrpe -t 60 -H $USER21$ -c get_counter_bulk_count -a "$HOSTADDRESS$" "Win32_PerfRawData_MSSQLSERVER_SQLServerBufferManager" "*" "PagelookupsPersec" "$ARG1$" "$ARG2$"

The rate of page look ups per second

  • $USER21$: The WMI Proxy Server IP Address

  • $ARG1$: Warning threshold, default is 80

  • $ARG2$: Critical threshold, default is 90

  • wmi_mssql_pagereadspersec

  • check_wmi_mssql_

    pagereadspersec!80!90

  • $USER1$/check_nrpe -t 60 -H $USER21$ -c get_counter_bulk_count -a "$HOSTADDRESS$" "Win32_PerfRawData_MSSQLSERVER_SQLServerBufferManager" "*" "PagereadsPersec" "$ARG1$" "$ARG2$"

The rate of page reads per second

  • $USER21$: The WMI Proxy Server IP Address

  • $ARG1$: Warning threshold, default is 80

  • $ARG2$: Critical threshold, default is 90

  • wmi_mssql_pagewritespersec

  • check_wmi_mssql_

    pagewritespersec!80!90

  • $USER1$/check_nrpe -t 60 -H $USER21$ -c get_counter_bulk_count -a "$HOSTADDRESS$" "Win32_PerfRawData_MSSQLSERVER_SQLServerBufferManager" "*" "PagewritesPersec" "$ARG1$" "$ARG2$"

The rate of page writes per second

  • $USER21$: The WMI Proxy Server IP Address

  • $ARG1$: Warning threshold, default is 80

  • $ARG2$: Critical threshold, default is 90

  • wmi_mssql_readaheadpagespersec

  • check_wmi_mssql_

    readaheadpagespersec!80!90

  • $USER1$/check_nrpe -t 60 -H $USER21$ -c get_counter_bulk_count -a "$HOSTADDRESS$" "Win32_PerfRawData_MSSQLSERVER_SQLServerBufferManager" "*" "ReadaheadpagesPersec" "$ARG1$" "$ARG2$"

The rate of read ahead in pages per second

  • $USER21$: The WMI Proxy Server IP Address

  • $ARG1$: Warning threshold, default is 80

  • $ARG2$: Critical threshold, default is 90

  • wmi_mssql_logbytesflushedpersec

  • check_wmi_mssql_

    logbytesflushedpersec!80!90

  • $USER1$/check_nrpe -t 60 -H $USER21$ -c get_counter_bulk_count -a "$HOSTADDRESS$" "Win32_PerfRawData_MSSQLSERVER_SQLServerDatabases" "Name=_Total" "LogBytesFlushedPersec" "$ARG1$" "$ARG2$"

The rate of log bytes flushed per second

  • $USER21$: The WMI Proxy Server IP Address

  • $ARG1$: Warning threshold, default is 80

  • $ARG2$: Critical threshold, default is 90

  • wmi_mssql_logflushwaitspersec

  • check_wmi_mssql_

    logflushwaitspersec!80!90

  • $USER1$/check_nrpe -t 60 -H $USER21$ -c get_counter_bulk_count -a "$HOSTADDRESS$" "Win32_PerfRawData_MSSQLSERVER_SQLServerDatabases" "Name=_Total" "LogFlushWaitsPersec" "$ARG1$" "$ARG2$"

The rate of log flush waits per second

  • $USER21$: The WMI Proxy Server IP Address

  • $ARG1$: Warning threshold, default is 80

  • $ARG2$: Critical threshold, default is 90

  • wmi_mssql_logflushespersec

  • check_wmi_mssql_

    logflushespersec!80!90

  • $USER1$/check_nrpe -t 60 -H $USER21$ -c get_counter_bulk_count -a "$HOSTADDRESS$" "Win32_PerfRawData_MSSQLSERVER_SQLServerDatabases" "Name=_Total" "LogFlushesPersec" "$ARG1$" "$ARG2$"

The rate of log flushes per second

  • $USER21$: The WMI Proxy Server IP Address

  • $ARG1$: Warning threshold, default is 80

  • $ARG2$: Critical threshold, default is 90

  • wmi_mssql_transactionspersec

  • check_wmi_mssql_

    transactionspersec!80!90

  • $USER1$/check_nrpe -t 60 -H $USER21$ -c get_counter_bulk_count -a "$HOSTADDRESS$" "Win32_PerfRawData_MSSQLSERVER_SQLServerDatabases" "Name=_Total" "TransactionsPersec" "$ARG1$" "$ARG2$"

The rate of transactions per second

  • $USER21$: The WMI Proxy Server IP Address

  • $ARG1$: Warning threshold, default is 80

  • $ARG2$: Critical threshold, default is 90

  • wmi_mssql_processesblocked

  • check_wmi_mssql_

    processesblocked!80!90

  • $USER1$/check_nrpe -t 60 -H $USER21$ -c get_counter_large_rawcount -a "$HOSTADDRESS$" "Win32_PerfRawData_MSSQLSERVER_SQLServerGeneralStatistics" "*" "Processesblocked" "$ARG1$" "$ARG2$"

The number of processes in a blocked state

  • $USER21$: The WMI Proxy Server IP Address

  • $ARG1$: Warning threshold, default is 80

  • $ARG2$: Critical threshold, default is 90

  • wmi_mssql_userconnections

  • check_wmi_mssql_

    userconnections!80!90

  • $USER1$/check_nrpe -t 60 -H $USER21$ -c get_counter_large_rawcount -a "$HOSTADDRESS$" "Win32_PerfRawData_MSSQLSERVER_SQLServerGeneralStatistics" "*" "UserConnections" "$ARG1$" "$ARG2$"

The number of user connections

  • $USER21$: The WMI Proxy Server IP Address

  • $ARG1$: Warning threshold, default is 80

  • $ARG2$: Critical threshold, default is 90

  • wmi_mssql_locktimeoutspersec

  • check_wmi_mssql_

    locktimeoutspersec!80!90

  • $USER1$/check_nrpe -t 60 -H $USER21$ -c get_counter_bulk_count -a "$HOSTADDRESS$" "Win32_PerfRawData_MSSQLSERVER_SQLServerLocks" "Name=_Total" "LockTimeoutstimeout0Persec" "$ARG1$" "$ARG2$"

The per second rate of lock timeouts where timeout is at 0

  • $USER21$: The WMI Proxy Server IP Address

  • $ARG1$: Warning threshold, default is 80

  • $ARG2$: Critical threshold, default is 90

  • wmi_mssql_lockwaitspersec

  • check_wmi_mssql_

    lockwaitspersec!80!90

  • $USER1$/check_nrpe -t 60 -H $USER21$ -c get_counter_bulk_count -a "$HOSTADDRESS$" "Win32_PerfRawData_MSSQLSERVER_SQLServerLocks" "Name=_Total" "LockWaitsPersec" "$ARG1$" "$ARG2$"

The rate of lock waits per second

  • $USER21$: The WMI Proxy Server IP Address

  • $ARG1$: Warning threshold, default is 80

  • $ARG2$: Critical threshold, default is 90

  • wmi_mssql_deadlockspersec

  • check_wmi_mssql_

    deadlockspersec!80!90

  • $USER1$/check_nrpe -t 60 -H $USER21$ -c get_counter_bulk_count -a "$HOSTADDRESS$" "Win32_PerfRawData_MSSQLSERVER_SQLServerLocks" "Name=_Total" "NumberofDeadlocksPersec" "$ARG1$" "$ARG2$"

The rate of deadlocks per second

  • $USER21$: The WMI Proxy Server IP Address

  • $ARG1$: Warning threshold, default is 80

  • $ARG2$: Critical threshold, default is 90

  • wmi_mssql_targetservermemory

  • check_wmi_mssql_

    targetservermemory!300000!400000

  • $USER1$/check_nrpe -t 60 -H $USER21$ -c get_counter_large_rawcount -a "$HOSTADDRESS$" "Win32_PerfRawData_MSSQLSERVER_SQLServerMemoryManager" "*" "TargetServerMemoryKB" "$ARG1$" "$ARG2$"

The level in bytes of target server memory use

  • $USER21$: The WMI Proxy Server IP Address

  • $ARG1$: Warning threshold, default is 300,000

  • $ARG2$: Critical threshold, default is 400,000

  • wmi_mssql_totalservermemory

  • check_wmi_mssql_

    totalservermemory!3000!17000

  • $USER1$/check_nrpe -t 60 -H $USER21$ -c get_counter_large_rawcount -a "$HOSTADDRESS$" "Win32_PerfRawData_MSSQLSERVER_SQLServerMemoryManager" "*" "TotalServerMemoryKB" "$ARG1$" "$ARG2$"

The level in bytes of total server memory use

  • $USER21$: The WMI Proxy Server IP Address

  • $ARG1$: Warning threshold, default is 3,0000

  • $ARG2$: Critical threshold, default is 17,000

  • wmi_mssql_errorspersec

  • check_wmi_mssql_errorspersec!80!90

  • $USER1$/check_nrpe -t 60 -H $USER21$ -c get_counter_bulk_count -a "$HOSTADDRESS$" "Win32_PerfRawData_MSSQLSERVER_SQLServerSQLErrors" "Name=_Total" "ErrorsPersec" "$ARG1$" "$ARG2$"

The rate of errors per second

  • $USER21$: The WMI Proxy Server IP Address

  • $ARG1$: Warning threshold, default is 80

  • $ARG2$: Critical threshold, default is 90

  • wmi_mssql_batchrequestspersec

  • check_wmi_mssql_batchrequestspersec!80!90

  • $USER1$/check_nrpe -t 60 -H $USER21$ -c get_counter_bulk_count -a "$HOSTADDRESS$" "Win32_PerfRawData_MSSQLSERVER_SQLServerSQLStatistics" "*" "BatchRequestsPersec" "$ARG1$" "$ARG2$"

The rate of batch requests per second

  • $USER21$: The WMI Proxy Server IP Address

  • $ARG1$: Warning threshold, default is 80

  • $ARG2$: Critical threshold, default is 90

Related Resources