Awesome
check_mssql_health Nagios Plugin README
<div> <a href="https://www.buymeacoffee.com/bsNED0Wct" target="_blank"><img src="https://www.buymeacoffee.com/assets/img/custom_images/black_img.png" alt="Buy Me A Coffee" style="height: auto !important;width: auto !important;" ></a> </div>This plugin is used to monitor a variety of MS SQL Server database metrics.
-
For instructions on installing this plugin for use with Nagios, see below. In addition, generic instructions for the GNU toolchain can be found in the INSTALL file.
-
For major changes between releases, read the CHANGES file.
-
For information on detailed changes that have been made, read the Changelog file.
-
This plugin is self documenting. All plugins that comply with the basic guidelines for development will provide detailed help when invoked with the '-h' or '--help' options.
You can check for the latest plugin at: http://www.consol.com/opensource/nagios/check-mssql-health
The documentation in this README covers only the most common features. To view the full documentation and examples, go to http://www.consol.com/opensource/nagios/check-mssql-health or http://www.consol.de/opensource/nagios/check-mssql-health
Send mail to gerhard.lausser@consol.de for assistance. Please include the OS type/version and the Perl DBI/DBD version that you are using. Also, run the plugin with the '-vvv' option and provide the resulting version information. Of course, there may be additional diagnostic information required as well. Use good judgment.
For patch submissions and bug reports, please send me a mail. You can also find me at http://www.nagios-portal.de
Requirements
You need to install the Perl module DBD::Sybase first. It is very important to set the protocol version in /etc/freetds.conf to 8.0 Otherwise your database password will be visible on the network.
[global] # TDS protocol version tds version = 8.0
How to "compile" the check_mssql_health script.
-
Run the configure script to initialize variables and create a Makefile, etc.
./configure --prefix=BASEDIRECTORY --with-nagios-user=SOMEUSER --with-nagios-group=SOMEGROUP --with-perl=PATH_TO_PERL --with-statefiles-dir=STATE_PATH
a) Replace BASEDIRECTORY with the path of the directory under which Nagios is installed (default is '/usr/local/nagios') b) Replace SOMEUSER with the name of a user on your system that will be assigned permissions to the installed plugins (default is 'nagios') c) Replace SOMEGRP with the name of a group on your system that will be assigned permissions to the installed plugins (default is 'nagios') d) Replace PATH_TO_PERL with the path where a perl binary can be found. Besides the system wide perl you might have installed a private perl just for the nagios plugins (default is the perl in your path). e) Replace STATE_PATH with the directory where you want the script to write state files which transport information from one run to the next. (default is /tmp)
Simply running ./configure will be sufficient to create a check_mssql_health script which you can customize later.
-
"Compile" the plugin with the following command:
make
This will produce a "check_mssql_health" script. You will also find a "check_mssql_health.pl" which you better ignore. It is the base for the compilation filled with placeholders. These will be replaced during the make process.
-
Install the compiled plugin script with the following command:
make install
The installation procedure will attempt to place the plugin in a 'libexec/' subdirectory in the base directory you specified with the --prefix argument to the configure script.
-
Verify that your configuration files for Nagios contains the correct paths to the new plugin.
Command line parameters
--hostname=<the database server> This is the hostname or the ip-address.
--port=<the instance port> This is the port where an instance listens. Default: 1433
--server=<the database server> This can be used instead of a hostname/port combination. The servername given here is used for a lookup in /etc/freetds.conf
--user=<username> This is the user which reads the system tables.
--password=<secret> This is the user's password.
--mode=<operation mode> This parameter tells the plugin what it should check. The list of known modes may grow frequently. Please look at http://www.consol.com/opensource/nagios/check-mssql-health for a list of features.
--database=<database name> Database-related modes check all databases in one run by default. If only a single database should be checked, use this parameter.
--warning=<warning threshold> If the metric is out of this range, the plugin returns a warning.
--critical=<critical threshold> If the metric is out of this range, the plugin returns a critical.
Connecting
You can call the plugin with "--hostname <ip or dns-name> [--port <port number>]" This bypasses the freetds.conf file and directly connects you to whatever is listening on port 1433 or <port number> This will surely be the default instance. If you have different (named) instances listening on the same port, you need to edit /etc/freetds.conf
[dbsrv1instance01] host = 192.168.1.1 port = 1433 instance = instance01
[dbsrv1instance02] host = 192.168.1.1 port = 1433 instance = instance02
....
Then you call the plugin with "--server dbsrv1instance02" for example.
Testing the connection
use DBI; use strict;
my $username = "xxxxx"; my $password = "xxxxx"; my $dsn = "DBI:Sybase:;host=127.0.1.1;port=1433"; #my $dsn = "DBI:Sybase:;server=dbsrv_in_freetds_conf"; if (my $dbh = DBI->connect( $dsn, $username, $password, { RaiseError => 1, AutoCommit => 0, PrintError => 1 })) { printf "connection succeeded\n"; } else { printf "connection failed\n"; }
In Sybase, login as sa and switch on auditing: sp_configure "log audit logon success", 1 sp_configure "log audit logon failure", 1 go shutdown go
Then startup again startserver -f /opt/sybase/ASE-15_0/install/RUN_backup_server -f /opt/sybase/ASE-15_0/install/RUN_ase_server -f /opt/sybase/ASE-15_0/install/RUN_monitor_server
That's it. If you have any problems or questions, feel free to send mail to gerhard.lausser@consol.de