# NDB Cluster Monitor ## Overview The MySQL Cluster Monitor is a monitoring module for MaxScale that monitors a MySQL Cluster. It assigns a NDB status for the server if it is a part of a MySQL Cluster. ## Configuration A minimal configuration for a monitor requires a set of servers for monitoring and a username and a password to connect to these servers. The user requires the REPLICATION CLIENT privilege to successfully monitor the state of the servers. ``` [MySQL Cluster Monitor] type=monitor module=ndbclustermon servers=server1,server2,server3 user=myuser passwd=mypwd ``` ## Optional parameters for all monitors Here are optional parameters that are common for all the monitors. ### `monitor_interval` This is the time the monitor waits between each cycle of monitoring. The default value of 10000 milliseconds (10 seconds) should be lowered if you want a faster response to changes in the server states. The value is defined in milliseconds and the smallest possible value is 100 milliseconds. ``` monitor_interval=2500 ``` ### `backend_connect_timeout` This parameter controls the timeout for connecting to a monitored server. It is in seconds and the minimum value is 1 second. The default value for this parameter is 3 seconds. ``` backend_connect_timeout=6 ``` ### `backend_write_timeout` This parameter controls the timeout for writing to a monitored server. It is in seconds and the minimum value is 1 second. The default value for this parameter is 2 seconds. ``` backend_write_timeout=4 ``` ### `backend_read_timeout` This parameter controls the timeout for reading from a monitored server. It is in seconds and the minimum value is 1 second. The default value for this parameter is 1 seconds. ``` backend_read_timeout=2 ``` ## MySQL Cluster Monitor optional parameters These are optional parameters specific to the MySQL Cluster Monitor. ### `script` This script will be executed when a server changes its state. The parameter should be an absolute path to the script or it should be in the executable path. ``` script=/home/user/script.sh ``` This script will be called with the following command line arguments. ``` --event= --initiator= --nodelist= ``` ### `events` A list of event names which cause the script to be executed. If this option is not defined, all events cause the script to be executed. The list must contain a comma separated list of event names. ``` events=master_down,slave_down ``` ## Script events Here is a table of all possible event types and their descriptions that the MySQL Cluster monitor can be called with. Event Name|Description ----------|---------- master_down|A Master server has gone down master_up|A Master server has come up slave_down|A Slave server has gone down slave_up|A Slave server has come up server_down|A server with no assigned role has gone down server_up|A server with no assigned role has come up ndb_down|A MySQL Cluster node has gone down ndb_up|A MySQL Cluster node has come up lost_master|A server lost Master status lost_slave|A server lost Slave status lost_ndb|A MySQL Cluster node lost node membership new_master|A new Master was detected new_slave|A new Slave was detected new_ndb|A new MySQL Cluster node was found