Today we are happy to announce that our MSSQL plugins for Icinga for Windows are enhancing the series of Icinga plugins and become released as version 1.0. With this first release we are sharing four plugins to check the current health of MSSQL itself but also internal metrics. In addition we provide a plugin to fetch MSSQL specific Performance Counters from within the database, similar to our Windows Performance Counter plugin and a backup check plugin.

Simple Authentication

Our MSSQL plugins should normally be used for local installation to check if required MSSQL services are running and a connection to the database is possible. By default we provide two ways for authenticating against the database:

  • Classic usage of username and password
  • By using the integrated security

The last topic is the most important one, as you can add the service user the Icinga Agent is running with to a group of users which are allowed to connect to the MSSQL database. This will ensure you do not require to store a username and the password somewhere, as the authentication is done by Windows itself internally. By using the classic username and password approach we are using a secure string for password storage, which requires a password conversion from Icinga side which is done by the Framework itself during CheckCommand generation. By adding a Icinga Web 2 filter for SecureString, all passwords used by Icinga for Windows using secure strings are not visible within the webfrontend.

Check MSSQL Health

Our MSSQL health (Invoke-IcingaCheckMSSQLHealth) plugin will make the start by checking for a provided MSSQL Server instance if the Windows service is running and also test the local connection to the database.

Check MSSQL Ressource

In addition to the health check, we will require to get a better understanding of general performance metrics from MSSQL itself. To ensure this we added another plugin to check for important key counters like Buffer Cache Hit Ratio, Page Life Expectancy and Average Latch Wait Time: Invoke-IcingaCheckMSSQLResource.

Check MSSQL Performance Counter

Of course from Performance Counter side a wide range of values are available to check for. To fetch them easier and directly from the database, we provide the Invoke-IcingaCheckMSSQLPerfCounter. This plugin allows you directly to read Performance Counters from the sys.dm_os_performance_counters database and return them in a structured output.

Check MSSQL Backup

Last but not least the most important plugin besides the MSSQL health and the MSSQL performance are backups. With Invoke-IcingaCheckMSSQLBackup you can check if your backups of the database have a valid state, check for the backup size, for the execution time and much more. You can of course also filter which database you want to include within the check.

Installation

To install the new MSSQL plugins you will require the Icinga PowerShell Framework v1.2.0 or later and the Icinga PowerShell Plugins v.1.2.0 or later. In case your machine is allowed to connect to the internet, you can simply install the plugins by using

Install-IcingaFrameworkComponent -Name 'mssql' -Release;

For additional methods please have a look on the installation docs.

Conclusion

With the current state of our MSSQL Plugins we ship the possibility to get a first look if the databases are working properly and how the performance is. Of course we are open to feedback, suggestions and additional ideas to extend the MSSQL monitoring even further. Please feel free to get in touch with us directly and share your oppinions or open a feature request on the MSSQL GitHub page. What are you waiting for? Head over to the MSSQL GitHub Release Page and get started with monitoring!