185 lines
		
	
	
		
			7.1 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			185 lines
		
	
	
		
			7.1 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| # MariaDB MaxScale Nagios plugins, for Nagios 3.5.1
 | |
| 
 | |
| # Introduction
 | |
| 
 | |
| Nagios® Core™ is an Open Source system and network monitoring application.
 | |
| It watches hosts and services that you specify, alerting you when things go bad
 | |
| and when they get better.
 | |
| Nagios plugins are compiled executables or scripts (Perl scripts, shell scripts, etc.)
 | |
| that can be run from a command line to check the status or a host or service.
 | |
| Nagios uses the results from plugins to determine the current status of hosts and
 | |
| services on your network.
 | |
| Nagios core executes a plugin whenever there is a need to check the status
 | |
| of a service or host.
 | |
| 
 | |
| While MariaDB MaxScale resources and status can be monitored via CLI using
 | |
| maxadmin commands, Nagios Plugin provides an automated way for system administration
 | |
| and database administrators to monitor MariaDB MaxScale.
 | |
| The diagram below provides view of how Nagios and MariaDB MaxScale interact.
 | |
| 
 | |
| 
 | |
| 
 | |
| There are three Nagios plugin scripts that MariaDB MaxScale provides.
 | |
| 
 | |
| 1. check_maxscale_threads.pl: This command provides you the status of current running
 | |
| threads and events in the queue on MariaDB MaxScale Server.
 | |
| The Performance data associated with this command current and historic wait time for threads and events
 | |
| 
 | |
| 2. check_maxscale_resources.pl: This command provides you status of various resources
 | |
| on MariaDB MaxScale server. The Performance data associated provides
 | |
| details on respective resources.
 | |
| Current resources are: modules, services, listeners, servers, sessions, filters.
 | |
| 
 | |
| 3. check_maxscale_monitor.pl: This command provides you status of the configured
 | |
| monitor modules on MariaDB MaxScale server.
 | |
| 
 | |
| In order to use these scripts on your Nagios Server, you need to copy them
 | |
| from the MariaDB MaxScale binary package or download them from source tree on GitHub.
 | |
| 
 | |
| # MariaDB MaxScale Nagios Plugin Requirements
 | |
| 
 | |
| MariaDB MaxScale must be configured with 'maxscaled' protocol for the administration interface:
 | |
| 
 | |
| Example of maxscale.cnf file:
 | |
| 
 | |
| ```
 | |
| [AdminInterface]
 | |
| type=service
 | |
| router=cli
 | |
| 
 | |
| [AdminListener]
 | |
| type=listener
 | |
| service=AdminInterface
 | |
| protocol=maxscaled
 | |
| socket=default
 | |
| ```
 | |
| 
 | |
| ## Prepare Nagios configuration files.
 | |
| 
 | |
| Assuming Nagios installed on a separated server and the plugins are
 | |
| in /usr/lib64/nagios/plugins and configuration files are in /etc/nagios:
 | |
| 
 | |
| * Copy MariaDB MaxScale plugin scripts (./nagios/plugins/check_maxscale_*.pl)
 | |
| to /usr/lib64/nagios/plugins on Nagios Server
 | |
| * Copy New commands and server1 definition (./nagios/plugins/maxscale_commands.cfg, server1.cfg)
 | |
| to /etc/nagios/objects/ on Nagios Server
 | |
| * Edit /etc/nagios/nagios.cfg on Nagios Server
 | |
| 
 | |
| and add (just after localhost.cfg or commands.cfg)
 | |
| 
 | |
| ```
 | |
| cfg_file=/etc/nagios/objects/maxscale_commands.cfg
 | |
| cfg_file=/etc/nagios/objects/server1.cfg
 | |
| ```
 | |
| 
 | |
| ### Please note:
 | |
| - modify server IP address in server1.cfg, pointing to MariaDB MaxScale server
 | |
| - MariaDB MaxScale server must be reachable via ssh with identity file: i.e:
 | |
| 
 | |
|   `ssh -i /identity_files/maxscale_host.rsa user@mascale_host maxadmin ...`
 | |
| 
 | |
| - The default maxadmin executable path is /usr/bin/maxadmin can be changed by -m option
 | |
| - default maxadmin socket (/tmp/maxadmin.sock) can be changed with -S option
 | |
| - maxadmin executable is no longer required to be copied in Nagios server.
 | |
| - the UNIX user in ssh connection should be also admin user for MariaDB MaxScale admin.
 | |
| First time access or no configured users means the "root" user is the only one that can access
 | |
| MariaDB MaxScale admin interface via UNIX socket.
 | |
| 
 | |
| Test maxadmin with proper user in maxscale server and later via SSH.
 | |
| Those checks are strongly recommended before using Nagios scripts.
 | |
| 
 | |
| For additional information about Maxadmin and MariaDB MaxScale administrative interface
 | |
| please refer to [MaxAdmin Utility](../Reference/MaxAdmin.md)
 | |
