1. General Information
The FromDual Ops Center for MariaDB and MySQL (focmm) is an web application for DBA’s and System Administrators to manage their MariaDB, MySQL and Galera Cluster database farms.
The main task of Ops Center is to support you in your daily MariaDB, MySQL and Galera Cluster operation tasks.
The Ops Center works on your local machine as well as on smaller IT centers and your private or public cloud infrastructure. It helps you administering your MariaDB and MySQL infrastructure and providing MariaDB and MySQL Databases as a Service (DBaaS).
Ops Center is a web-based application connecting to your databases through MariaDB/MySQL and ssh protocol.
2. Installing and Upgrading
2.1. Prerequisites
To make Ops Center working you need a classical LAMP stack.
Minimal requirements are:
2.1.1. Supported distributions
We follow the Debian and Ubuntu distribution maintenance policies for Long Term Support (LTS) Releases.
Thus we support the following distributions for Ops Center itself (v1.2.0 and newer):
-
Debian 10 (Buster)
-
Debian 11 (Bullseye)
-
Ubuntu 20.04 (Focal Fossa)
-
Ubuntu 22.04 (Jammy Jellyfish)
We had some problems with Redhat based distributions and O/S interactions. If you really need these distributions, please get in contact with us!
Ops Center supports the following distributions as targets (database server):
-
Debian 10 (Buster)
-
Debian 11 (Bullseye)
-
Ubuntu 20.04 (Focal Fossa)
-
Ubuntu 22.04 (Jammy Jellyfish)
-
Rocky Linux 8 (and also Redhat, Oracle Linux, AlmaLinux, CentOS, Fedora)
-
Rocky Linux 9 (and also Redhat, Oracle Linux, AlmaLinux, CentOS, Fedora)
Note
|
Other distributions like Redhat, Oracle Linux, AlmaLinux, CentOS and Fedora may work as well. Please let us know if you experience any problem with those. |
If you prefer to use our FromDual Repository you can skip the following steps and continue installing Ops Center with our Ubuntu and Debian repository.
For your distribution continue with:
-
Redhat 8 prerequisites (Note: May not work correctly!)
-
Redhat 9 prerequisites (Note: May not work correctly!)
2.1.2. Debian 10 prerequisites
apt update
apt install apache2 libapache2-mod-php mariadb-server php-mysqlnd arping
a2enmod rewrite
a2enmod ssl
a2ensite default-ssl
systemctl restart apache2.service
Checks
systemctl status apache2.service
● apache2.service - The Apache HTTP Server
Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)
Drop-In: /run/systemd/system/apache2.service.d
└─zzz-lxc-service.conf
Active: active (running) since Fri 2023-01-20 14:07:16 UTC; 6s ago
Docs: https://httpd.apache.org/docs/2.4/
Process: 16249 ExecStart=/usr/sbin/apachectl start (code=exited, status=0/SUCCESS)
Main PID: 16253 (apache2)
Tasks: 6 (limit: 4915)
Memory: 10.7M
CGroup: /system.slice/apache2.service
├─16253 /usr/sbin/apache2 -k start
├─16254 /usr/sbin/apache2 -k start
├─16255 /usr/sbin/apache2 -k start
├─16256 /usr/sbin/apache2 -k start
├─16257 /usr/sbin/apache2 -k start
└─16258 /usr/sbin/apache2 -k start
systemctl status mariadb.service
● mariadb.service - MariaDB 10.3.36 database server
Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; vendor preset: enabled)
Drop-In: /run/systemd/system/mariadb.service.d
└─zzz-lxc-service.conf
Active: active (running) since Fri 2023-01-20 14:06:48 UTC; 1min 22s ago
Docs: man:mysqld(8)
https://mariadb.com/kb/en/library/systemd/
Main PID: 10747 (mysqld)
Status: "Taking your SQL requests now..."
Tasks: 31 (limit: 4915)
Memory: 68.9M
CGroup: /system.slice/mariadb.service
└─10747 /usr/sbin/mysqld
Continue with Common Checks.
2.1.3. Debian 11 prerequisites
apt update
apt install apache2 libapache2-mod-php mariadb-server php-mysqlnd arping
a2enmod rewrite
a2enmod ssl
a2ensite default-ssl
systemctl restart apache2.service
Checks
systemctl status apache2.service
● apache2.service - The Apache HTTP Server
Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)
Drop-In: /run/systemd/system/service.d
└─zzz-lxc-service.conf
Active: active (running) since Fri 2023-01-20 14:22:44 UTC; 4s ago
Docs: https://httpd.apache.org/docs/2.4/
Process: 9839 ExecStart=/usr/sbin/apachectl start (code=exited, status=0/SUCCESS)
Main PID: 9843 (apache2)
Tasks: 6 (limit: 4915)
Memory: 11.1M
CGroup: /system.slice/apache2.service
├─9843 /usr/sbin/apache2 -k start
├─9844 /usr/sbin/apache2 -k start
├─9845 /usr/sbin/apache2 -k start
├─9846 /usr/sbin/apache2 -k start
├─9847 /usr/sbin/apache2 -k start
└─9848 /usr/sbin/apache2 -k start
MariaDB is running:
systemctl status mariadb.service
● mariadb.service - MariaDB 10.5.18 database server
Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; vendor preset: enabled)
Drop-In: /run/systemd/system/service.d
└─zzz-lxc-service.conf
Active: active (running) since Fri 2023-01-20 14:21:55 UTC; 1min 19s ago
Docs: man:mariadbd(8)
https://mariadb.com/kb/en/library/systemd/
Main PID: 8103 (mariadbd)
Status: "Taking your SQL requests now..."
Tasks: 9 (limit: 4915)
Memory: 62.9M
CGroup: /system.slice/mariadb.service
└─8103 /usr/sbin/mariadbd
Continue with Common Checks.
2.1.4. Ubuntu 20.04 prerequisites
apt update
apt install apache2 libapache2-mod-php mariadb-server php-mysqlnd arping
a2enmod rewrite
a2enmod ssl
a2ensite default-ssl
systemctl restart apache2.service
Checks
systemctl status apache2.service
● apache2.service - The Apache HTTP Server
Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)
Drop-In: /run/systemd/system/service.d
└─zzz-lxc-service.conf
Active: active (running) since Fri 2023-01-20 14:27:13 UTC; 3s ago
Docs: https://httpd.apache.org/docs/2.4/
Process: 9684 ExecStart=/usr/sbin/apachectl start (code=exited, status=0/SUCCESS)
Main PID: 9688 (apache2)
Tasks: 6 (limit: 4915)
Memory: 10.8M
CGroup: /system.slice/apache2.service
├─9688 /usr/sbin/apache2 -k start
├─9689 /usr/sbin/apache2 -k start
├─9690 /usr/sbin/apache2 -k start
├─9691 /usr/sbin/apache2 -k start
├─9692 /usr/sbin/apache2 -k start
└─9693 /usr/sbin/apache2 -k start
systemctl status mariadb.service
● mariadb.service - MariaDB 10.3.37 database server
Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; vendor preset: enabled)
Drop-In: /run/systemd/system/service.d
└─zzz-lxc-service.conf
Active: active (running) since Fri 2023-01-20 14:26:17 UTC; 1min 24s ago
Docs: man:mysqld(8)
https://mariadb.com/kb/en/library/systemd/
Main PID: 8023 (mysqld)
Status: "Taking your SQL requests now..."
Tasks: 31 (limit: 4915)
Memory: 70.0M
CGroup: /system.slice/mariadb.service
└─8023 /usr/sbin/mysqld
Continue with Common Checks.
2.1.5. Ubuntu 22.04 prerequisites
apt update
apt install apache2 php php-mysqli mariadb-server php-posix mariadb-client
a2enmod rewrite
a2enmod socache_dbm
# ssl conflicts with gnutls which is enabled by default:
a2enmod ssl
a2ensite default-ssl
systemctl restart apache2.service
Checks
systemctl status apache2.service
● apache2.service - The Apache HTTP Server
Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)
Drop-In: /run/systemd/system/service.d
└─zzz-lxc-service.conf
Active: active (running) since Fri 2023-01-20 14:40:58 UTC; 26s ago
Docs: https://httpd.apache.org/docs/2.4/
Process: 9459 ExecStart=/usr/sbin/apachectl start (code=exited, status=0/SUCCESS)
Main PID: 9463 (apache2)
Tasks: 6 (limit: 4915)
Memory: 12.7M
CGroup: /system.slice/apache2.service
├─9463 /usr/sbin/apache2 -k start
├─9464 /usr/sbin/apache2 -k start
├─9465 /usr/sbin/apache2 -k start
├─9466 /usr/sbin/apache2 -k start
├─9467 /usr/sbin/apache2 -k start
└─9468 /usr/sbin/apache2 -k start
systemctl status mariadb.service
● mariadb.service - MariaDB 10.6.11 database server
Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; vendor preset: enabled)
Drop-In: /run/systemd/system/service.d
└─zzz-lxc-service.conf
Active: active (running) since Fri 2023-01-20 14:38:55 UTC; 2min 51s ago
Docs: man:mariadbd(8)
https://mariadb.com/kb/en/library/systemd/
Main PID: 7804 (mariadbd)
Status: "Taking your SQL requests now..."
Tasks: 9 (limit: 4915)
Memory: 63.2M
CGroup: /system.slice/mariadb.service
└─7804 /usr/sbin/mariadbd
Continue with Common Checks.
2.1.6. Redhat 8 prerequisites
dnf install httpd php-mysqli php mariadb-server php php-posix wget mod_ssl openssl
systemctl restart httpd.service
systemctl start mariadb.service
You possible have to adapt the iptables
firewall rules as well.
Checks
systemctl status httpd.service
httpd (pid 1578) is running...
systemctl status mariadb.service
mariadbd (pid 1837) is running...
Continue with Common Checks.
2.1.7. Redhat 9 prerequisites
dnf install httpd php-mysqlnd php mariadb mariadb-server php php-posix wget mod_ssl openssl
systemctl restart httpd.service
systemctl start mariadb.service
You possible have to adapt the iptables
firewall rules as well.
Checks
systemctl status httpd.service
httpd.service - The Apache HTTP Server
Status: "Processing requests..."
systemctl status mariadb.service
mariadb.service - MariaDB database server
Active: active (running) since Sat 2015-12-19 14:21:22 CET; 15s ago
Continue with <Common Checks>.
2.1.8. RHEL 8
Note
|
This release is currently not supported because of technical reasons. |
2.1.9. RHEL 9
Note
|
This release is currently not supported because of technical reasons. |
2.1.10. OpenSuSE 13.1
Due to missing demand on market we did not test yet.
2.1.11. Common Checks
Check if web server is answering (replace IP address with your Ops Center machines IP address): http://127.0.0.1
Check if PHP is working:
cat << _EOF >/var/www/html/hello.php
<?php
echo "hello world!";
?>
_EOF
and then go to: http://127.0.0.1/hello.php
Web-server is answering with SSL: https://127.0.0.1/hello.php
Continue with Installation of Ops Center.
2.2. Installation of Ops Center
2.2.1. From Ubuntu and Debian repository
Add the FromDual APT repository as described FromDual APT Repository.
Then install Ops Center with the following command:
apt install focmm
Continue with Securing Ops Center under Debian and Ubuntu.
2.2.2. DEB package on Debian 10/11 DEB or Ubuntu 20.04/22.04
To install Ops Center manually you can download it from our download site and store it under /tmp
.
apt update
VERSION='1.2.1'
apt install /tmp/focmm_${VERSION}-1_all.deb
Continue with Securing Ops Center under Debian and Ubuntu.
2.2.3. Tarball on Debian 10/11 or Ubuntu 20.04/22.04
To install Ops Center manually you can download it from our download site and store it under /tmp
. Please check Prerequisites first before continuing!
VERSION='1.2.1'
tar -C /var/www/html -xf /tmp/focmm-${VERSION}.tar.gz
cd /var/www/html
chown -R www-data: /var/www/html/focmm-${VERSION}
ln -s focmm-${VERSION} focmm
chown -h www-data: focmm
mkdir /etc/focmm
chown www-data: /etc/focmm
Continue with Securing Ops Center under Debian and Ubuntu.
2.2.4. Securing Ops Center under Debian and Ubuntu
If you are not allowed to modify your web server configuration files please consider to use our .htaccess
template (tpl/htaccess.template
).
SSL
To configure the Ops Center web server to use https/SSL you have to create some certificates first:
mkdir /etc/apache2/ssl
chmod 700 /etc/apache2/ssl
openssl req -x509 -newkey rsa:4096 -keyout /etc/apache2/ssl/focmm.key -out /etc/apache2/ssl/focmm.crt -days 3650 -nodes
a2enmod ssl
a2ensite default-ssl
Then change your Apache configuration file as follows:
# /etc/apache2/sites-available/default-ssl.conf
SSLEngine on
SSLCertificateFile /etc/apache2/ssl/focmm.crt
SSLCertificateKeyFile /etc/apache2/ssl/focmm.key
and then create an apache Ops Center configuration file:
cat >/etc/apache2/conf-available/focmm.conf <<_EOF
#
# /etc/apache2/conf-available/focmm.conf
#
<Directory /var/www/html/focmm>
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule (.*) https://%{SERVER_NAME}/focmm/$1 [R,L]
</Directory>
_EOF
Do not forget to restart Apache afterwards with:
a2enmod rewrite
a2enconf focmm
systemctl restart apache2.service
http basic access authentication
If you want additionally use http "basic access authentication" to add another layer of security. You have to add the following lines to the /etc/apache2/conf-available/focmm.conf
file:
AuthType Basic
AuthName "focmm admin"
AuthUserFile /var/www/html/.htpasswd-focmm
Require valid-user
And then to set a password:
htpasswd -c -b /var/www/html/.htpasswd-focmm admin admin
systemctl restart apache2.service
Remember the user (admin) and the password (admin) for later login.
Continue with Preparing Repository Database.
2.2.5. From Redhat 7 repository
centos.png redhat.png
Add the FromDual RPM repository as described here.
Then install Ops Center with the following command:
dnf install focmm
Continue with Securing Ops Center under Redhat 7.
2.2.6. RPM on Redhat 7
To install Ops Center for MariaDB and MySQL manually you can download it from our download site and store it under /tmp
.
VERSION='1.2.1'
cd /tmp
dnf localinstall focmm-${VERSION}-1.el7.noarch.rpm
Continue with Securing Ops Center under Redhat 7.
2.2.7. Tarball on Redhat 7
To install Ops Center for MariaDB and MySQL manually you can download it from our download site and store it under /tmp
.
dnf install httpd php php-mysqli mariadb-server php-posix php-mysqli mod_ssl openssl
VERSION='1.2.1'
tar -C /var/www/html -xf /tmp/focmm-${VERSION}.tar.gz
cd /var/www/html
chown -R apache: /var/www/html/focmm-${VERSION}
ln -s focmm-${VERSION} focmm
chown -h apache: focmm
mkdir /etc/focmm
chown apache: /etc/focmm
Continue with Securing Ops Center under Redhat 7.
2.2.8. From Redhat 8 and 9 repository
Redhat, Oracle Linux, Rocky Linux, AlmaLinux and CentOS are currently not supported any more because of problems with O/S interaction. Please let us know if you need these distributions…
2.2.9. Securing Ops Center under Redhat 7
Set firewall rules and load some default SElinux policies:
systemctl enable mariadb.service
systemctl start mariadb.service
systemctl enable httpd.service
systemctl start httpd.service
iptables -L
firewall-cmd --permanent --add-port=80/tcp
firewall-cmd --permanent --add-port=443/tcp
firewall-cmd --reload
sestatus
VERSION='1.2.1'
semodule -i /var/www/html/focmm-${VERSION}/tpl/focmm.pp
semodule --list | grep focmm
Important: Please note that Ops Center does currently not work correctly with SElinux enabled. To make Ops Center working correctly set SElinux to permissive:
setenforce 0
sed -i 's/^SELINUX=enforcing/SELINUX=permissive/' /etc/selinux/config
If you are not allowed to modify your web-server configuration files please consider to use our .htaccess
template (tpl/htaccess.template
).
SSL
To configure the Ops Center web server to use https/SSL you have to create some certificates first:
mkdir /etc/ssl/private
chmod 700 /etc/ssl/private
openssl req -x509 -newkey rsa:4096 -keyout /etc/ssl/private/focmm.key -out /etc/ssl/certs/focmm.crt -days 3650 -nodes
Then change your Apache configuration file as follows:
# /etc/httpd/conf.d/ssl.conf
SSLEngine on
SSLCertificateFile /etc/ssl/certs/focmm.crt
SSLCertificateKeyFile /etc/ssl/private/focmm.key
systemctl restart httpd.service
and then create an apache focmmm configuration file:
cat >/etc/httpd/conf.d/focmm.conf <<_EOF
#
# /etc/httpd/conf.d/focmm.conf
#
<Directory /var/www/html/focmm>
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule (.*) https://%{SERVER_NAME}/focmm/$1 [R,L]
</Directory>
_EOF
Do not forget to restart Apache afterwards with:
# /etc/httpd/conf.modules.d/00-base.conf
LoadModule rewrite_module modules/mod_rewrite.so
systemctl restart httpd.service
http Basic Access Authentication
If you want additionally use http "basic access authentication" to add another layer of security. You have to add the following lines to the /etc/httpd/conf.d/focmm.conf
file:
AuthType Basic
AuthName "focmm admin"
AuthUserFile /var/www/html/.htpasswd-focmm
Require valid-user
And then to set a password:
htpasswd -c -b /var/www/html/.htpasswd-focmm admin admin
systemctl restart httpd.service
Remember the user (admin) and the password (admin) for later login.
Continue with Preparing Repository Database.
2.3. Preparing Repository Database
Create the Ops Center Schema in the repository database as follows:
mysql --user=root
CREATE SCHEMA focmm;
CREATE USER 'focmm_owner'@'127.0.0.1' IDENTIFIED BY 'secret';
GRANT ALL ON focmm.* to 'focmm_owner'@'127.0.0.1';
Continue with Creating Ops Center Repository.
2.4. Creating Ops Center Repository
Now you have to connect with your browser to the Ops Center. The URL looks like this: https://127.0.0.1/focmm/ (change the IP address according to your needs). If you are using self signed certificates you possible get some warnings of your web browser:
More information about this topic you can find on the Mozilla website.
If you have configured http Basic Access Authentication above you will be prompted for the user and the password:
When you have logged in and you did it the first time Ops Center tries to do some basic checks and lets you know about the diagnosis:
If you get an error code 3002 or 3004 and/or the following error in your Apache error log, then it is most probably SELinux which causes troubles:
PHP Warning: error_log(/var/www/html/focmm-v1.2.1/log/error.log): failed to open stream: Permission denied in /var/www/html/focmm-v1.2.1/lib/Log.inc on line 109
sestatus
SELinux status: enabled
SELinuxfs mount: /sys/fs/selinux
SELinux root directory: /etc/selinux
Loaded policy name: targeted
Current mode: enforcing
Mode from config file: enforcing
Policy MLS status: enabled
Policy deny_unknown status: allowed
Max kernel policy version: 31
setenforce 0
Before you continue installing Ops Center you can Test the connection with the
button:At the end you have to enter the connect information for your Ops Center Repository Database you have created above. The Ops Center will start installing the Repository:
If everything completed successful you can login. The default user/password is admin/admin:
After the login you reach the Ops Center Dashboard. Currently it will be empty and thus shows a nice architecture overview:
If you reached this step Ops Center is installed and needs to be configured>>.
2.5. Upgrade Ops Center
2.5.1. Upgrade preparation
Before you start with the upgrade you should do a backup of your focmm
database schema first. A simple command like this should do the job:
mysqldump --user=root --password --single-transaction --databases focmm >focmm_dump.sql
Your current used version of Ops Center you can find under: Configuration → Repository → FromDual Ops Center version.
2.5.2. Upgrading from v0.3 to v0.9
Upgrading from Ops Center v0.3 to v0.9 and newer happens automatically. Please do a backup of your Ops Center Instance before you upgrade!
Copy the .htaccess
file from the old to the new version.
2.5.3. Upgrading from v0.9 to v1.2.1
Upgrading from Ops Center v0.9 to v1.2.1 and newer happens automatically. Please do a backup of your Ops Center Instance before you upgrade!
Copy the .htaccess
file from the old to the new version.
Important
|
In some cases the folder focmm/tmp/start_jobs.lock is missing. In this case jobs are not started. Please check the log file under focmm/log/start_jobs.log and create the folder accordingly. Further a file named pid should be located in this folder. Create also this file if it is not there.
|
mkdir focmm/tmp/start_jobs.lock
touch focmm/tmp/start_jobs.lock/pid
chown -R www-data: focmm/tmp/start_jobs.lock
2.5.4. Downgrading Ops Center
In the case you hit a serious bug after upgrade you have to downgrade Ops Center again. To do a downgrade is quite simple: Install your old Ops Center version and restore your backup done above:
mysql --user=root --password < focmm_dump.sql
2.6. Configuration of Ops Center
To configure the Ops Center go to the Configuration menu on the left:
2.6.1. Ssh Public Key
Ops Center relies on ssh to securely access your servers. Thus it is necessary for Ops Center to have its own ssh keys to avoid password prompts:
Typically Ops Center cannot create itself the necessary files and needs your help:
Create the required files as follows and try again:
mkdir /var/www/.ssh
chown www-data: /var/www/.ssh
mkdir /usr/share/httpd/.ssh
chown apache: /usr/share/httpd/.ssh
Note
|
If you installed Ops Center via packages (DEB or RPM) the package installation has already created this directory. |
If everything was successful it should look as follows:
2.6.2. License Information
Ops Center is free of costs for non-commercial use. For commercial use you need a license of FromDual. To confirm that you are using Ops Center correctly you have to add the License Key.
To request a new License Key click on one of the links:
When you have added the license key you get an overview over the systems you are eligible to use with Ops Center:
2.6.3. Crontab
Ops Center needs the systems crontab to run some periodical jobs. For this you have to add the jobs to the crontab:
If you have created the crontab it should look like this:
If you want to remove the crontab jobs again click on the
button.2.6.4. Repository
The menu item Repository provides mainly information about Ops Center versions and where the configuration file is stored. This is primarily needed for bug reports.
2.6.5. Bugs
If you hit a bug with FromDual tools or if you have a feature request you can add them to our Bug database.
2.6.6. Feature requests
This is also true for feature requests. You can report them to our Bug database or send us an <a href="mailto:feedback@fromdual.com?Subject=Feature request">email</a> or report the feature request here:
2.6.7. User
Currently there is only one user called admin available to operate Ops Center.
After logging in to Ops Center you should change this default password (admin) to something more secret. This admin user is a very powerful user which has full rights over all your databases. So take care of it!
3. Dashboard
The dashboard of a new (= empty) Ops Center looks as follows:
First of all you have to Add a Machine (= host, server).
4. Machine
Note
|
In older Ops Center releases a Machine was called Server. |
In Ops Center terminology a Machine is a physical or virtual machine (also called server or host) or a container (LXD, Docker, etc.). The Machine is the thing a database Instance or a Load Balancer resides.
Ops Center communicates via ssh
with the Machine.
4.1. Machine overview
In the Machine overview you get an overview of all existing Machines and you can add new Machines:
4.2. Add or edit machine
To add a new Machine to the Ops Center click on the
button in the Machine overview.Then click to the
button to create the Machine inside the Ops Center Repository.The fields have the following meaning:
Field name | Meaning of the Field |
---|---|
Machine name |
Machine name (hostname, DNS name of the machine). |
Default IP |
IP address (or hostname) of the management interface Ops Center should connect to. |
ssh Port |
Port which is used by Ops Center to connect to the machine (this is typically ssh port 22). |
O/S user |
O/S user Ops Center should use (typically root). |
MyEnv control |
If the Machine us under MyEnv control or not. This functionality is deprecated and will probably removed soon. |
Containerized |
If the Machine is containerized or not. This functionality is deprecated and will probably removed soon. |
Resource Groups |
Is the team the Load Balancer belongs to and to which it is cleared to. |
Monitoring URL |
URL to the monitoring solution (for example FromDual Performance Monitor) this machine is monitored with. |
When you have saved the Machine information Ops Center confirms as follows:
The error message appears because Ops Center cannot access the Machine yet. This is because the Ops Center ssh Public Key is missing on the Machine. Add the Ops Center ssh Public Key as advised in the error message.
You should NOT continue until ALL checks in the Checks tab are passed successfully.
4.3. Settings tab
In the Settings tab you can either edit the Machine settings again, delete the Machine from the Ops Center repository or run the Refresh job to gather machine information.
4.4. Checks tab
To get an overview of the state of your machine you can either click the
button for all checks or you can run each check individually by clicking on the button:When you run the checks Ops Center shows you for each check what it was doing, what the result was and what you should do to fix the problem:
You might be surprised that some checks have been performed already. This is because Ops Center runs periodically all the jobs in the background with Crontab. So it might have happened Ops Center was faster than you checking the Machine…
Tip
|
Ops Center uses ssh to access the database machines. To allow this, your web machine user (apache or www-data ) must have a valid shell. To allow Ops Center to connect to the database machines without a password prompt the public key of the Ops Center user has to be copied manually the first time to the database machine.
|
4.5. Performance tab
In the Performance tab you see the graphs of the most critical performance metrics of your Machine. These are: CPU, Memory (RAM), I/O, Network and Paging:
If you have a sever performance problem you should see it here.
4.6. Monitoring tab
Clicking one the Machine Monitoring tab will redirect you to the link you have indicated while adding your Machine.
4.7. Costs tab
In the Machine Costs tab you see, aggregated per hour, how many resources your Machine has used and the costs per resource. This allows you to get fain grained cost information per Machine and per hour.
5. Instance
5.1. Instance overview
In the Instance overview you will see which MariaDB/MySQL instances (aka databases) are registered in you Ops Center Repository:
Here you can select the Instance you want to work with, change its settings or check the state of it.
To add a new Instance to the Ops Center Repository click on the
button. If you want to create a completely new Instance click on the button.5.2. Add or edit an Instance
Before you can start working with Ops Center you have to add an existing database Instance to the Ops Center. Creating a database Instance is a different topic discusses further down.
Adding an Instance in this context means: Add an existing Instance to the Ops Center Repository only not install or create it.
In the form Add new/Edit Instance you have to enter:
-
A unique Instance name (this name must be unique across your whole company which you want to manage with Ops Center). Ideally this name is the same you use in MyEnv and in the FromDual Backup Manager.
-
The machine this instance is located on.
-
The directory where the MariaDB/MySQL binaries are installed (
basedir
). Typically this is/usr
. If the instance is under MyEnv control use the same value as inmyenv.conf
. If you are not sure try this command:dirname $(dirname $(which mysqld))
. -
The directory where the MariaDB/MySQL data are located (
datadir
). Typically this is/var/lib/mysql
. If you are not sure try this command:SHOW GLOBAL VARIABLES LIKE 'datadir';
. -
The location of your database instance configuration file (
my.cnf
ormy.ini
typically located under/etc
or/etc/mysql
). -
The service name or IP address your instance listens to. This is often the same name or IP address as the server. If you have a dedicated name/IP for your instance use this one.
-
The port your MariaDB/MySQL instance listens to (typically 3306).
-
The instance user Ops Center should use. You should use a user which clearly identifies what it is used for. So we recommend:
focmm_admin
. But you can also use root. This user should be created as follows:
CREATE USER 'focmm_admin'@'<ip_of_focmm>' IDENTIFIED BY '<some_secret_password>';
GRANT ALL ON *.* TO 'focmm_admin'@'<ip_of_focmm>'
-
The instance users password as specified above (<ip_of_focmm>).
-
If this instance is readonly or not. This is mostly important for replication slaves.
5.3. Create a new Instance
Creating an Instance in this context means: Installing the MariaDB/MySQL binaries on a Machine and then add it to the Ops Center Repository. Compared to adding an Instance: Add an existing Instance to the Ops Center Repository only.
The Create Instance process consists of 3 steps: Step 1: Selecting the Machine
Step 2: Specify Instance specific information
Step 3: Specify Instance configuration variables
After clicking the [.buttonstyl]e#Create Instance# button it will take awhile until the database binaries are installed…
And finally you get the confirmation that the database was created successful and added to the Ops Center Repository.
5.4. Instance Settings tab
In the Instance settings overview you can either edit the instance again, delete it or choose some other instance operations:
5.5. Instance Checks tab
To get an overview of the state of your instance you can either click the Check Instance button for all checks or you can run each check individually by clicking on the Check now button:
When you run the checks Ops Center shows you for each check what it was doing, what the result was and what you should do to fix the problem:
You might be surprised that some checks have been performed already. This is because Ops Center runs periodically in the background all the jobs. So it might have happened Ops Center was faster than you checking the instance…
If all checks passed successful the instance checks look as follows:
Do not try to continue here as long as not all checks are OK. The further steps will not work.
5.6. Instance Operations tab
In the operations tab you:
-
Stop and start your instance.
-
Set instance to readonly or read-write.
-
Backup and restore your instance.
-
And see the 20 last lines of your MariaDB/MySQL error log.
Note
|
The Ops Center repository instance itself cannot be stopped but only restarted. This prevents that you take Ops Center out of service by mistake. |
Starting a instance looks as follows:
Stopping a instance looks as follows:
And setting a instance to readonly as follows:
Important
|
If you want to make the readonly state persistent after the next instance restart you have to manually add it to the instance configuration file (my.cnf). |
5.6.1. Database backup
Backup type
First you have to choose the backup type. Those are exactly the same backup types as in the FromDual backup manager. For further information see there:
Backup mode
Next you have to decide if the backup should be done logically (using mariadb-dump
, mysqldump
) or physically (using mariadb-backup
, mysqlbackup
or xtrabackup
):
The backup mode cannot be selected for all backup types.
Backup behavior
Some backups can be done inconsistent. Ops Center (and FromDual Backup Manager) prohibits you from doing invalid backups. If you have some MyISAM tables in your database this backup will be blocking for the whole duration of the backup. If you want to avoid blocking backups use InnoDB storage engine only:
Backup policy
Define the backup policy you want to store your backup in:
Backup directory
Specify where your backup should be written to. This is ideally another device than your database disk. Sometimes NFS mounts are used to write backups to:
FromDual brman location
Ops Center uses in the background FromDual Backup/Recovery Manager to perform the backups. Here you have to specify where on the database server brman is installed. This has to be done before you start with the backup:
FromDual brman location
After clicking on the Start Backup button Ops Center shows you the command it was sending to the database server. The backup job was not executed directly but sent into the Ops Center job handler. There you can see the actual state of the backup job:
5.7. Processlist tab
In the process list you can see who is actually connected to the instance and which query is running:
You can further filter for specific connections or sort most of the columns. If a query is using too much of resources you can also kill the query or event terminate the connection. The refresh interval can be set from 2 to 60 seconds.
5.8. Schema tab
In the Instance Schema tab you get an overview over the schemas (aka databases) in your instance. Here you can also create a new Schema by clicking on the
button.
Note
|
We intentinonally do NOT allow to send SQL statements from Ops Center to your database Instance. Please use other, specialized tools, for this. See also Graphical User Interfaces (GUI) for MariaDB and MySQL. |
Column | Meaning of the Column |
---|---|
Schema |
Name of the Schema. |
Size |
Size of the Schema in bytes. Space used in the filesystem (measured with |
% |
Size of the Schema in percentage of the total size of the Instance (Size / Grand total). |
Size + Common |
Size of the Schema plus the share in Common in bytes. |
% |
Size of the Schema plus the share in Common in percentage of the Grant total (Size + Share of Common / Grand total). |
By clicking on a Schema name you reach the Tables overview:
Those data are gathered from the INFORMATION_SCHEMA.TABLES
view:
Column | Meaning of the Column |
---|---|
Table name |
Name of the table. |
Engine |
Storage Engine used for this table. |
Version |
Version of the table. |
# Rows |
Estimated number of rows in the table. |
Avg row length |
Calculated average row length of a row in bytes. |
Data length |
Size of the data in this table. |
Index length |
Size of the indexes in this table. |
Total length |
Size of the table in total (data + index). |
5.8.1. Create Schema
On the Create Schema page you have to possiblity to create a new schema with a default Character Set:
5.9. Accounts tab
Under the Accounts tab you can create new or edit existing MariaDB/MySQL Accounts and grant or revoke privileges to or from these Accounts.
An Account in our terminology is the combination of a MariaDB/MySQL username and password. For example root@localhost
is an Account. A user is a username without the host. For example the Accounts root@localhost
and root@127.0.0.1
both belong to the same user root.
With the Create Account button on the bottom you can create new Accounts. With the View Link or the Edit Link on the right you can view Account details or Edit an Account.
5.9.1. Account Details
In the Account Details you can see the Global Privileges,
the Schema Privileges and the Table and Column Privileges of an Account:
5.9.2. Edit Account
Here you can grant and revoke privileges to and from an Account. The password of an Account is not visible here because the password hashing algorithm of MariaDB/MySQL does not allow to revert the password from the hash.
5.9.3. Delete Account
An Account can be deleted in Account Details on the bottom.
5.10. Configuration tab
5.10.1. Instance Configuration
Under the Menu item Instances → Configuration you can manage your actual MariaDB/MySQL configuration files for each database instance.
When you click on the menu Configuration it will take a while because Ops Center will directly fetch the recent database configuration file from the machine.
Configuration Files
Under Configuration Files you get an overview of the currently available database configuration files, there size and when they were last modified:
You can click on one of the configuration files to view its content or to modify and store the content of the configuration file back to the database machine.
Main Configuration File
The main database configuration file is the one you specified under Instances → [Settings]. If you click on the link to the file you can also view its content or modify and store it on the machine.
Recent Variables
Under Recent Variables you get all database configuration variables how they are set at the moment (SHOW GLOBAL VARIABLES;
).
Edit a Configuration File
If you click on one of the configuration files you can edit and store the configuration files. In the first line you get some information about the configuration file you are actually viewing: The version number of the configuration file in the Ops Center repository, when the file was last modified, its size, and other (older) versions available in the Ops Center repository.
The version number lets you keep track of the database configuration changes.
In the text box showing your actual database configuration you can change your current configuration file version or view older version of your configuration file. In the line Comment: you should see the comment of the last change which lead to this version.
With the button
you tell Ops Center to retrieve the current version of the database configuration file from the machine. If you did some changes on the database configuration file you can save and deploy it to database machine with the button. If you have chosen an older version of your database configuration file the button makes this configuration file the actual one and deploys it again to the machine. This allows you to revert old changes of the configuration file.When you pressed the
button you will be prompted for a comment of the change before it will be stored in the Ops Center repository and deployed to the database machine.After the changes are deployed you have to restart your database instance to activate your configuration changes.
5.11. Performance tab
In the performance tab you find various performance views similar to the ones of MySQL Workbench:
-
Memory Usage
-
Hot Spots for I/O
-
High Cost SQL Statements
-
Database Schema Statistics
-
Wait Event Times (Expert)
-
InnoDB Statistics
-
User Resource Use
Note
|
If you hover over some items some extended or more detailed information is shown. |
5.12. Monitoring tab
In this tab you will be redirected to the monitoring link you have provided under Settings: Monitoring URL.
6. Cluster
6.1. About Cluster
A high availability Cluster is a bunch of machines or databases which provide together a service typically for an application. They are grouped together to primarily provide a high availability service (HA). In some rare cases you also get some performance befits of a HA Cluster.
Ops Center actually can operate:
-
Master/Slave Replication Clusters,
-
Master/Master Replication Clusters and
-
Galera Clusters.
6.2. Cluster overview
Important
|
Before you start you must added all the Machines of each Master/Slave, Master/Master or Galera Cluster node and created or added all MariaDB/MySQL Instances on those Machines. |
In the Cluster overview you can add a Cluster by clicking on the
button. Adding a Cluster in this context means: Adding the Cluster to the Ops Center Repository:
Note
|
When adding a new Cluster you have to decide if it will be a Galera Cluster, a Master/Slave Replication Cluster or a Master/Master Replication Cluster. You cannot change your choice afterwards any more. If you want to correct your choice you have to delete and add the Cluster again… |
6.3. Replication Cluster (Master/Slave)
6.3.1. General things about Master/Master Replication Cluster
Converting a M/S Cluster into a M/M Cluster or vice versa is not allowed. Delete the Cluster from Ops Center and add a new one.
6.3.2. Adding a new Replication Cluster (Master/Slave)
Choose a unique and descriptive Cluster Name and select the Cluster Type
:Field name | Meaning of the Field |
---|---|
Cluster name |
Name of the Master/Slave Replication Cluster. |
Cluster Type |
Choose Master/Slave for a Master/Slave Replication Cluster. |
Resource Group |
To which Resource Group this Cluster should belong to. |
Failover only if sync |
Should failover be executed only if Master and Slave are in sync. This is related to Seconds behind Master. If Slave is behind. Failover will not be executed. This prevents failover just because of Slave lagging issues. |
Start VIP only if sync |
Should VIP be started if new Master is in sync with old Master or should be waited until it caught up. This is a trade-off between fast failover and risking data inconsistency or even loss of data in case of failover. |
Master |
Which node should be considered as the actual Master. |
Failover Slave |
Which Slave node should become the new Master during failover. |
Slave activity |
Should a Slave be read-only or read-write when it is a Slave. |
Slaves |
Nodes which should become Slaves. |
of Master |
And which should be their Master. |
Reattach Slave to new Master |
In case of failover should Slave be reattached to the new Master or not. |
Clicking on the
button creates a new Cluster inside Ops Center.After creating the Cluster some configuration work has to be done: The server_id
must be different on all nodes of a Replication Cluster. The variable log_slaves_update
must be set to ON
on all nodes which have the binary log enabled. And all Slave nodes must be set to read_only
if Slave activity is checked. This can be achieved by changing the database configuration under Instance → Configuration.
Additionally you have to set the Instance to Read only under Instance → Settings → Edit.
6.3.3. Settings of a Replication Cluster (Master/Slave)
In the Settings tab you get an overview over your Cluster configuration:
Here you can also Edit your Cluster or Delete it from Ops Center again. If you want to remove on single Node from the Replication Cluster click on the Delete Instance icon on the right.
6.3.4. Checks of a Replication Cluster (Master/Slave)
In the Checks tab of the Replication Cluster you get all the important Checks of the Master and all its Slaves.
The following Checks are performed:
-
Unique Server ID between all the Cluster nodes.
-
If all Instance Checks on Master have succeeded.
-
If all Instance Checks on Slaves have succeeded.
-
If Slaves are set to
read_only
. -
If
log_slave_updates
is enabled on Slaves. -
If IO and SQL threads on Slave are up and running.
6.3.5. Operations of a Replication Cluster (Master/Slave)
In the Operations tab you get a short overview over your Replication Cluster. Here you can Switchover from your current Master to the elected new Master and force a Failover. The difference between Switchover and a Failover Switchover is that the Switchover is nicely where as the Failover is with "brute force". So check the Failover flag only if the Master Machine has a sever problem.
Note
|
It is a good idea to test the Switchover on a regular base to make sure it really works when you need it! |
In the Slave section run different actions with your Slave like:
-
Stop Replication
-
Change Replication to this Slave to new Master
-
Skip erroneous events
-
Reset Replication and
-
Start Replication
Stop Replication
This is to Stop the Replication on the Slave. If you try to Stop the Replication if it is already stopped you will get some error messages.
A Replication consists of 2 Threads, the IO and the SQL thread. In some rare cases it makes sense to stop them individually with Stop IO Thread and Stop SQL Thread.
Change Master
This is to reconfigure your Replication on the Slave. Changing Replication has to be done after your copied over your Backup from Master to the Slave.
Field name | Meaning of the Field |
---|---|
Master Host |
IP address or hostname of the Master. |
Master Port |
Port of the Master. This is typically 3306 |
Master User |
User which should be used for the Replication. This Replication User must be created on the Master first and needs the |
Master Password |
Password of the Replication User. |
Master Log File |
Binary Log File of the Master from the Point in Time the Backup was taken. If there there is/was not traffic on the Master since you took the Backup you can just click on the Take this icon. |
Master Log Pos |
Position of the Binary Log File of the Master from the Point in Time the Backup was taken. If there there is/was not traffic on the Master since you took the Backup you can just click on the Take this icon. |
Skip 1 event
If Replication halts because of erroneous events (SQL thread only!) you can skip this event (one by one=.
Note
|
Be aware that this means if you need this operation that your data are NOT consistent any more! |
Reset Replication
Make a Slave forget that he was a Slave.
Note
|
This destroys your Replication. So be careful doing this. |
Start Replication
This is to Start the Replication on the Slave. If your Replication is already running the item is disabled.
A Replication consists of 2 Threads, the IO and the SQL thread. In some rare cases it makes sense to start them individually with Start IO Thread and Start SQL Thread.
Build Slave
Build Slave automatically new from Master. This is not fully implemented yet.
6.4. Replication Cluster (Master/Master)
6.4.1. General things about Master/Master Replication Cluster
Converting a Master/Slave Cluster into a Master/Master Cluster or vice versa is not allowed. Delete the Cluster from Ops Center and add a new one.
For Master/Master Replication Cluster only an active/passive set-up (one writer node) is supported.
A Master/Master Replication Cluster is only supported as a 2-node ring. 3-node ring is NOT supported by Ops Center.
6.4.2. Adding a new Replication Cluster (Master/Master)
Choose a unique and descriptive Cluster Name and select the Cluster Type
:Field name | Meaning of the Field |
---|---|
Cluster name |
Name of the Master/Master Replication Cluster. |
Cluster Type |
Choose Master/Master for a Master/Master Replication Cluster. |
Resource Group |
To which Resource Group this Cluster should belong to. |
Failover only if sync |
Should failover be executed only if Master and Slave are in sync. This is related to Seconds behind Master. If Slave is behind. Failover will not be executed. This prevents failover just because of Slave lagging issues. |
Start VIP only if sync |
Should VIP be started if new Master is in sync with old Master or should be waited until it caught up. This is a trade-off between fast failover and risking data inconsistency or even loss of data in case of failover. |
Master |
Which nodes should be considered as Masters. |
Active Master |
Which node should be considered as the actual Master. |
Slave activity |
Should a Slave be read-only or read-write when it is a Slave. |
Slaves |
Nodes which should become Slaves. |
of Master |
And which should be their Master. |
Reattach Slave to new Master |
In case of failover should Slave be reattached to the new Master or not. |
Clicking on the
button creates a new Cluster inside Ops Center.After creating the Cluster some configuration work has to be done: The server_id
must be different on all nodes of a Replication Cluster. The variable log_slaves_update
must be set to ON
on all nodes which have the binary log enabled. And all Slave nodes must be set to read_only
if Slave activity is checked. This can be achieved by changing the database configuration under Instance → Configuration.
Additionally you have to set the Instance to Read only under Instance → Settings → Edit.
6.4.3. Settings of a Replication Cluster (Master/Master)
In the Settings tab you get an overview over your Cluster configuration:
Here you can also Edit your Cluster or Delete it from Ops Center again. If you want to remove on single Node from the Replication Cluster click on the Delete Instance icon on the right.
6.4.4. Checks of a Replication Cluster (Master/Master)
In the Checks tab of the Replication Cluster you get all the important Checks of the Masters and all their Slaves.
The following Checks are performed:
-
Unique Server ID between all the Cluster nodes.
-
If all Instance Checks on Masters have succeeded.
-
If all Instance Checks on Slaves have succeeded.
-
If Slaves are set to
read_only
. -
If
log_slave_updates
is enabled on Slaves. -
If IO and SQL threads on Slave are up and running.
6.4.5. Operations of a Replication Cluster (Master/Master)
In the Operations tab you get a short overview over your Replication Cluster. Here you can Switchover from your current Master to the elected new Master and force a Failover. The difference between Switchover and a Failover Switchover is that the Switchover is nicely where as the Failover is with "brute force". So check the Failover flag only if the Master Machine has a sever problem.
Note
|
It is a good idea to test the Switchover on a regular base to make sure it really works when you need it! |
In the Slave section run different actions with your Slave like:
-
Stop Replication
-
Change Replication to this Slave to new Master
-
Skip erroneous events
-
Reset Replication and
-
Start Replication
Stop Replication
This is to Stop the Replication on the Slave. If you try to Stop the Replication if it is already stopped you will get some error messages.
A Replication consists of 2 Threads, the IO and the SQL thread. In some rare cases it makes sense to stop them individually with Stop IO Thread and Stop SQL Thread.
Change Master
This is to reconfigure your Replication on the Slave. Changing Replication has to be done after your copied over your Backup from Master to the Slave.
Field name | Meaning of the Field |
---|---|
Master Host |
IP address or hostname of the Master. |
Master Port |
Port of the Master. This is typically 3306 |
Master User |
User which should be used for the Replication. This Replication User must be created on the Master first and needs the |
Master Password |
Password of the Replication User. |
Master Log File |
Binary Log File of the Master from the Point in Time the Backup was taken. If there there is/was not traffic on the Master since you took the Backup you can just click on the Take this icon. |
Master Log Pos |
Position of the Binary Log File of the Master from the Point in Time the Backup was taken. If there there is/was not traffic on the Master since you took the Backup you can just click on the Take this icon. |
Skip 1 event
If Replication halts because of erroneous events (SQL thread only!) you can skip this event (one by one=.
Note
|
Be aware that this means if you need this operation that your data are NOT consistent any more! |
Reset Replication
Make a Slave forget that he was a Slave.
Note
|
This destroys your Replication. So be careful doing this. |
Start Replication
This is to Start the Replication on the Slave. If your Replication is already running the item is disabled.
A Replication consists of 2 Threads, the IO and the SQL thread. In some rare cases it makes sense to start them individually with Start IO Thread and Start SQL Thread.
Build Slave
Build Slave automatically new from Master. This is not fully implemented yet.
6.5. Galera Cluster
6.5.1. Add new Cluster (Galera)
Choose a unique and descriptive Cluster Name, select the Cluster Type Galera Cluster and then select the nodes which should belong to this Cluster:
Then click on the
button.
Note
|
One Instance (Node 1 to 5) can only belong to one Cluster at the same time! |
Note
|
Currently up 5 Galera nodes are supported by Ops Center in a Galera Cluster. |
6.5.2. Settings tab (Galera)
In the Settings tab you get an overview of all the nodes belonging to a Cluster, you can remove nodes from the Cluster by click on the Remove Instance from Cluster icon on the right. You can edit a Cluster with the
and delete the whole Cluster from the Ops Center Repository with the button:6.5.3. Checks tab (Galera)
In the Checks tab you can see the actuall state of your Cluster and all the Cluster nodes:
6.5.4. Operations tab (Galera)
In the Operations tab you get some actuall state information of your Cluster and all the Cluster nodes:
Note
|
Starting and stopping an Instance in the Cluster is done in Instance Operations. |
Further you can deploy a new Galera Cluster configuration with the
button if there is no configuration yet.
Note
|
The grastate.dat is missing).
|
button is only shown if there is no Galera configuration yet (
If you deploy the Galera configuration via Ops Center make sure the variables wsrep_on
(MariaDB Galera Cluster only) and wsrep_provider
are set correctly. This is still an issue with v1.2.1 and older.
For MariaDB Galera Cluster on Debian based distributions:
wsrep_on = on
wsrep_provider = /usr/lib/libgalera_smm.so
For Galera Cluster for MySQL on Debian based distributions:
# wsrep_on = on # NOT needed
wsrep_provider = /usr/lib/libgalera_smm.so
For MariaDB Galera Cluster on Redhat based distributions:
wsrep_on = on
wsrep_provider = /usr/lib64/libgalera_smm.so
For Galera Cluster for MySQL on Redhat based distributions:
# wsrep_on = on # NOT needed
wsrep_provider = /usr/lib64/libgalera_smm.so
7. Load Balancer
7.1. About Load Balancer
A Load Balancer is a service which balances load between different other services. In our case a Load Balancer distributes application requests between different database nodes (for example Galera nodes or replication Slaves). A Load Balancer typically can also do failover.
Ops Center supports (v1.2.0 and newer) the following Load Balancer:
-
Ops Center Load Balancer HAproxy
-
Galera Load Balancer
-
MariaDB MaxScale Load Balancer
-
Ops Center Load Balancer ProxySQL
7.2. HAproxy Load Balancer
7.2.1. Installing HAproxy Load Balancer
Before you start you should install the HAproxy Load Balancer package on the machines where the HAproxy Load Balancer should reside:
apt update && apt install haproxy netcat # On Debian based distributions
dnf install haproxy netcat # On Redhat based distributions
vi /etc/haproxy/haproxy.cfg
The HAproxy Load Balancer configuration file is located under /etc/haproxy/haproxy.cfg
. A useful configuration file for testing purposes to start with looks as follows:
# New syntax for HA-Proxy 1.7 etc.
global
daemon
stats socket /run/haproxy/admin.sock level admin
listen mysql
bind *:3306
mode tcp
maxconn 112
timeout connect 10s
timeout client 60s
timeout server 60s
balance roundrobin
default_backend galera_nodes
backend galera_nodes
timeout connect 10s
timeout server 60s
server galera1 192.168.7.81:3306 maxconn 8 check
server galera2 192.168.7.82:3306 maxconn 8 check
server galera3 192.168.7.83:3306 maxconn 8 check
listen admin
bind 192.168.7.107:8080
mode http
timeout connect 10s
timeout client 1m
timeout server 1m
stats uri /
stats enable
stats show-legends
stats refresh 5s
stats realm Haproxy\ Statistics
stats auth monitor:AdMiN123
stats admin if TRUE
7.2.2. Machine and ssh key
Ideally you add a Machine in Ops Center where the HAproxy Load Balancer resides. If you omit this step you should copy over at least the ssh Public Key of the Web-Server user to the Machine the HAproxy Load Balancer resides. For a Debian based distribution this is done as follows:
sudo ssh-copy-id -i /var/www/.ssh/id_?sa.pub -p 22 root@10.139.158.117
7.2.3. Adding a new HAproxy Load Balancer
To add a new HAproxy Load Balancer to the Ops Center click on the Load Balancer item in the menu on the left and then click the
button:Choose a unique and descriptive Name for the Load Balancer and choose the Type
:Field name | Meaning of the Field |
---|---|
Name |
Unique and descriptive name for the Load Balancer. |
Type |
Type of Load Balancer. |
Resource Group |
Is the team the Load Balancer belongs to and to which it is cleared to. |
Admin User |
O/S user Ops Center will use to connect to the machine. |
Admin IP |
IP address (or hostname) Ops Center will use to connect to. |
ssh Port |
Port which is used by Ops Center to connect to the machine (this is typically ssh port 22). |
Socket or IP:Port |
Socket or IP/port combination the Load Balancers admin interface can be reached. |
Configuration File |
Configuration file of the HAproxy Load Balancer. The HAproxy Load Balancer configuration file is typically located under |
Then click to the
button to create the Load Balancer in the Ops Center repository.If you follow the
button you will end up in the configuration overview (Settings tab) of the Load Balancer. If you follow the link you will reach the Operations tab.7.2.4. Settings tab
In the Settings tab you can see the actual configuration of your HAproxy Load Balancer. With the
button you can change some of those settings. With the button you can remove the Load Balancer from Ops Center again.
Important
|
The Load Balancer is only delete in the Ops Center repository. Nothing is changes or deleted on the machine! You have to remove the Load Balancer manually from there afterwards… |
7.2.5. Edit Load Balancer
Here you can change all the settings you have entered during adding your Load Balancer:
If you have changed your Load Balancer configuration do not forget to restart the Load Balancer.
Note
|
Actually it is NOT possible to add to and delete Nodes from the HAproxy Load Balancer through Ops Center. This must be done directly in the HAproxy configuration file. |
7.2.6. Checks tab
In the Checks tab you can see if the HAproxy Load Balancer is up and running and get some simple monitoring statistics.
7.2.7. Operations tab
This functionality is currently not supported yet.
7.3. Galera Load Balancer
7.3.1. Installing Galera Load Balancer
Before you start you should install the Galera Load Balancer package on the machines where the Galera Load Balancer should reside. If you are using the FromDual Repositories, this is quite easy:
apt update && apt install glb # On Debian based distributions
dnf install glb # On Redhat based distributions
systemctl enable glb
vi /etc/default/glb # On Debian based distributions
vi /etc/sysconfig/glbd # On Redhat based distributions
The Galera Load Balancer configuration file is located under /etc/default/glb
(on Debian based distributions) and under /etc/sysconfig/glbd
(on Redhat based distributions). A useful configuration file to start with looks as follows:
LISTEN_ADDR="3306"
CONTROL_ADDR="10.139.158.117:8011" # 127.0.0.1:8011 is currently NOT supported by Ops Center
CONTROL_FIFO="/run/glbd.fifo"
THREADS="4"
MAX_CONN="453"
DEFAULT_TARGETS="192.168.1.1:3306:1 192.168.1.2:3306:1 192.168.1.3:3306:1"
OTHER_OPTIONS="--round"
7.3.2. Machine and ssh key
Ideally you add a Machine in Ops Center where the Galera Load Balancer resides. If you omit this step you should copy over at least the ssh Public Key of the Web-Server user to the Machine the Galera Load Balancer resides. For a Debian based distribution this is done as follows:
sudo ssh-copy-id -i /var/www/.ssh/id_?sa.pub -p 22 root@10.139.158.117
7.3.3. Adding a new Galera Load Balancer
To add a new Load Balancer to the Ops Center click on the Load Balancer item in the menu on the left and then click the
button:Choose a unique and descriptive Name for the Load Balancer and choose the Type
:Field name | Meaning of the Field |
---|---|
Name |
Unique and descriptive name for the Load Balancer. |
Type |
Type of Load Balancer. |
Resource Group |
Is the team the Load Balancer belongs to and to which it is cleared to. |
Admin User |
O/S user Ops Center will use to connect to the machine. |
Admin IP |
IP address (or hostname) Ops Center will use to connect to. |
ssh Port |
Port which is used by Ops Center to connect to the machine (this is typically ssh port 22). |
Socket or IP:Port |
Socket or IP/port combination the Load Balancers admin interface can be reached. |
Configuration File |
Configuration file of the Galera Load Balancer. The Galera Load Balancer configuration file is typically located under |
Balancing Policy |
Policy how your Galera Load Balancer should balance connections (Least connected, Round Robin, Random, Source Tracking (aka Source Sticky), Single Destination). For more details look here: Destination Selection Policies. |
Then click to the
button to create the Load Balancer in the Ops Center repository.If you follow the
button you will end up in the configuration overview (Settings tab) of the Load Balancer. If you follow the link you will reach the Operations tab.7.3.4. Operations tab
Next you should start your Galera Load Balancer if it is not started yet.
Note
|
Actually the synchronization of the Galera Load Balancer configuration information in the Ops Center (Settings tab) and the Galera Load Balancer configuration (/etc/default/glb or /etc/sysconfig/glbd ) is not so smooth yet as it could be. Possibly you have to change the Galera Load Balancer configuration and stop it manually the first time until everything is working well…
|
Here you can stop (
), start ( ) and restart ( ) the Galera Load Balancer and of your Galera Load Balancer you have changed in the Ops Center.When you persist the configuration the old version is backed-up in the same directory.
By clicking on the + or - icon you can increase and decrease the weight of a back end node. By clicking on the Drain node or Undrain node icon on the very right you can drain or undrain a backend node. A weight of 0.000 has the same meaning an effect as draining a node. Undraining a node leads to a node weight of 1.000. So the old value is not remembered at the moment.
7.3.5. Checks tab
In the checks tab you can see if the Galera Load Balancer is up and running and get some simple monitoring statistics.
7.3.6. Settings tab
In the Settings tab you can see the actual configuration of your Galera Load Balancer. With the
button you can change some of those settings. With the button you can remove the Load Balancer from Ops Center again.
Important
|
The Load Balancer is only delete in the Ops Center repository. Nothing is changes or deleted on the machine! You have to remove the Load Balancer manually from there afterwards… |
7.3.7. Edit Load Balancer
Here you can change all the settings you have entered during adding your Load Balancer. There is one additional option: Balancing Policy.
If you have changed your Load Balancer configuration do not forget to persist the configuration and Restart the Load Balancer in the Operations tab…
Note
|
Actually it is NOT possible to add and delete nodes from the Galera Load Balancer. This must be done directly in the configuration file. |
7.4. MariaDB MaxScale Load Balancer
7.4.1. Installing MariaDB MaxScale Load Balancer
FromDual Ops Center only supports MariaDB MaxScale version 6 (v2.6) and newer.
Before you start you should install the MariaDB MaxScale Load Balancer package on the machines where the MaxScale Load Balancer should reside.
MariaDB MaxScale can be downloaded from here: Download MariaDB.
Note
|
MariaDB MaxScale is licensed under Business Source License (BSL). |
When you have downloaded the package you can install it as follows:
apt install ./maxscale-*.deb # for Debian and Ubuntu
dnf localinstall ./maxscale-*.rpm # For Redhat based distributions
7.4.2. Machine and ssh key
Ideally you add a add a Machine in Ops Center where the MaxScale Load Balancer resides. If you omit this step you should copy over at least the ssh Public Key of the Web-Server user to the Machine the MariaDB MaxScale Load Balancer resides. For a Debian based distribution this is done as follows:
sudo ssh-copy-id -i /var/www/.ssh/id_?sa.pub -p 22 root@10.139.158.117
7.4.3. Adding a new MaxScale Load Balancer
To add a new Load Balancer to the Ops Center click on the Load Balancer item in the menu on the left and then click the
button:Choose a unique and descriptive Name for the Load Balancer and choose the Type [.buttonstyle]MaxScale#:
Field name | Meaning of the Field |
---|---|
Name |
Unique and descriptive name for the Load Balancer. |
Type |
Type of Load Balancer. |
Resource Group |
Is the team the Load Balancer belongs to and to which it is cleared to. |
Admin User |
O/S user Ops Center will use to connect to the machine. |
Admin IP |
IP address (or hostname) Ops Center will use to connect to. |
ssh Port |
Port which is used by Ops Center to connect to the machine (this is typically ssh port 22). |
Socket or IP:Port |
Socket or IP/port combination the Load Balancers admin interface can be reached. |
Configuration File |
Configuration file of the Load Balancer. The Load Balancer configuration file is typically located under |
If MaxScale is added successfully to the Ops Center repository start the Load Balancer under the Operations tab…
7.4.4. Settings tab
In the Settings tab you can see the actual configuration of your MariaDB MaxScale Load Balancer. With the
button you can change some of those settings. With the button you can remove the Load Balancer from Ops Center again.
Important
|
The Load Balancer is only delete in the Ops Center repository. Nothing is changes or deleted on the machine! You have to remove the Load Balancer manually from there afterwards… |
7.4.5. Checks tab
In the Checks tab you can see if the MariaDB MaxScale Load Balancer is up and running and get some simple monitoring statistics.
7.4.6. Operations tab
In the Operations tab you can do the following actions:
, , and Drain node or Undrain node on the icons to the right.
Note
|
Configuration of MariaDB MaxScale with Ops Center is currently NOT possible. You have to do it manually in the MariaDB MaxScale configuration file on the Machine. |
At the bottom of the page you can see the last 20 lines of the MaxScale error log (from journalctl
)
7.5. ProxySQL Load Balancer
FromDual Ops Center supports basic functionality of ProxySQL.
Before you start you should install the ProxySQL Load Balancer package on the machines where the ProxySQL Load Balancer should reside.
ProxySQL can be downloaded from here: ProxySQL Installation.
When you have downloaded the package you can install it as follows:
apt install ./proxysql_*.deb # For Debian based distributions
dnf localinstall proxysql-*.rpm # For Redhat based distributions
Make sure your ProxySQL SQL Load Balancer is started with:
systemctl start proxysql
Create a remote admin user as follows:
mysql --user=admin --password=admin --host=127.0.0.1 --port=6032
ProxySQL> SELECT * FROM runtime_global_variables WHERE variable_name LIKE 'admin-admin_credentials%';
ProxySQL> UPDATE global_variables SET variable_value='admin:admin;radmin:radmin' WHERE variable_name='admin-admin_credentials';
ProxySQL> LOAD ADMIN VARIABLES TO RUNTIME;
ProxySQL> SELECT * FROM runtime_global_variables WHERE variable_name LIKE 'admin-admin_credentials%';
7.5.1. Machine and ssh key
Ideally you add a add a Machine in Ops Center where the ProxySQL Load Balancer resides. If you omit this step you should copy over at least the ssh Public Key of the Web-Server user to the Machine the ProxySQL Load Balancer resides. For a Debian based distribution this is done as follows:
sudo ssh-copy-id -i /var/www/.ssh/id_?sa.pub -p 22 root@10.139.158.117
7.5.2. Adding a new ProxySQL Load Balancer
To add a new Load Balancer to the Ops Center click on the Load Balancer item in the menu on the left and then click the
button:Choose a unique and descriptive Name for the Load Balancer and choose the Type
:Field name | Meaning of the Field |
---|---|
Name |
Unique and descriptive name for the Load Balancer. |
Type |
Type of Load Balancer. |
Resource Group |
Is the team the Load Balancer belongs to and to which it is cleared to. |
Admin User |
O/S user Ops Center will use to connect to the machine. |
Admin IP |
IP address (or hostname) Ops Center will use to connect to. |
ssh Port |
Port which is used by Ops Center to connect to the machine (this is typically ssh port 22). |
Socket or IP:Port |
Socket or IP/port combination the Load Balancers admin interface can be reached. |
Configuration File |
Configuration file of the Load Balancer. The Load Balancer configuration file is typically located under |
If ProxySQL is added successfully to the Ops Center repository start the Load Balancer under the Operations tab…
7.5.3. Settings tab
In the Settings tab you can see the actual configuration of your ProxySQL Load Balancer. With the
button you can change some of those settings. With the button you can remove the Load Balancer from Ops Center again.
Important
|
The Load Balancer is only delete in the Ops Center repository. Nothing is changes or deleted on the machine! You have to remove the Load Balancer manually from there afterwards… |
7.5.4. Checks tab
Note
|
This works since Ops Center v1.2.2 and newer. |
In the Checks tab you can see if the ProxySQL Load Balancer is up and running and get some simple monitoring statistics.
7.5.5. Operations tab
Operations functionality is not supported yet.
8. Virtual IPs (VIPs)
8.1. About Virtual IPs (VIPs)
VIP is an abbreviation for Virtual IP. On other systems it is also called floating IP. A virtual IP address is an IP address that does not correspond to an actual physical network interface (port). Uses for VIPs include fault-tolerance, and mobility [Wikipedia].
Ops Center supports (v1.2.0 and newer) 2 different types of VIPs:
-
Ops Center controlled VIPs (deprecated).
-
keepalived
controlled VIPs. [keepalived]
8.2. Installing keepalived
To control VIPs with keepalived is the preferred method. To use VIPs with keepalived you first have to install keepalived:
apt intall keepalived # On Debian based distributions
dnf install keepalived # On Redhat based distributions
If you do not install keepalived it will just not work!
8.3. Adding a new VIP
Click on the VIPs item in the menu on the left and then click the
button.Choose to which cluster the VIP should belong to (if any), the IP address of the VIP, to which network interface the VIP should be bound to and the 2 machines which are involved in the VIP failover:
Then click to the
button to add the VIP to the Ops Center repositoryField name | Meaning of the Field |
---|---|
Cluster |
Cluster the VIP belongs to (if any). NOTE: Cluster has just a descriptive meaning right now. This could change in the future. |
Resource Group |
Is the team the Load Balancer belongs to and to which it is cleared to. |
IP address |
IP address of the VIP. |
Service name |
If there is a service name (DNS) specified for the VIP, set it here. DNS names make your application independent from the IP address. |
Interface |
Physical network interface the VIP should be bound to. IMPORTANT: Currently this must be the same physical interface on all machines). Different interface is not supported right now! |
Primary |
The primary (preferred) machine where the VIP should reside. |
Failover |
The failover (secondary) machine the VIP should switch to. |
Keepalived |
If |
8.4. Settings tab
In the Settings tab you edit or delete a VIP:
8.5. Checks tab
To get an overview of the state of your VIPs you can either click the
button for all checks or you can run each check individually by clicking on the button on the right:8.6. Operations tab
In the Operations tab you can (
on the right below Operations):-
Stop a VIP via keepalived
-
Start a VIP via keepalived
-
Failover a VIP via keepalived
A failover of the VIP can be done when it is stopped OR when it is started. This gives you the possibility to start the VIP on an other node after stopping it.
Or deploy the keepalived configuration with the
button .The
button is only shown if the VIP stopped. It will deploy the Ops Center settings of the VIP into the keepalived configuration on the machine.Further down you see the error log (journalctl
) of keepalived. This helps to understand the problem in case something does not work as expected.
9. Tools
9.1. Database User Tool
The Ops Center Database User tool is made to manage many different MariaDB/MySQL accounts in several different instances. Before you see some useful information here you have to click on the
button.FromDual Ops Center will list now the users of all instances you have under Ops Center control. Further Ops Center provides you with some security relevant information about those users. And it will show you if those users have no password.
Now you can either clone a user or drop some of them:
When you clone a user you can clone it to different instances and change username and host:
9.2. Compare Tool
The Ops Center compare tool is made to compare different MariaDB/MySQL schema either in structure or in content:
As a next step you have to select the databases (instances) which you want to compare:
In a third step you have to select the schema you would like to compare:
9.2.1. Structure compare
In the structure compare you can see the tables which are missing and the differences of the tables:
9.2.2. Content compare
In the content compare you can see if the tables have different or if they have equal content:
IMPORTANT: If you have traffic on those tables it might be that the content is reported differently even it is equal. For performance reasons big tables are not compared at the moment yet.
9.3. Config Diff Tool
In the configuration diff tool you can compare the configuration variables of 2 different MariaDB/MySQL instances. First you have to select the instances:
Then you will see the differences of the MariaDB/MySQL configuration variables between the 2 instances and the configuration variables default values:
9.4. Jobs Tool
The Ops Center has its own job scheduling system:
Here you can start, stop, check, kill, restart and delete jobs:
You can define your own jobs which should be running on a specific server:
Ops Center backup jobs are automatically added to the Ops Center Jobs Scheduler. And after a while they are automatically started.
All the jobs are automatically started and check according to the Ops Center crontab-tool[Crontab Tool] tasks.
9.4.1. Job status
The following Ops Center job status do exist:
Status | Meaning of status |
---|---|
Added |
Job is added to the job system and will be stated automatically soon… |
Hold |
Job is added to the job system but needs to be started manually! |
Restart |
|
Preparing |
Internal used. |
Started |
Job is started. |
Running |
Job is running. |
Killing |
Job was killed and is terminating. |
Finished |
Job has finished (ok or err) |
Failed |
Job has died |
Killed |
Job was killed |
Erroneous |
|
Deleted |
Job was deleted from the job view and is not visible any more. The job files are deleted as well. |
9.4.2. Job files
Every Ops Center job creates some files on the server the job is executed in the directory specified in Configuration.inc
($gJobTmpDir
). The file consists of a name and a job number:
-
job.00000001
- The job to execute itself. -
pid.00000001
- ThePID
of the job as soon as the job is started. -
ret.00000001
- The return code of the job as soon as the job has ended. -
stderr.00000001
- Thestderr
output of the job. -
stdout.00000001
- Thestdout
output of the job.
9.5. Crontab Tool
One of the tools of FromDual Ops Center for MariaDB and MySQL is the centralized Ops Center Tool for all of your database machines. Instead of maintaining various different crontabs on different machines you can manage them now in one place within the Ops Center.
Under the Tools menu on the left you find Crontab. Here you get a first overview of crontab jobs available:
-
The first column shows if the crontab job is active or not.
-
The second column indicates the O/S user the crontab job should run as.
-
Then we have the typical crontab scheduling entries: Minute, Hour, Day, Month and Day of Week (DoW).
-
Now follows the actual command which should be run with a comment describing the command.
-
The column Last indicates when the job was run last successfully.
-
And RC shows the last Return Code of the job (0 - success, otherwise error number).
-
With the trash icon you can delete a crontab job and with the run icon you can start and run a crontab job right now.
With the
button on the bottom you can add new crontab entries. To make it persistent you have to save the entry with the button.You can change as well existing crontab entries directly in-line followed by the
button.CAUTION: Do not mix up the Ops Center Crontab under the Configuration/Crontab menu with the Centralized Crontab for your database machines under Tools/Crontab menu.
9.6. Reports Tool
In the Reports Tool you get an overview over the Machines and Instances which are under Ops Center control. You can find here which Resource Group (team, department) has machines and how much RAM and CPU they are using.
Further you can see how many instances are in use and the size of the instances owned by Resource Groups:
9.7. File Transfer Tool
With the FromDual Ops Center file transfer tool you can easily upload files from your personal computer to the focmm machine, download files from the focmm machine to your personal computer or transfer files from the focmm machine to any of your database machines or between them. This feature is made for importing, exporting or transferring data from, to or between your different database instances. For example to copy a production schema to a testing database instance.
For backup and restore of a database instance or schema see Instance Operations tab.
You can reach the file transfer tool under the menu Tools on the left and then File transfer.
9.7.1. Upload
For uploading a file just click to the
button, select a file from your local file system and then click to .After a while, when the upload is completed, the file will appear in the Download section of your focmm machine.
Alternatively you can also upload files from your personal computer to the focmm machine via your favourite file transfer tools like scp
or sftp
.
9.7.2. Download
If you want to download a file from your focmm machine to your personal computer just click on one of the files shown in the download section. A window will pop-up and let you choose the location to store the file to.
Alternatively you can also download files from your focmm machine to your personal computer via your favourite file transfer tools like scp
or sftp
.
9.7.3. Transfer
To transfer files between your focmm machine and your database machines or between your different database machines you have to choose the machines first, then navigate through your file system tree on each server and then press the transfer link (arrow left to right or arrow right to left) to transfer the file.
10. Ops Center Questions and Answers (FAQ)
IMPORTANT: For technical details check our ops-center-user-guide[FromDual Ops Center User Guide].
-
What is the FromDual Ops Center License?
FromDual Ops Center is licensed under the FromDual Enterprise Tools License.
-
What are the FromDual Ops Center Costs?
FromDual Ops Center is free of costs for trial and non-commercial use. For commercial use the yearly fee depends on the amount of database instances you want to operate under FromDual Ops Center. Please ask FromDual for a quote.
-
What is the FromDual Ops Center default User and Password?
The default user and password are:
admin / admin
-
Is the FromDual Ops Center free of costs?
FromDual Ops Center is free of costs for trial and non-commercial use.
-
What is the use case of the FromDual Ops Center?
The FromDual Ops Center for MariaDB and MySQL (
focmm
) is a browser-based Graphical User Interface (GUI) to operate and manage your MariaDB and MySQL database server farms more easily.