* Update Nagios-Plugins.md * Update MM-Monitor.md * Update Nagios-Plugins.md * Update Nagios-Plugins.md * Update Galera-Cluster-Connection-Routing-Tutorial.md * Update Galera-Cluster-Connection-Routing-Tutorial.md * Update RabbitMQ-Setup-And-MaxScale-Integration.md * Update MaxScale-Tutorial.md * Update Cache.md * Update Transaction-Performance-Monitoring-Filter.md * Update RabbitMQ-Consumer-Client.md * Update Building-MaxScale-from-Source-Code.md * Update MariaDB-MaxScale-Installation-Guide.md * Update Install-MariaDB-MaxScale-Using-a-Tarball.md * Update RabbitMQ-Setup-And-MaxScale-Integration.md * Update RabbitMQ-Consumer-Client.md
		
			
				
	
	
		
			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
 | 
						|
```
 |