| 
 | |
| This example shows configuration that needs to be done on Nagios server in order to
 | |
| communicate to MariaDB MaxScale server that is running on host server1.
 | |
| In this example we are using the check_maxscale_resource as the check command
 | |
| 
 | |
| ```
 | |
| 	#Check MariaDB MaxScale sessions, on the remote machine.
 | |
| 	define service{
 | |
| 		use			local-service
 | |
| 		host_name		server1
 | |
| 		service_description	MaxScale_sessions
 | |
| 		check_command		check_maxscale_resource!maxscale_user!user_identy_file!sessions!/tmp/maxadmin.sock!/path_to/maxadmin
 | |
| 		notifications_enabled	0
 | |
| 	}
 | |
| ```
 | |
| 
 | |
| ### Check new running monitors
 | |
| * Restart Nagios and check new monitors are running in HTTP Interface
 | |
| "Current Status -> Services" on Nagios Server
 | |
| * Look for any errors in /var/log/nagios/nagios.log or nagios.debug on Nagios Server
 | |
| 
 | |
| # Nagios Plugin command line usage
 | |
| 
 | |
| 	(1) ./check_maxscale_threads.pl -h
 | |
| 
 | |
| 	MaxScale monitor checker plugin for Nagios
 | |
| 
 | |
| 	Usage: check_maxscale_threads.pl [-r <resource>] [-H <host>] [-u <user>] [-S <socket>] [-m <maxadmin>] [-h]
 | |
| 
 | |
| 	Options:
 | |
|        -r <resource>	= threads
 | |
|        -h		= provide this usage message
 | |
|        -H <host>	= which host to connect to with SSH
 | |
|        -u <user>	= username to connect to maxscale host via SSH (same user is used for maxadmin authentication)
 | |
|        -i <identity>	= identity file to use for <user> at <host>
 | |
|        -m <maxadmin>	= /path/to/maxadmin
 | |
|        -S <socket>      = UNIX socket path between maxadmin and maxscale (default
 | |
|        is /tmp/maxadmin.sock)
 | |
| 
 | |
| 	(2) ./check_maxscale_resources.pl -h
 | |
| 
 | |
| 	MaxScale monitor checker plugin for Nagios
 | |
| 
 | |
| 	Usage: check_maxscale_resources.pl [-r <resource>] [-H <host>] [-u <user>] [-S <socket>] [-m <maxadmin>] [-h]
 | |
| 
 | |
| 	Options:
 | |
|        -r <resource>	= modules|services|filters|listeners|servers|sessions
 | |
|        -h		= provide this usage message
 | |
|        -H <host>	= which host to connect to with SSH
 | |
|        -u <user>	= username to connect to maxscale host via SSH (same user is used for maxadmin authentication)
 | |
|        -i <identity>	= identity file to use for <user> at <host>
 | |
|        -m <maxadmin>	= /path/to/maxadmin
 | |
|        -S <socket>      = UNIX socket path between maxadmin and maxscale (default is /tmp/maxadmin.sock)
 | |
| 
 | |
| 	(3) ./check_maxscale_monitor.pl -h
 | |
| 
 | |
| 	MaxScale monitor checker plugin for Nagios
 | |
| 
 | |
| 	Usage: check_maxscale_monitors.pl [-r <resource>] [-H <host>] [-u <user>] [-S <socket>] [-m <maxadmin>] [-h]
 | |
| 
 | |
| 	Options:
 | |
|        -r <resource>	= monitors
 | |
|        -h		= provide this usage message
 | |
|        -H <host>	= which host to connect to with SSH
 | |
|        -u <user>	= username to connect to maxscale host via SSH (same user is used for maxadmin authentication)
 | |
|        -i <identity>	= identity file to use for <user> at <host>
 | |
|        -m <maxadmin>	= /path/to/maxadmin
 | |
|        -S <socket>      = UNIX socket path between maxadmin and maxscale (default is /tmp/maxadmin.sock)
 | |
| 
 | |
| # Output description:
 | |
| 
 | |
| Example for 'services'
 | |
| 
 | |
| ```
 | |
| #./check_maxscale_resources.pl -r resources
 | |
| 
 | |
| OK: 7 services found | services1=RW_Router;readwritesplit;1;1 services2=RW_Split;
 | |
| readwritesplit;1;1 services3=Test Service;readconnroute;1;1 services4=Master Service;
 | |
| readconnroute;2;2 services5=Debug Service;debugcli;1;1 services6=CLI;cli;2;145
 | |
| services7=MaxInfo;maxinfo;2;2
 | |
| ```
 | |
| 
 | |
| Returns OK and the number of services
 | |
| 
 | |
| Returns CRITICAL if no services are found
 | |
| 
 | |
| The data after | char are so called performance data and may be collected by Nagios
 | |
| output format is:
 | |
| 
 | |
| ```
 | |
| servicex=Name;router_module;NumUsers;TotalSessions
 | |
| ```
 | 
