Merge branch 'develop' into MXS-129
This commit is contained in:
commit
03470bcd70
@ -11,7 +11,7 @@ or by manually starting the process from the bin folder of the installation dire
|
||||
|
||||
Configuration
|
||||
|
||||
You need to create or edit the MaxScale.cnf file in the /etc folder.
|
||||
You need to create or edit the maxscale.cnf file in the /etc folder.
|
||||
Define the services you wish to provide, the set of server definitions
|
||||
you require, with the addresses and ports of those servers and also
|
||||
define the listening ports for your various services.
|
||||
@ -22,4 +22,4 @@ the port defined for the telnet listener. Initially you may login with
|
||||
the user name of "admin" and the password "mariadb". Once connected type
|
||||
help for an overview of the commands and help <command> for the more
|
||||
detailed help on commands. Use the add user command to add a new user,
|
||||
this will also remove the admin/mariadb user.
|
||||
this will also remove the admin/mariadb user. For a detailed guide about using the MaxAdmin interface, take a look at the [MaxAdmin](../Reference/MaxAdmin.md) guide.
|
||||
|
@ -4,7 +4,7 @@ You will need a number of tools and libraries in order to achieve this.
|
||||
|
||||
* cmake version 2.8.12 or later
|
||||
|
||||
* gcc recommended version 4.4.7 or later
|
||||
* gcc recommended version 4.4.7 or later (MariaDB 10 libraries require gcc 4.7 or newer)
|
||||
|
||||
* libaio
|
||||
|
||||
|
@ -241,7 +241,7 @@ Query OK, 0 rows affected (0.00 sec)
|
||||
|
||||
#### `passwd`
|
||||
|
||||
The passwd parameter provides the password information for the above user and may be either a plain text password or it may be an encrypted password. See the section on encrypting passwords for use in the MaxScale.cnf file. This user must be capable of connecting to the backend database and executing these SQL statements to load database names and grants from the backends:
|
||||
The passwd parameter provides the password information for the above user and may be either a plain text password or it may be an encrypted password. See the section on encrypting passwords for use in the maxscale.cnf file. This user must be capable of connecting to the backend database and executing these SQL statements to load database names and grants from the backends:
|
||||
|
||||
* `SELECT user, host, password,Select_priv FROM mysql.user`.
|
||||
* `SELECT user, host, db FROM mysql.db`
|
||||
@ -414,7 +414,7 @@ The monitor has a username and password that is used to connect to all servers f
|
||||
monitorpw=mymonitorpasswd
|
||||
```
|
||||
|
||||
The monpasswd parameter may be either a plain text password or it may be an encrypted password. See the section on encrypting passwords for use in the MaxScale.cnf file.
|
||||
The monpasswd parameter may be either a plain text password or it may be an encrypted password. See the section on encrypting passwords for use in the maxscale.cnf file.
|
||||
|
||||
### Listener
|
||||
|
||||
@ -563,7 +563,7 @@ Individual servers may define override values for the user and password the moni
|
||||
|
||||
#### `passwd`
|
||||
|
||||
The password parameter may be either a plain text password or it may be an encrypted password. See the section on encrypting passwords for use in the `MaxScale.cnf` file.
|
||||
The password parameter may be either a plain text password or it may be an encrypted password. See the section on encrypting passwords for use in the `maxscale.cnf` file.
|
||||
|
||||
#### `monitor_interval`
|
||||
|
||||
@ -1355,7 +1355,7 @@ before being sent to the server. Note that the text in the match string is case-
|
||||
|
||||
The **tee** filter is a filter module for MaxScale that acts as a "plumbing" fitting in the MaxScale filter toolkit. It can be used in a filter pipeline of a service to make a copy of requests from the client and dispatch a copy of the request to another service within MaxScale.
|
||||
|
||||
The configuration block for the **tee** filter requires the minimal filter parameters in its section within the `MaxScale.cnf` file that defines the filter to load and the service to send the duplicates to.
|
||||
The configuration block for the **tee** filter requires the minimal filter parameters in its section within the `maxscale.cnf` file that defines the filter to load and the service to send the duplicates to.
|
||||
|
||||
```
|
||||
[ArchiveFilter]
|
||||
@ -1370,7 +1370,7 @@ In addition parameters may be added to define patterns to match against to eithe
|
||||
|
||||
The top filter is a filter module for MaxScale that monitors every SQL statement that passes through the filter. It measures the duration of that statement, the time between the statement being sent and the first result being returned. The top N times are kept, along with the SQL text itself and a list sorted on the execution times of the query is written to a file upon closure of the client session.
|
||||
|
||||
The configuration block for the **top** filter requires the minimal filter options in its section within the `MaxScale.cnf` file, stored in `/etc/MaxScale.cnf`.
|
||||
The configuration block for the **top** filter requires the minimal filter options in its section within the `maxscale.cnf` file, stored in `/etc/maxscale.cnf`.
|
||||
|
||||
```
|
||||
[MyLogFilter]
|
||||
@ -1384,13 +1384,13 @@ In addition parameters may be added to define patterns to match against to eithe
|
||||
|
||||
## Encrypting Passwords
|
||||
|
||||
Passwords stored in the MaxScale.cnf file may optionally be encrypted for added security. This is done by creation of an encryption key on installation of MaxScale. Encryption keys may be created manually by executing the maxkeys utility with the argument of the filename to store the key. The default location MaxScale stores the keys is `/var/cache/maxscale`.
|
||||
Passwords stored in the maxscale.cnf file may optionally be encrypted for added security. This is done by creation of an encryption key on installation of MaxScale. Encryption keys may be created manually by executing the maxkeys utility with the argument of the filename to store the key. The default location MaxScale stores the keys is `/var/cache/maxscale`.
|
||||
|
||||
```
|
||||
maxkeys /var/cache/maxscale/.secrets
|
||||
```
|
||||
|
||||
Changing the encryption key for MaxScale will invalidate any currently encrypted keys stored in the MaxScale.cnf file.
|
||||
Changing the encryption key for MaxScale will invalidate any currently encrypted keys stored in the maxscale.cnf file.
|
||||
|
||||
### Creating Encrypted Passwords
|
||||
|
||||
@ -1399,7 +1399,7 @@ Encrypted passwords are created by executing the maxpasswd command with the pass
|
||||
maxpasswd MaxScalePw001
|
||||
61DD955512C39A4A8BC4BB1E5F116705
|
||||
|
||||
The output of the maxpasswd command is a hexadecimal string, this should be inserted into the MaxScale.cnf file in place of the ordinary, plain text, password. MaxScale will determine this as an encrypted password and automatically decrypt it before sending it the database server.
|
||||
The output of the maxpasswd command is a hexadecimal string, this should be inserted into the maxscale.cnf file in place of the ordinary, plain text, password. MaxScale will determine this as an encrypted password and automatically decrypt it before sending it the database server.
|
||||
|
||||
```
|
||||
[Split Service]
|
||||
|
@ -65,7 +65,7 @@ modules it will search using a configurable search path. The priority of these p
|
||||
2. Look in the directory defined with libdir=PATH in the configuration file under the [maxscale] section
|
||||
3. Look in default directory in /usr/lib64/maxscale
|
||||
|
||||
Configuration is read by default from the file /etc/MaxScale.cnf. An example file is included in in the installation and can be found in the /usr/share/maxscale folder within the MaxScale installation. The -f flag can be used on the command line to set the name and the location of the configuration file. The -C flag can be used to set the directory where the configuration file is searched for. Without the -f or -C flags, the file is read from the /etc directory.
|
||||
Configuration is read by default from the file /etc/maxscale.cnf. An example file is included in in the installation and can be found in the /usr/share/maxscale folder within the MaxScale installation. The -f flag can be used on the command line to set the name and the location of the configuration file. The -C flag can be used to set the directory where the configuration file is searched for. Without the -f or -C flags, the file is read from the /etc directory.
|
||||
|
||||
## Administration Of MaxScale
|
||||
|
||||
|
@ -1679,7 +1679,7 @@ Loaded 34 users.
|
||||
|
||||
## Reload config
|
||||
|
||||
The reload config command can be used to force MaxScale to re-read the MaxScale.cnf and update itself to the latest configuration defined in that configuration file. It is also possible to force the reading of the configuration file by sending a HangUp signal (SIGHUP) to the maxscale process.
|
||||
The reload config command can be used to force MaxScale to re-read the maxscale.cnf and update itself to the latest configuration defined in that configuration file. It is also possible to force the reading of the configuration file by sending a HangUp signal (SIGHUP) to the maxscale process.
|
||||
|
||||
**MaxScale>** reload config
|
||||
|
||||
@ -1789,7 +1789,7 @@ MariaDB Corporation MaxScale /home/jdoe/bin/develop/log/skygw_msg1.log Tue Dec
|
||||
|
||||
2014-12-09 14:47:05 Log directory : /home/jdoe/bin/develop/log
|
||||
|
||||
2014-12-09 14:47:05 Configuration file : /home/jdoe/bin/develop/etc/MaxScale.cnf
|
||||
2014-12-09 14:47:05 Configuration file : /home/jdoe/bin/develop/etc/maxscale.cnf
|
||||
|
||||
2014-12-09 14:47:05 Initialise CLI router module V1.0.0.
|
||||
|
||||
|
@ -15,7 +15,7 @@ name-value pairs.
|
||||
Routing queries to a server:
|
||||
-- maxscale route to [master | slave | server <server name>]
|
||||
|
||||
The name of the server is the same as in MaxScale.cnf
|
||||
The name of the server is the same as in maxscale.cnf
|
||||
|
||||
Creating a name-value pair:
|
||||
-- maxscale <param>=<value>
|
||||
|
@ -591,7 +591,7 @@ Some monitors provide a replication heartbeat mechanism that monitors the delay
|
||||
MaxScale> enable heartbeat "MySQL Monitor"
|
||||
MaxScale>
|
||||
|
||||
Please note that changes made via this interface will not persist across restarts of MaxScale. To make a permanent change edit the MaxScale.cnf file.
|
||||
Please note that changes made via this interface will not persist across restarts of MaxScale. To make a permanent change edit the maxscale.cnf file.
|
||||
|
||||
Enabling the replication heartbeat mechanism will add the display of heartbeat information in the show server output
|
||||
|
||||
@ -786,11 +786,11 @@ Two commands are provided to change the logging levels within MaxScale, disable
|
||||
MaxScale> disable log debug
|
||||
MaxScale>
|
||||
|
||||
Please note that changes made via this interface will not persist across restarts of MaxScale. To make a permanent change edit the MaxScale.cnf file.
|
||||
Please note that changes made via this interface will not persist across restarts of MaxScale. To make a permanent change edit the maxscale.cnf file.
|
||||
|
||||
## Reloading The Configuration
|
||||
|
||||
A command, reload config, is available that will cause MaxScale to reload the MaxScale.cnf configuration file.
|
||||
A command, reload config, is available that will cause MaxScale to reload the maxscale.cnf configuration file.
|
||||
|
||||
## Shutting Down MaxScale
|
||||
|
||||
@ -798,7 +798,7 @@ The MaxScale server may be shutdown using the shutdown maxscale command.
|
||||
|
||||
# Configuring MaxScale to Accept MaxAdmin Connections
|
||||
|
||||
In order to allow the use of the MaxAdmin client interface the service must be added to the MaxScale.cnf file of the Maxscale server. The CLI service itself must be added and a listener for the maxscaled protocol.
|
||||
In order to allow the use of the MaxAdmin client interface the service must be added to the maxscale.cnf file of the Maxscale server. The CLI service itself must be added and a listener for the maxscaled protocol.
|
||||
|
||||
The default entries required are shown below.
|
||||
|
||||
|
@ -107,11 +107,11 @@ A number of bug fixes have been applied between the 1.0 beta release and this re
|
||||
</tr>
|
||||
<tr>
|
||||
<td>479</td>
|
||||
<td>Undefined filter reference in MaxScale.cnf causes a crash</td>
|
||||
<td>Undefined filter reference in maxscale.cnf causes a crash</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>410</td>
|
||||
<td>MaxScale.cnf server option is not parsed for spaces</td>
|
||||
<td>maxscale.cnf server option is not parsed for spaces</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>417</td>
|
||||
|
@ -15,14 +15,14 @@ The purpose of this tutorial is to introduce the MaxScale Administrator to a few
|
||||
### Starting MaxScale
|
||||
|
||||
There are several ways to start MaxScale, the most convenient mechanism is probably using the Linux service interface. When a MaxScale package is installed the package manager will also installed a script in /etc/init.d which may be used to start and stop MaxScale either directly or via the service interface.
|
||||
|
||||
```
|
||||
$ service maxscale start
|
||||
|
||||
```
|
||||
or
|
||||
|
||||
```
|
||||
$ /etc/init.d/maxscale start
|
||||
|
||||
It is also possible to start MaxScale by executing the maxscale command itself, in this case you must ensure that the environment is correctly setup or command line options are passed. The major elements to consider are the correct setting of the MAXSCALE\_HOME directory and to ensure that LD\_LIBRARY\_PATH. The LD\_LIBRARY\_PATH should include the lib directory that was installed as part of the MaxScale installation, the MAXSCALE\_HOME should point to /usr/local/mariadb-maxscale if a default installation has been created or to the directory this was relocated to. Running the executable $MAXSCALE\_HOME/bin/maxscale will result in MaxScale running as a daemon process, unattached to the terminal in which it was started and using configuration files that it finds in the $MAXSCALE\_HOME directory.
|
||||
```
|
||||
It is also possible to start MaxScale by executing the maxscale command itself. Running the executable /usr/bin/maxscale will result in MaxScale running as a daemon process, unattached to the terminal in which it was started and using configuration files that it finds in the /etc directory.
|
||||
|
||||
Options may be passed to the MaxScale binary that alter this default behavior, this options are documented in the table below.
|
||||
|
||||
@ -49,21 +49,21 @@ Switch|Long Option|Description
|
||||
There are numerous ways in which MaxScale can be stopped; using the service interface, killing the process or by use of the maxadmin utility.
|
||||
|
||||
Stopping MaxScale with the service interface is simply a case of using the service stop command or calling the init.d script with the stop argument.
|
||||
|
||||
```
|
||||
$ service maxscale stop
|
||||
|
||||
```
|
||||
or
|
||||
|
||||
```
|
||||
$ /etc/init.d/maxscale stop
|
||||
|
||||
MaxScale will also stop gracefully if it received a hangup signal, to find the process id of the MaxScale server use the ps command or read the contents of the maxscale.pid file located in the same directory as the logs.
|
||||
|
||||
$ kill -HUP `cat /log/maxscale.pid`
|
||||
|
||||
```
|
||||
MaxScale will also stop gracefully if it received a terminate signal, to find the process id of the MaxScale server use the ps command or read the contents of the maxscale.pid file located in the /var/run/maxscale directory.
|
||||
```
|
||||
$ kill `cat /var/run/maxscale/maxscale.pid`
|
||||
```
|
||||
In order to shutdown MaxScale using the maxadmin command you may either connect with maxadmin in interactive mode or pass the "shutdown maxscale" command you wish to execute as an argument to maxadmin.
|
||||
|
||||
```
|
||||
$ maxadmin -pmariadb shutdown maxscale
|
||||
|
||||
```
|
||||
<a name="checking"></a>
|
||||
### Checking The Status Of The MaxScale Services
|
||||
|
||||
@ -98,7 +98,7 @@ It should be noted that network listeners count as a user of the service, theref
|
||||
### What Clients Are Connected To MaxScale
|
||||
|
||||
To determine what client are currently connected to MaxScale you can use the "list clients" command within maxadmin. This will give you IP address and the ID’s of the DCB and session for that connection. As with any maxadmin command this can be passed on the command line or typed interactively in maxadmin.
|
||||
|
||||
```
|
||||
$ maxadmin -pmariadb list clients
|
||||
|
||||
Client Connections
|
||||
@ -114,28 +114,27 @@ To determine what client are currently connected to MaxScale you can use the "li
|
||||
-----------------+------------------+----------------------+------------
|
||||
|
||||
$
|
||||
|
||||
```
|
||||
<a name="rotating"></a>
|
||||
### Rotating Log Files
|
||||
|
||||
MaxScale write log data into four log files with varying degrees of detail. With the exception of the error log, which can not be disabled, these log files may be enabled and disabled via the maxadmin interface or in the configuration file. The default behavior of MaxScale is to grow the log files indefinitely, the administrator must take action to prevent this.
|
||||
|
||||
It is possible to rotate either a single log file or all the log files with a single command. When the logfile is rotated, the current log file is closed and a new log file, with an increased sequence number in its name, is created. Log file rotation is achieved by use of the "flush log" or “flush logs” command in maxadmin.
|
||||
|
||||
```
|
||||
$ maxadmin -pmariadb flush logs
|
||||
|
||||
```
|
||||
Flushes all of the logs, whereas an individual log may be flushed with the "flush log" command.
|
||||
|
||||
```
|
||||
$ maxadmin -pmariadb
|
||||
MaxScale> flush log error
|
||||
MaxScale> flush log trace
|
||||
MaxScale>
|
||||
|
||||
```
|
||||
This may be integrated into the Linux logrotate mechanism by adding a configuration file to the /etc/logrotate.d directory. If we assume we want to rotate the log files once per month and wish to keep 5 log files worth of history, the configuration file would look like the following.
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<td>/usr/local/mariadb-maxscale/log/*.log {
|
||||
```
|
||||
/var/log/maxscale/*.log {
|
||||
monthly
|
||||
rotate 5
|
||||
missingok
|
||||
@ -144,30 +143,26 @@ sharedscripts
|
||||
postrotate
|
||||
\# run if maxscale is running
|
||||
if test -n "`ps acx|grep maxscale`"; then
|
||||
/usr/local/mariadb-maxscale/bin/maxadmin -pmariadb flush logs
|
||||
/usr/bin/maxadmin -pmariadb flush logs
|
||||
fi
|
||||
endscript
|
||||
}</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
}
|
||||
```
|
||||
|
||||
One disadvantage with this is that the password used for the maxadmin command has to be embedded in the log rotate configuration file. MaxScale will also rotate all of its log files if it receives the USR1 signal. Using this the logrotate configuration script can be rewritten as
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<td>/usr/local/mariadb-maxscale/log/*.log {
|
||||
```
|
||||
/var/log/maxscale/*.log {
|
||||
monthly
|
||||
rotate 5
|
||||
missingok
|
||||
nocompress
|
||||
sharedscripts
|
||||
postrotate
|
||||
kill -USR1 `cat /usr/local/mariadb-maxscale/log/maxscale.pid`
|
||||
kill -USR1 `cat /var/run/maxscale/maxscale.pid`
|
||||
endscript
|
||||
}</td>
|
||||
</tr>
|
||||
</table>
|
||||
}
|
||||
```
|
||||
|
||||
<a name="outofuse"></a>
|
||||
### Taking A Database Server Out Of Use
|
||||
@ -175,16 +170,16 @@ endscript
|
||||
MaxScale supports the concept of maintenance mode for servers within a cluster, this allows for planned, temporary removal of a database from the cluster within the need to change the MaxScale configuration.
|
||||
|
||||
To achieve the removal of a database server you can use the set server command in the maxadmin utility to set the maintenance mode flag for the server. This may be done interactively within maxadmin or by passing the command on the command line.
|
||||
|
||||
```
|
||||
MaxScale> set server dbserver3 maintenance
|
||||
MaxScale>
|
||||
|
||||
```
|
||||
This will cause MaxScale to stop routing any new requests to the server, however if there are currently requests executing on the server these will not be interrupted.
|
||||
|
||||
To bring the server back into service use the "clear server" command to clear the maintenance mode bit for that server.
|
||||
|
||||
```
|
||||
MaxScale> clear server dbserver3 maintenance
|
||||
MaxScale>
|
||||
|
||||
```
|
||||
Note that maintenance mode is not persistent, if MaxScale restarts when a node is in maintenance mode a new instance of MaxScale will not honour this mode. If multiple MaxScale instances are configured to use the node them maintenance mode must be set within each MaxScale instance. However if multiple services within one MaxScale instance are using the server then you only need set the maintenance mode once on the server for all services to take note of the mode change.
|
||||
|
||||
|
@ -60,7 +60,7 @@ If you wish to use two different usernames for the two different roles of monito
|
||||
|
||||
### Creating Your MaxScale Configuration
|
||||
|
||||
MaxScale configuration is held in an ini file that is located in the file MaxScale.cnf in the directory /etc, if you have installed in the default location then this file is available in /usr/local/mariadb-maxscale/etc/MaxScale.cnf. This is not created as part of the installation process and must be manually created. A template file does exist within this directory that may be use as a basis for your configuration.
|
||||
MaxScale configuration is held in an ini file that is located in the file maxscale.cnf in the directory /etc, if you have installed in the default location then this file is available in /etc/maxscale.cnf. This is not created as part of the installation process and must be manually created. A template file does exist within the /usr/share/maxscale directory that may be use as a basis for your configuration.
|
||||
|
||||
A global, maxscale, section is included within every MaxScale configuration file; this is used to set the values of various MaxScale wide parameters, perhaps the most important of these is the number of threads that MaxScale will use to execute the code that forwards requests and handles responses for clients.
|
||||
|
||||
@ -89,7 +89,7 @@ In order to instruct the router to which servers it should route we must add rou
|
||||
|
||||
The final step in the service section is to add the username and password that will be used to populate the user data from the database cluster. There are two options for representing the password, either plain text or encrypted passwords may be used. In order to use encrypted passwords a set of keys must be generated that will be used by the encryption and decryption process. To generate the keys use the maxkeys command and pass the name of the secrets file in which the keys are stored.
|
||||
|
||||
% maxkeys /usr/local/mariadb-maxscale/etc/.secrets
|
||||
% maxkeys /var/lib/maxscale/.secrets
|
||||
%
|
||||
|
||||
Once the keys have been created the maxpasswd command can be used to generate the encrypted password.
|
||||
@ -178,7 +178,7 @@ or
|
||||
|
||||
% service maxscale start
|
||||
|
||||
Check the error log in /usr/local/mariadb-maxscale/log to see if any errors are detected in the configuration file and to confirm MaxScale has been started. Also the maxadmin command may be used to confirm that MaxScale is running and the services, listeners etc have been correctly configured.
|
||||
Check the error log in /var/log/maxscale to see if any errors are detected in the configuration file and to confirm MaxScale has been started. Also the maxadmin command may be used to confirm that MaxScale is running and the services, listeners etc have been correctly configured.
|
||||
|
||||
% maxadmin -pmariadb list services
|
||||
|
||||
|
@ -62,7 +62,7 @@ If you wish to use two different usernames for the two different roles of monito
|
||||
|
||||
### Creating Your MaxScale Configuration
|
||||
|
||||
MaxScale configuration is held in an ini file that is located in the file MaxScale.cnf in the directory /etc, if you have installed in the default location then this file is available in /usr/local/mariadb-maxscale/etc/MaxScale.cnf. This is not created as part of the installation process and must be manually created. A template file does exist within this directory that may be use as a basis for your configuration.
|
||||
MaxScale configuration is held in an ini file that is located in the file maxscale.cnf in the directory /etc, if you have installed in the default location then this file is available in /etc/maxscale.cnf. This is not created as part of the installation process and must be manually created. A template file does exist within the /usr/share/maxscale directory that may be use as a basis for your configuration.
|
||||
|
||||
A global, maxscale, section is included within every MaxScale configuration file; this is used to set the values of various MaxScale wide parameters, perhaps the most important of these is the number of threads that MaxScale will use to execute the code that forwards requests and handles responses for clients.
|
||||
|
||||
@ -83,7 +83,7 @@ The router for we need to use for this configuration is the readwritesplit modul
|
||||
|
||||
The final step in the service sections is to add the username and password that will be used to populate the user data from the database cluster. There are two options for representing the password, either plain text or encrypted passwords may be used. In order to use encrypted passwords a set of keys must be generated that will be used by the encryption and decryption process. To generate the keys use the maxkeys command and pass the name of the secrets file in which the keys are stored.
|
||||
|
||||
% maxkeys /usr/local/mariadb-maxscale/etc/.secrets
|
||||
% maxkeys /var/lib/maxscale/.secrets
|
||||
%
|
||||
|
||||
Once the keys have been created the maxpasswd command can be used to generate the encrypted password.
|
||||
@ -183,7 +183,7 @@ or
|
||||
|
||||
% service maxscale start
|
||||
|
||||
Check the error log in /usr/local/mariadb-maxscale/log to see if any errors are detected in the configuration file and to confirm MaxScale has been started. Also the maxadmin command may be used to confirm that MaxScale is running and the services, listeners etc have been correctly configured.
|
||||
Check the error log in /var/log/maxscale to see if any errors are detected in the configuration file and to confirm MaxScale has been started. Also the maxadmin command may be used to confirm that MaxScale is running and the services, listeners etc have been correctly configured.
|
||||
|
||||
% maxadmin -pmariadb list services
|
||||
|
||||
|
@ -5,7 +5,7 @@ The plugin is capable of returning data in one of two ways, either as MySQL resu
|
||||
|
||||
# Configuration
|
||||
|
||||
The plugin is configured in the MaxScale.cnf plugin in much the same way as any other router service is configured, there needs to be a service section in the configuration file and also listeners defined for that service. The service does not however require any backend servers to be associated with it, or any monitors.
|
||||
The plugin is configured in the maxscale.cnf plugin in much the same way as any other router service is configured, there needs to be a service section in the configuration file and also listeners defined for that service. The service does not however require any backend servers to be associated with it, or any monitors.
|
||||
|
||||
The service entry needs to define the service name, the type as service and the router module to load.
|
||||
The specified user, with the password (plain or encrypted via maxpassword utility) is allowed to connect via MySQL protocol.
|
||||
|
@ -207,7 +207,7 @@ The SQL node is referenced here as [mysqld(API)], which reflects the fact that t
|
||||
|
||||
## Configuring MaxScale for connection load balancing of SQL nodes
|
||||
|
||||
Add these sections in MaxScale.cnf config file:
|
||||
Add these sections in maxscale.cnf config file:
|
||||
|
||||
[Cluster Service]
|
||||
type=service
|
||||
@ -249,7 +249,7 @@ Add these sections in MaxScale.cnf config file:
|
||||
|
||||
Assuming MaxScale is installed in server1, start it
|
||||
|
||||
[root@server1 ~]# cd /usr/local/mariadb-maxscale/bin
|
||||
[root@server1 ~]# cd /usr/bin
|
||||
|
||||
[root@server1 bin]# ./maxscale -c ../
|
||||
|
||||
|
@ -76,7 +76,7 @@ If you wish to use two different usernames for the two different roles of monito
|
||||
|
||||
## Creating Your MaxScale Configuration
|
||||
|
||||
MaxScale configuration is held in an ini file that is located in the file MaxScale.cnf in the directory /etc. This is not created as part of the installation process and must be manually created. A template file does exist in the `/usr/share/maxscale` folder that can be use as a basis for your configuration.
|
||||
MaxScale configuration is held in an ini file that is located in the file maxscale.cnf in the directory /etc. This is not created as part of the installation process and must be manually created. A template file does exist in the `/usr/share/maxscale` folder that can be use as a basis for your configuration.
|
||||
|
||||
A global, maxscale, section is included within every MaxScale configuration file; this is used to set the values of various MaxScale wide parameters, perhaps the most important of these is the number of threads that MaxScale will use to execute the code that forwards requests and handles responses for clients.
|
||||
|
||||
@ -128,7 +128,7 @@ servers=dbserv1, dbserv2, dbserv3
|
||||
The final step in the service sections is to add the username and password that will be used to populate the user data from the database cluster. There are two options for representing the password, either plain text or encrypted passwords may be used. In order to use encrypted passwords a set of keys must be generated that will be used by the encryption and decryption process. To generate the keys use the maxkeys command and pass the name of the secrets file in which the keys are stored.
|
||||
|
||||
```
|
||||
maxkeys /usr/local/mariadb-maxscale/etc/.secrets
|
||||
maxkeys /var/lib/maxscale/.secrets
|
||||
```
|
||||
|
||||
Once the keys have been created the maxpasswd command can be used to generate the encrypted password.
|
||||
|
@ -70,7 +70,7 @@ If you wish to use two different usernames for the two different roles of monito
|
||||
|
||||
## Creating Your MaxScale Configuration
|
||||
|
||||
MaxScale configuration is held in an ini file that is located in the file MaxScale.cnf in the directory /etc, if you have installed in the default location then this file is available in /usr/local/mariadb-maxscale/etc/MaxScale.cnf. This is not created as part of the installation process and must be manually created. A template file does exist within this directory that may be use as a basis for your configuration.
|
||||
MaxScale configuration is held in an ini file that is located in the file maxscale.cnf in the directory /etc, if you have installed in the default location then this file is available in /etc/maxscale.cnf. This is not created as part of the installation process and must be manually created. A template file does exist within the /usr/share/maxscale directory that may be use as a basis for your configuration.
|
||||
|
||||
A global, maxscale, section is included within every MaxScale configuration file; this is used to set the values of various MaxScale wide parameters, perhaps the most important of these is the number of threads that MaxScale will use to execute the code that forwards requests and handles responses for clients.
|
||||
|
||||
@ -96,7 +96,7 @@ servers=dbserv1, dbserv2, dbserv3
|
||||
|
||||
The final step in the service sections is to add the username and password that will be used to populate the user data from the database cluster. There are two options for representing the password, either plain text or encrypted passwords may be used. In order to use encrypted passwords a set of keys must be generated that will be used by the encryption and decryption process. To generate the keys use the maxkeys command and pass the name of the secrets file in which the keys are stored.
|
||||
|
||||
% maxkeys /usr/local/mariadb-maxscale/etc/.secrets
|
||||
% maxkeys /var/lib/maxscale/.secrets
|
||||
|
||||
%
|
||||
|
||||
@ -226,7 +226,7 @@ or
|
||||
|
||||
% service maxscale start
|
||||
|
||||
Check the error log in /usr/local/mariadb-maxscale/log to see if any errors are detected in the configuration file and to confirm MaxScale has been started. Also the maxadmin command may be used to confirm that MaxScale is running and the services, listeners etc have been correctly configured.
|
||||
Check the error log in /var/log/maxscale to see if any errors are detected in the configuration file and to confirm MaxScale has been started. Also the maxadmin command may be used to confirm that MaxScale is running and the services, listeners etc have been correctly configured.
|
||||
|
||||
% maxadmin -pmariadb list services
|
||||
|
||||
|
@ -44,7 +44,7 @@ In order to use these scripts on your Nagios Server, you need to copy them from
|
||||
|
||||
MaxScale must be configured with 'maxscaled' protocol for the administration interface:
|
||||
|
||||
Example of MaxScale.cnf file:
|
||||
Example of maxscale.cnf file:
|
||||
|
||||
[AdminInterface]
|
||||
type=service
|
||||
@ -73,9 +73,9 @@ and add (just after localhost.cfg or commnads.cfg)
|
||||
- modify server IP address in server1.cfg, pointing to MaxScale server
|
||||
- maxadmin executable must be in the nagios server
|
||||
- default MaxScale AdminInterface port is 6603
|
||||
- default maxadmin executable path is /usr/local/mariadb-maxscale/bin/maxadmin
|
||||
- default maxadmin executable path is /usr/bin/maxadmin
|
||||
It can be changed by -m option
|
||||
- maxadmin executable could be copied from an existing maxscale installation (default location is /usr/local/mariadb-maxscale/bin/maxadmin)
|
||||
- maxadmin executable could be copied from an existing maxscale installation (default location is /usr/bin/maxadmin)
|
||||
|
||||
This example shows configuration that needs to be done on Nagios server in order to communicate to MaxScale server that is running on host server1.
|
||||
In this example we are using the check_maxscale_resource as the check command
|
||||
|
@ -193,7 +193,7 @@ This generates RPM or DEB packages based on your system. These packages can then
|
||||
|
||||
## Step 5 - Configure new applications
|
||||
|
||||
The new filter needs to be configured in MaxScale.cnf.
|
||||
The new filter needs to be configured in maxscale.cnf.
|
||||
|
||||
[Test Service]
|
||||
type=service
|
||||
|
@ -28,7 +28,7 @@ Using MaxScale as a replication proxy is much the same as using MaxScale as a pr
|
||||
|
||||
## Service Configuration
|
||||
|
||||
As with any MaxScale configuration a good starting point is with the service definition with the MaxScale.cnf file. The service requires a name which is the section name in the ini file, a type parameter with a value of service and the name of the router plugin that should be loaded. In the case of replication proxies this router name is binlogrouter.
|
||||
As with any MaxScale configuration a good starting point is with the service definition with the maxscale.cnf file. The service requires a name which is the section name in the ini file, a type parameter with a value of service and the name of the router plugin that should be loaded. In the case of replication proxies this router name is binlogrouter.
|
||||
|
||||
|
||||
[Replication]
|
||||
|
@ -32,7 +32,7 @@ Upon successful completion of the installation command you will have MaxScale in
|
||||
|
||||
### Creating Your MaxScale Configuration
|
||||
|
||||
The first step in the creation of your MaxScale.cnf file is to define the global maxscale section. This section configures the number of threads MaxScale uses. A good rule of thumb is to use at most as may threads as you have CPUs. MaxScale uses few threads for internal operations so one or two threads less than the maximum should be enough.
|
||||
The first step in the creation of your maxscale.cnf file is to define the global maxscale section. This section configures the number of threads MaxScale uses. A good rule of thumb is to use at most as may threads as you have CPUs. MaxScale uses few threads for internal operations so one or two threads less than the maximum should be enough.
|
||||
|
||||
```
|
||||
[maxscale]
|
||||
@ -92,7 +92,7 @@ After this we have a fully working configuration and we can move on to starting
|
||||
|
||||
Upon completion of the configuration process MaxScale is ready to be started . This may either be done manually by running the maxscale command or via the service interface. The service scripts are located in the `/etc/init.d/` folder and are accessible through both the `service` and `systemctl` commands.
|
||||
|
||||
After starting MaxScale check the error log in /usr/local/mariadb-maxscale/log to see if any errors are detected in the configuration file. Also the maxadmin command may be used to confirm that MaxScale is running and the services, listeners etc have been correctly configured.
|
||||
After starting MaxScale check the error log in /var/log/maxscale to see if any errors are detected in the configuration file. Also the maxadmin command may be used to confirm that MaxScale is running and the services, listeners etc have been correctly configured.
|
||||
|
||||
MaxScale is now ready to start accepting client connections and routing them. Queries are routed to the right servers based on the database they target and switching between the shards is seamless since MaxScale keeps the session state intact between servers.
|
||||
|
||||
|
@ -5,7 +5,7 @@ The database firewall filter is used to block queries that match a set of rules.
|
||||
|
||||
## Configuration
|
||||
|
||||
The database firewall filter only requires minimal configuration in the MaxScale.cnf file. The actual rules of the database firewall filter are located in a separate text file. The following is an example of a database firewall filter configuration in MaxScale.cnf.
|
||||
The database firewall filter only requires minimal configuration in the maxscale.cnf file. The actual rules of the database firewall filter are located in a separate text file. The following is an example of a database firewall filter configuration in maxscale.cnf.
|
||||
|
||||
```
|
||||
[DatabaseFirewall]
|
||||
|
@ -6,7 +6,7 @@ The Query Log All (QLA) filter is a filter module for MaxScale that is
|
||||
|
||||
## Configuration
|
||||
|
||||
The configuration block for the QLA filter requires the minimal filter options in it's section within the MaxScale.cnf file, stored in /etc/MaxScale.cnf.
|
||||
The configuration block for the QLA filter requires the minimal filter options in it's section within the maxscale.cnf file, stored in /etc/maxscale.cnf.
|
||||
```
|
||||
[MyLogFilter]
|
||||
type=filter
|
||||
|
@ -5,9 +5,9 @@ This filter is designed to extract queries and transform them into a canonical f
|
||||
|
||||
## Configuration
|
||||
|
||||
The configuration block for the **mqfilter** filter requires the minimal filter options in it’s section within the MaxScale.cnf file, stored in /etc/MaxScale.cnf. Although the filter will start, it will use the default values which only work with a freshly installed RabbitMQ server and use its default values. This setup is mostly intended for testing the filter.
|
||||
The configuration block for the **mqfilter** filter requires the minimal filter options in it’s section within the maxscale.cnf file, stored in /etc/maxscale.cnf. Although the filter will start, it will use the default values which only work with a freshly installed RabbitMQ server and use its default values. This setup is mostly intended for testing the filter.
|
||||
|
||||
The following is an example of a mqfilter configuration in the MaxScale.cnf file used for actual logging of queries to a RabbitMQ broker on a different host.
|
||||
The following is an example of a mqfilter configuration in the maxscale.cnf file used for actual logging of queries to a RabbitMQ broker on a different host.
|
||||
|
||||
```
|
||||
[RabbitMQ]
|
||||
|
@ -6,7 +6,7 @@ The regex filter is a filter module for MaxScale that is able to rewrite query c
|
||||
|
||||
# Configuration
|
||||
|
||||
The configuration block for the Regex filter requires the minimal filter options in it’s section within the MaxScale.cnf file, stored in /etc/MaxScale.cnf.
|
||||
The configuration block for the Regex filter requires the minimal filter options in it’s section within the maxscale.cnf file, stored in /etc/maxscale.cnf.
|
||||
|
||||
```
|
||||
[MyRegexFilter]
|
||||
|
@ -6,7 +6,7 @@ The tee filter is a filter module for MaxScale is a "plumbing" fitting in the Ma
|
||||
|
||||
# Configuration
|
||||
|
||||
The configuration block for the TEE filter requires the minimal filter parameters in it’s section within the MaxScale.cnf file, stored in /etc/MaxScale.cnf, that defines the filter to load and the service to send the duplicates to. Currently the tee filter does not support multi-statements.
|
||||
The configuration block for the TEE filter requires the minimal filter parameters in it’s section within the maxscale.cnf file, stored in /etc/maxscale.cnf, that defines the filter to load and the service to send the duplicates to. Currently the tee filter does not support multi-statements.
|
||||
|
||||
```
|
||||
[DataMartFilter]
|
||||
|
@ -6,7 +6,7 @@ The top filter is a filter module for MaxScale that monitors every SQL statement
|
||||
|
||||
# Configuration
|
||||
|
||||
The configuration block for the TOP filter requires the minimal filter options in it’s section within the MaxScale.cnf file, stored in /etc/MaxScale.cnf.
|
||||
The configuration block for the TOP filter requires the minimal filter options in it’s section within the maxscale.cnf file, stored in /etc/maxscale.cnf.
|
||||
|
||||
```
|
||||
[MyLogFilter]
|
||||
|
@ -2,11 +2,12 @@
|
||||
|
||||
|
||||
# Create directories
|
||||
mkdir -p @MAXSCALE_LIBDIR@
|
||||
mkdir -p @MAXSCALE_BINDIR@
|
||||
mkdir -p @MAXSCALE_SHAREDIR@
|
||||
mkdir -p @MAXSCALE_DOCDIR@
|
||||
mkdir -p @MAXSCALE_CONFDIR@
|
||||
mkdir -p @CMAKE_INSTALL_PREFIX@/@MAXSCALE_LIBDIR@
|
||||
mkdir -p @CMAKE_INSTALL_PREFIX@/@MAXSCALE_BINDIR@
|
||||
mkdir -p @CMAKE_INSTALL_PREFIX@/@MAXSCALE_SHAREDIR@
|
||||
mkdir -p @CMAKE_INSTALL_PREFIX@/@MAXSCALE_DOCDIR@
|
||||
|
||||
# MAXSCALE_VARDIR is an absolute path to /var by default
|
||||
mkdir -p @MAXSCALE_VARDIR@/log/maxscale
|
||||
mkdir -p @MAXSCALE_VARDIR@/lib/maxscale
|
||||
mkdir -p @MAXSCALE_VARDIR@/cache/maxscale
|
||||
@ -37,3 +38,17 @@ then
|
||||
cp @CMAKE_INSTALL_PREFIX@/@MAXSCALE_SHAREDIR@/maxscale.service /usr/lib/systemd/system
|
||||
fi
|
||||
/sbin/ldconfig
|
||||
|
||||
cat <<EOF >& 2
|
||||
********** Notice: MaxScale 1.2 Changes **************
|
||||
|
||||
MaxScale 1.2 has changed the default installation locations
|
||||
and various files have changed locations. The configuration
|
||||
file is now read from /etc/maxscale.cnf (note the lower case name)
|
||||
and MaxScale data is in /var/lib/maxscale/.
|
||||
|
||||
The default location of binary log files and the authentication cache changed from
|
||||
/usr/local/mariadb-maxscale/<Service name> to /var/lib/maxscale/<Service name>.
|
||||
|
||||
******************************************************
|
||||
EOF
|
||||
|
@ -81,6 +81,8 @@ MONITOR *mon;
|
||||
mon->handle = NULL;
|
||||
mon->databases = NULL;
|
||||
mon->password = NULL;
|
||||
mon->user = NULL;
|
||||
mon->password = NULL;
|
||||
mon->read_timeout = DEFAULT_READ_TIMEOUT;
|
||||
mon->write_timeout = DEFAULT_WRITE_TIMEOUT;
|
||||
mon->connect_timeout = DEFAULT_CONNECT_TIMEOUT;
|
||||
|
@ -32,6 +32,7 @@
|
||||
* 26/06/14 Mark Riddoch Addition of server parameters
|
||||
* 30/08/14 Massimiliano Pinto Addition of new service status description
|
||||
* 30/10/14 Massimiliano Pinto Addition of SERVER_MASTER_STICKINESS description
|
||||
* 01/06/15 Massimiliano Pinto Addition of server_update_address/port
|
||||
*
|
||||
* @endverbatim
|
||||
*/
|
||||
@ -731,3 +732,41 @@ int *data;
|
||||
|
||||
return set;
|
||||
}
|
||||
|
||||
/*
|
||||
* Update the address value of a specific server
|
||||
*
|
||||
* @param server The server to update
|
||||
* @param address The new address
|
||||
*
|
||||
*/
|
||||
void
|
||||
server_update_address(SERVER *server, char *address)
|
||||
{
|
||||
spinlock_acquire(&server_spin);
|
||||
if (server && address) {
|
||||
if (server->name) {
|
||||
free(server->name);
|
||||
}
|
||||
server->name = strdup(address);
|
||||
}
|
||||
spinlock_release(&server_spin);
|
||||
}
|
||||
|
||||
/*
|
||||
* Update the port value of a specific server
|
||||
*
|
||||
* @param server The server to update
|
||||
* @param port The new port value
|
||||
*
|
||||
*/
|
||||
void
|
||||
server_update_port(SERVER *server, unsigned short port)
|
||||
{
|
||||
spinlock_acquire(&server_spin);
|
||||
if (server && port > 0) {
|
||||
server->port = port;
|
||||
}
|
||||
spinlock_release(&server_spin);
|
||||
}
|
||||
|
||||
|
@ -24,11 +24,11 @@
|
||||
/** Default file locations, configured by CMake */
|
||||
static const char* default_cnf_fname = "maxscale.cnf";
|
||||
static const char* default_configdir = "/etc/";
|
||||
static const char* default_piddir = "/var/run/maxscale/";
|
||||
static const char* default_logdir = "/var/log/maxscale/";
|
||||
static const char* default_datadir = "/var/lib/maxscale/";
|
||||
static const char* default_piddir = "@MAXSCALE_VARDIR@/run/maxscale/";
|
||||
static const char* default_logdir = "@MAXSCALE_VARDIR@/log/maxscale/";
|
||||
static const char* default_datadir = "@MAXSCALE_VARDIR@/lib/maxscale/";
|
||||
static const char* default_libdir = "@CMAKE_INSTALL_PREFIX@/@MAXSCALE_LIBDIR@";
|
||||
static const char* default_cachedir = "/var/cache/maxscale/";
|
||||
static const char* default_cachedir = "@MAXSCALE_VARDIR@/cache/maxscale/";
|
||||
static const char* default_langdir = "@MAXSCALE_VARDIR@/lib/maxscale/";
|
||||
|
||||
static char* configdir = NULL;
|
||||
|
@ -43,6 +43,7 @@
|
||||
* 30/08/14 Massimiliano Pinto Addition of SERVER_STALE_STATUS
|
||||
* 27/10/14 Massimiliano Pinto Addition of SERVER_MASTER_STICKINESS
|
||||
* 19/02/15 Mark Riddoch Addition of serverGetList
|
||||
* 01/06/15 Massimiliano Pinto Addition of server_update_address/port
|
||||
*
|
||||
* @endverbatim
|
||||
*/
|
||||
@ -189,5 +190,7 @@ extern void serverAddParameter(SERVER *, char *, char *);
|
||||
extern char *serverGetParameter(SERVER *, char *);
|
||||
extern void server_update(SERVER *, char *, char *, char *);
|
||||
extern void server_set_unique_name(SERVER *, char *);
|
||||
extern void server_update_address(SERVER *, char *);
|
||||
extern void server_update_port(SERVER *, unsigned short);
|
||||
extern RESULTSET *serverGetList();
|
||||
#endif
|
||||
|
@ -123,7 +123,7 @@ startMonitor(void *arg,void* opt)
|
||||
MONITOR* mon = arg;
|
||||
GALERA_MONITOR *handle = mon->handle;
|
||||
CONFIG_PARAMETER* params = (CONFIG_PARAMETER*)opt;
|
||||
bool have_events = false;
|
||||
bool have_events = false,script_error = false;
|
||||
if (handle != NULL)
|
||||
{
|
||||
handle->shutdown = 0;
|
||||
@ -163,6 +163,7 @@ startMonitor(void *arg,void* opt)
|
||||
}
|
||||
else
|
||||
{
|
||||
script_error = true;
|
||||
if(access(params->value,F_OK) == 0)
|
||||
{
|
||||
skygw_log_write(LE,
|
||||
@ -175,17 +176,24 @@ startMonitor(void *arg,void* opt)
|
||||
"Error: The file cannot be found: %s",
|
||||
params->value);
|
||||
}
|
||||
handle->script = NULL;
|
||||
}
|
||||
}
|
||||
else if(!strcmp(params->name,"events"))
|
||||
{
|
||||
mon_parse_event_string((bool*)&handle->events,sizeof(handle->events),params->value);
|
||||
have_events = true;
|
||||
if(mon_parse_event_string((bool*)&handle->events,sizeof(handle->events),params->value) != 0)
|
||||
script_error = true;
|
||||
else
|
||||
have_events = true;
|
||||
}
|
||||
params = params->next;
|
||||
}
|
||||
|
||||
if(script_error)
|
||||
{
|
||||
skygw_log_write(LE,"Error: Errors were found in the script configuration parameters "
|
||||
"for the monitor '%s'. The script will not be used.",mon->name);
|
||||
free(handle->script);
|
||||
handle->script = NULL;
|
||||
}
|
||||
/** If no specific events are given, enable them all */
|
||||
if(!have_events)
|
||||
{
|
||||
|
@ -113,7 +113,7 @@ startMonitor(void *arg,void* opt)
|
||||
MONITOR* mon = (MONITOR*)arg;
|
||||
MM_MONITOR *handle = mon->handle;
|
||||
CONFIG_PARAMETER* params = (CONFIG_PARAMETER*)opt;
|
||||
bool have_events = false;
|
||||
bool have_events = false,script_error = false;
|
||||
|
||||
if (handle)
|
||||
{
|
||||
@ -148,6 +148,7 @@ startMonitor(void *arg,void* opt)
|
||||
}
|
||||
else
|
||||
{
|
||||
script_error = true;
|
||||
if(access(params->value,F_OK) == 0)
|
||||
{
|
||||
skygw_log_write(LE,
|
||||
@ -165,11 +166,20 @@ startMonitor(void *arg,void* opt)
|
||||
}
|
||||
else if(!strcmp(params->name,"events"))
|
||||
{
|
||||
mon_parse_event_string((bool*)&handle->events,sizeof(handle->events),params->value);
|
||||
have_events = true;
|
||||
if(mon_parse_event_string((bool*)&handle->events,sizeof(handle->events),params->value) != 0)
|
||||
script_error = true;
|
||||
else
|
||||
have_events = true;
|
||||
}
|
||||
params = params->next;
|
||||
}
|
||||
if(script_error)
|
||||
{
|
||||
skygw_log_write(LE,"Error: Errors were found in the script configuration parameters "
|
||||
"for the monitor '%s'. The script will not be used.",mon->name);
|
||||
free(handle->script);
|
||||
handle->script = NULL;
|
||||
}
|
||||
/** If no specific events are given, enable them all */
|
||||
if(!have_events)
|
||||
{
|
||||
|
@ -343,7 +343,10 @@ int mon_parse_event_string(bool* events, size_t count,char* string)
|
||||
{
|
||||
event = mon_name_to_event(tok);
|
||||
if(event == UNDEFINED_MONITOR_EVENT)
|
||||
{
|
||||
skygw_log_write(LE,"Error: Invalid event name %s",tok);
|
||||
return -1;
|
||||
}
|
||||
events[event] = true;
|
||||
tok = strtok_r(NULL,",| ",&saved);
|
||||
}
|
||||
|
@ -140,7 +140,7 @@ startMonitor(void *arg, void* opt)
|
||||
MONITOR* monitor = (MONITOR*)arg;
|
||||
MYSQL_MONITOR *handle = (MYSQL_MONITOR*)monitor->handle;
|
||||
CONFIG_PARAMETER* params = (CONFIG_PARAMETER*)opt;
|
||||
bool have_events = false;
|
||||
bool have_events = false,script_error = false;
|
||||
|
||||
if (handle)
|
||||
{
|
||||
@ -176,6 +176,7 @@ startMonitor(void *arg, void* opt)
|
||||
}
|
||||
else
|
||||
{
|
||||
script_error = true;
|
||||
if(access(params->value,F_OK) == 0)
|
||||
{
|
||||
skygw_log_write(LE,
|
||||
@ -193,11 +194,20 @@ startMonitor(void *arg, void* opt)
|
||||
}
|
||||
else if(!strcmp(params->name,"events"))
|
||||
{
|
||||
mon_parse_event_string(handle->events,sizeof(handle->events),params->value);
|
||||
have_events = true;
|
||||
if(mon_parse_event_string((bool*)&handle->events,sizeof(handle->events),params->value) != 0)
|
||||
script_error = true;
|
||||
else
|
||||
have_events = true;
|
||||
}
|
||||
params = params->next;
|
||||
}
|
||||
if(script_error)
|
||||
{
|
||||
skygw_log_write(LE,"Error: Errors were found in the script configuration parameters "
|
||||
"for the monitor '%s'. The script will not be used.",monitor->name);
|
||||
free(handle->script);
|
||||
handle->script = NULL;
|
||||
}
|
||||
/** If no specific events are given, enable them all */
|
||||
if(!have_events)
|
||||
{
|
||||
|
@ -111,7 +111,7 @@ startMonitor(void *arg,void* opt)
|
||||
MONITOR* mon = (MONITOR*)arg;
|
||||
MYSQL_MONITOR *handle = mon->handle;
|
||||
CONFIG_PARAMETER* params = (CONFIG_PARAMETER*)opt;
|
||||
bool have_events = false;
|
||||
bool have_events = false,script_error = false;
|
||||
|
||||
if (handle != NULL)
|
||||
{
|
||||
@ -140,6 +140,7 @@ startMonitor(void *arg,void* opt)
|
||||
}
|
||||
else
|
||||
{
|
||||
script_error = true;
|
||||
if(access(params->value,F_OK) == 0)
|
||||
{
|
||||
skygw_log_write(LE,
|
||||
@ -157,10 +158,19 @@ startMonitor(void *arg,void* opt)
|
||||
}
|
||||
else if(!strcmp(params->name,"events"))
|
||||
{
|
||||
mon_parse_event_string(&handle->events,sizeof(handle->events),params->value);
|
||||
have_events = true;
|
||||
if(mon_parse_event_string((bool*)&handle->events,sizeof(handle->events),params->value) != 0)
|
||||
script_error = true;
|
||||
else
|
||||
have_events = true;
|
||||
}
|
||||
params = params->next;
|
||||
}
|
||||
if(script_error)
|
||||
{
|
||||
skygw_log_write(LE,"Error: Errors were found in the script configuration parameters "
|
||||
"for the monitor '%s'. The script will not be used.",mon->name);
|
||||
free(handle->script);
|
||||
handle->script = NULL;
|
||||
}
|
||||
/** If no specific events are given, enable them all */
|
||||
if(!have_events)
|
||||
|
Loading…
x
Reference in New Issue
Block a user