You can find this document as PDF here.

1. About

fpmmm is the FromDual Performance Monitor and the counterpart to the MySQL Enterprise Monitor from Oracle.

With fpmmm you can monitor your MariaDB/MySQL databases and also your database hosts (machines). fpmmm works on Linux and should also work on Mac OSX (and possibly some other *BSD derivatives). Windows support is planned for the future.

fpmmm needs a Zabbix Server somewhere in your network for storing its performance data. On the Zabbix Web Interface you can see the graphs, and alerts are sent to you from it. Find out more about Zabbix installation here. If you do not plan to set-up your own Zabbix Server you should consider our Monitoring as a Service (MaaS) offering.

1.1. Where to download fpmmm

The FromDual Performance Monitor (fpmmm) can be downloaded from our website.

2. FromDual Performance Monitor (fpmmm) Installation Guide

2.1. What is the FromDual Performance Monitor (fpmmm)?

The FromDual Performance Monitor (fpmmm) for MariaDB, Galera Cluster, MySQL and Percona Server is a monitoring solution based on the enterprise class open source monitor Zabbix.

It provides all the necessary modules to monitor your MySQL/MariaDB performance metrics in detail an let you display them graphically.

Thus it is a good alternative to the MySQL Enterprise Monitor which is only available for paying Oracle/MySQL customers.

2.2. Prerequisites

On the machine where your monitoring service resides (displaying the graphs, etc.) you need to install Zabbix server and the Zabbix web interface (v2.0 or newer). For installing Zabbix go through this installation first.

On the machine where your MariaDB or MySQL databases resides you have to install a Zabbix agent (v2.0 or newer) and the FromDual Performance Monitor fpmmm.

Important: The FromDual Performance Monitor fpmmm was only tested on Linux. It may work on other Unixoides but most probably will NOT work on Windows yet. Please let us know if you plan to run fpmmm or fpmmm for MaaS on Windows…​

2.3. Download and Install

FromDual offers you 2 different methods how you can install fpmmm:

  • Use our FromDual repository.

  • Use our binary tar balls. The most recent Performance Monitor you can download from here…​

We follow the Debian, Ubuntu and Rocky Linux distribution maintenance policies for Long Term Support (LTS) releases.

Note
Other distributions like Red Hat, Oracle Linux, AlmaLinux, CentOS, Fedora and other Debian based distributions may work as well. Please let us know if you experience any problem with those.

2.4. Adding FromDual DEB or RPM repositories

Adding the FromDual DEB or RPM repositories is described here.

2.5. Installation of fpmmm on Debian / Ubuntu from FromDual Repository

Debian
Ubuntu
Note
Special requirements on Ubuntu 24.04: Ubuntu 24.04 does NOT provide Zabbix agent any more. Thus you have to add the Zabbix repository first:
$ apt install fpmmm

For testing if the installation was successful look here.

2.6. Installation of fpmmm on Rocky Linux / Red Hat Linux / Oracle Linux / AlmaLinux / Fedora / CentOS from FromDual Repository

Rocky Linux
Red Hat
Oracle Linux
AlmaLinux
CentOS
Fedora
Note
Rocky Linux does NOT provide Zabbix agent. Thus you have to add the Zabbix repository first:
$ dnf install zabbix-sender
$ dnf install fpmmm

For testing if the installation was successful look here.

2.7. Installation of fpmmm from a binary tar ball

If you are installing fpmmm from a tar ball some preparation work has to be done before. If you were using our DEB or RPM packages directly without our repository the same instructions apply.

Then proceed as follows:

$ VERSION='2.2.0'
$ cd /tmp
$ wget --no-check-certificate https://support.fromdual.com/admin/download/fpmmm-${VERSION}.tar.gz
$ cd /opt
$ tar xf /tmp/fpmmm-${VERSION}.tar.gz
$ ln -s fpmmm-${VERSION} fpmmm
$ cp fpmmm/tpl/fpmmm.conf.template /etc/fpmmm.conf
$ chown zabbix: /etc/fpmmm.conf
$ chmod 600 /etc/fpmmm.conf

Then the following packages have to be installed. They may be named differently depending on your distribution:

  • DEB: apt install php-cli php-mysql php-curl zabbix-sender zabbix-agent zabbix-agent2 smartmontools sysstat sudo

  • RPM: dnf install php php-cli php-mysqli php-process php-json smartmontools sysstat zabbix-agent zabbix-sender which

Additionally you have to set some PHP variables (choose the right file depending on your distribution):

$ PHP_INI='/etc/php.d/20-fpmmm.ini'
$ PHP_INI='/etc/php/8.4/mods-available/fpmmm.ini'
$ PHP_INI='/etc/php/cli/conf.d/fpmmm.ini'
$ PHP_INI='/etc/php/conf.d/fpmmm.ini'
$ PHP_INI='/etc/php.d/fpmmm.ini'

$ cat << _EOF >${PHP_INI}
variables_order = "EGPCS"
date.timezone = 'Europe/Zurich'
_EOF

$ phpenmod fpmmm

and add smartctl to the sudoers file if you want to make use of smartctl:

$ cat << _EOF >/etc/sudoers.d/fpmmm
root ALL=(root) NOPASSWD: /usr/sbin/smartctl
_EOF

2.8. Testing fpmmm installation

$ php --version   # Should be at least 7.2
$ /opt/fpmmm/bin/fpmmm --version
2.2.0
$ /opt/fpmmm/bin/fpmmm --config=/etc/fpmmm.conf
1
$ cat /var/log/fpmmm/fpmmm.log

2.9. Configuration of fpmmm

Prepare the fpmmm.conf according to your needs. A typical configuration file for the FromDual Performance Monitor looks as follows:

# Put everything related to fpmmm agent/daemon itself into this section
[self]

# How long fpmmm should sleep when run as daemon
Interval      = 60
MyPidFile     = /run/lock/fpmmm/fpmmm.pid


# Put everything in here which belongs to all instances/machines
[default]

# Type of section:
# instance for a normal MariaDB/MySQL database
# machine for a server
# Type          = instance

# LogLevels are:
# 1 is logging only errors
# 2 is logging errors and warnings (this is the default)
# 3 logs some informations messages as well
# 4 logs everything (for debugging purposes only)

LogLevel      = 2
LogFile       = /var/log/fpmmm/fpmmm.log
# Directory where the cache files should be written to:
CacheFileBase = /var/cache/fpmmm/fpmmm
# Currently supported formats are zabbix, nagios, icinga, centreon and snmp, default is zabbix
# OutputFormat  = zabbix
AgentLockFile = /run/lock/fpmmm/fpmmm.lock

# If you agent is not located in the same time zone as your server
# For US something like -6.0 to our MaaS Server
# For Asia something like +7.0 to our MaaS Server
# TimeShift     = +0.0
TimeZone      = Europe/Zurich

# Zabbix Server IP address
ZabbixServer  = <192.168.1.42>

# Can be one of: minimal, nomal, extensive
DataGathering = normal


# Here you could enter the hostname of your machine (uname -n)
[<my_machine>]          # This MUST match Hostname in Zabbix!

Type          = machine
Modules       = fpmmm server smart


# All MySQL databases here
# Try to avoid section names with spaces!

# Here you could add a random name of your MySQL/MariaDB instance
[<my_mysqld>]          # This MUST match Hostname in Zabbix!

Type          = instance

Username      = <fpmmm_agent>
Password      = <secret>
MysqlHost     = <127.0.0.1>
MysqlPort     = 3306

MysqlPort     = 3306
Modules       = process mysql myisam innodb master slave security data user
DbPidFile     = /var/run/mysqld/mysqld.pid

There is typically a default section ([default]) where you can specify all the defaults for all the hosts to monitor (machines and database instances).

For every database instance you want to monitor you have to add an extra section. This allows you to monitor several MariaDB/MySQL databases running on the same machine.

Important: The section name MUST match the Hostname which you have entered in the Zabbix Server!!!

2.10. Modules

The FromDual Performance Monitor Agent is split into several different Modules. For every Module there is a:

  • Zabbix Template (tpl/templates_*/Template_FromDual.MySQL.*.xml)

  • FromDual Performance Monitor Agent PHP module (lib/FromDual_*.inc)

Each module is for its own specific purpose. Available modules are:

Table 1. Monitoring modules
Module Description

aria

Module to monitor the MariaDB Aria Storage Engine.

data

Module to monitor database data growth (user data).

drbd

Module to monitor DRBD device status information.

errorlog

Module to monitor the database Error Log.

fpmmm*

Module to monitor the fpmmm Agent itself. This module is mandatory because it triggers the send process.

galera

Module to monitor Galera Cluster.

innodb

Module to monitor the MariaDB InnoDB and MySQL InnoDB Storage Engine.

master

Module to monitor a Replication Master in a MariaDB/MySQL Master/Slave Replication (synonyms primary, replication source).

memcached

Module to monitor MemcacheD services.

myisam

Module to monitor the MyISAM Storage Engine.

mysql

Module to monitor general MariaDB/MySQL behaviour (everything NOT storage engine specific).

nagios_plugins

Module to serve data for Nagios based monitoring solutions.

postgresql

Module to monitor a PostgreSQL database.

process

Module to monitor all kinds of Linux processes (mariadbd, mysqld, etc.) (Information about the database process itself).

security

Module to monitor security related informations and rules.

server

Module to monitor a Linux machine (additional metrics related to database use).

slave

Module to monitor Replication Slaves in a MariaDB/MySQL Master/Slave set-up (synonym replica, secondary).

smart

Module to query some S.M.A.R.T metrics.

user

Module to monitor user specific information.

* Required modules

2.11. Create a Monitoring User in your MariaDB/MySQL instance

For security reason it is a good idea to NOT use the database user root or mysql. The monitoting user needs some privileges to gather information from the database:

SQL> CREATE USER 'fpmmm_agent'@'127.0.0.1' IDENTIFIED BY 'secret';

SQL> GRANT PROCESS ON *.* TO 'fpmmm_agent'@'127.0.0.1';
SQL> GRANT REPLICATION CLIENT ON *.* TO 'fpmmm_agent'@'127.0.0.1';
SQL> GRANT SELECT ON `mysql`.`user` TO 'fpmmm_agent'@'127.0.0.1';
SQL> GRANT REPLICATION SLAVE ON *.* TO 'fpmmm_agent'@'127.0.0.1';

SQL> GRANT SELECT ON performance_schema.events_statements_summary_by_user_by_event_name TO fpmmm_agent@'127.0.0.1';
SQL> GRANT SELECT ON performance_schema.events_statements_current TO fpmmm_agent@'127.0.0.1';
SQL> GRANT SELECT ON performance_schema.setup_instruments TO fpmmm_agent@'127.0.0.1';
SQL> -- Does not work on MariaDB 10.3 (Rocky Linux 8 / Oracle Linux 8)
SQL> GRANT SELECT ON performance_schema.metadata_locks TO fpmmm_agent@'127.0.0.1';
SQL> GRANT SELECT ON performance_schema.threads TO fpmmm_agent@'127.0.0.1';

SQL> -- For the security module
SQL> GRANT SELECT ON mysql.user TO 'fpmmm_agent'@'127.0.0.1';

SQL> -- MariaDB only
SQL> INSTALL PLUGIN metadata_lock_info SONAME 'metadata_lock_info.so';

SQL> -- MariaDB 10.5 and newer
SQL> GRANT SELECT ON mysql.global_priv TO fpmmm_agent@'127.0.0.1';
SQL> GRANT REPLICATION MASTER ADMIN ON *.* TO 'fpmmm_agent'@'127.0.0.1';
SQL> GRANT SLAVE MONITOR ON *.* TO 'fpmmm_agent'@'127.0.0.1';

2.12. FromDual Performance Monitor as a Service (MaaS) Installation Guide

2.12.1. Monitoring as a Service (MaaS)

If you do not want to take the burden to install the Monitor yourself we offer you our Monitoring as a Service.

2.12.2. FromDual Performance Monitor as a Service (MaaS)

Important: If you want to install and use the FromDual Performance Monitor as a Service (MaaS) please check the FromDual Performance Monitor as a Service (MaaS) Installation Guide.

The FromDual Performance Monitor (fpmmm) can be run in 2 different modes:

  • Locally in your company on your company machines (aka on-premises).

  • As Monitoring as a Service (MaaS). This 2nd topic we will cover in this chapter.

2.12.3. How to install fpmmm for MaaS

To install a fpmmm Agent for MaaS you have to install it normally as described above on your MariaDB/MySQL database machine. It will collect data about your machine and your database and send them to the remote service which is provided by FromDual for its customers.

MPM Architecture

The data are uploaded via a https file uploads. So only a one way communication is possible! We cannot access your systems! Only you (and our engineers) can see your performance data on the Monitoring Server.

2.12.4. How to configure fpmmm for MaaS

Create a configuration file for example like this:

$ cp /opt/fpmmm/tpl/fpmmm.conf.template /etc/fpmmm.conf

To make the fpmmm Agent work in a MaaS set-up you need a hash key~ from us so we can identify you non-ambig­uous and we can make sure nobody is doing nasty things with your service. You can request such a hash key, if you have not received one yet from here. To allocate you the correct resources we further need to know from you:

  • The company name you want to use (for example FromDual)

  • The server name the agent is running on (for example deb13db1)

  • A name which identifies your database instance (for example db1)

All those 3 identifiers together must uniquely identify your database instance you want to monitor. When we got these information we can create the service for you and provide you a configuration file.

The configuration file will look as follows:

[self]

Interval      = 60
MyPidFile     = /run/lock/fpmmm/fpmmm.pid


[default]

Debug         = 2
LogFile       = /var/log/fpmmm/fpmmm.log
CacheFileBase = /var/cache/fpmmm/fpmmm
AgentLockFile = /run/lock/fpmmm/fpmmm.lock

MaaS          = on
Hash          = <hash>
Method        = https
Url           = https://support.fromdual.com/maas/receiver.php


[<company>.<server_name>]

Type          = machine
Modules       = fpmmm server smart


[<company>.<server_name>.<db_name>]

Type          = instance
Modules       = process mysql myisam innodb master slave security data user

Username      = <root>
Password      = <secret>
MysqlHost     = <127.0.0.1>
MysqlPort     = (3306)
DbPidFile     = </var/lib/mysql/<server_name>.pid>

We need one section for the machine (host) and one section per database (instance, typically only one per machine).

2.12.5. Queries sent against the database

The following queries are sent against your database for monitoring:

  • SHOW BINARY LOGS

  • SHOW /*!50000 ENGINE */ INNODB STATUS

  • SHOW ENGINE NDB STATUS

  • SHOW /*!50000 GLOBAL */ STATUS

  • SHOW GLOBAL VARIABLES

  • SHOW MASTER STATUS

  • SHOW SLAVE HOSTS

  • SHOW SLAVE STATUS

  • SELECT counter_name, SUM(val) AS val FROM ndbinfo.counters GROUP BY counter_name

  • SELECT MAX(total) AS total, MAX(used) AS used FROM ndbinfo.logbuffers

  • SELECT memory_type, SUM(used) AS used, SUM(total) AS total FROM ndbinfo.memoryusage GROUP BY memory_type

  • SELECT ROUND(AVG(uptime), 0) AS uptime, SUM(start_phase) AS start_phase FROM ndbinfo.nodes

  • SELECT resource_name, SUM(reserved) AS reserved, SUM(used) AS used, SUM(max) AS max FROM ndbinfo.resources GROUP BY resource_name

  • SELECT status, COUNT(status) AS cnt FROM ndbinfo.transporters GROUP BY status

  • SELECT REPLACE(Name, ' ', '_') AS Name, Value FROM INFORMATION_SCHEMA.PBXT_STATISTICS

  • SELECT SUM(compress_time) AS compress_time, SUM(uncompress_time) AS uncompress_time FROM information_schema.INNODB_CMP

  • SELECT SUM(total) AS total, SUM(used) AS used FROM ndbinfo.logspaces

  • SELECT SUM(trx_rows_locked) AS rows_locked, SUM(trx_rows_modified) AS rows_modified, SUM(trx_lock_memory_bytes) AS lock_memory FROM information_schema.INNODB_TRX

  • SELECT LOWER(REPLACE(trx_state, " ", "_")) AS state, count(*) AS cnt from information_schema.INNODB_TRX GROUP BY state

2.12.6. Testing the fpmmm for MaaS

If you have put this in place we can run the fpmmm agent for a first test:

/opt/fpmmm/bin/fpmmm --config=/etc/fpmmm.conf
1

If the agent returns "1" then it seems to work correctly…​ Have a look at the fpmmm agent log (/var/log/fpmmm/fpmmm.log) as well for hidden problems. If you do not see there any message it should have worked correctly.

Then you should see the first data arriving in the Zabbix Monitor.

2.12.7. Viewing Performance data

To see your performance data go to the following web-site: support.fromdual.com/fpmmm and log in with the credentials we provide you.

Then go to to MonitoringLatest data and choose the right Group and Host (it may take some time until Zab­bix recognizes a new agent (up to a minute) and displays its data correctly).

If they have arrived you can continue sending your data to the fpmmm MaaS Service. If not please get in contact with us for finding the problem.

2.12.8. Continuously sending data

If everything works correctly you can include the agent into the crontab (of the mysql user):

* * * * *  /opt/fpmmm/bin/fpmmm --config=/etc/fpmmm.conf | grep -v '^1$'

2.12.9. Upgrading the fpmmm MaaS agent

The fpmmm MaaS agent is upgraded in the same way as the normal fpmmm agent. For more details see here.

2.13. Performance Monitor Installation Guide for Windows

To install the FromDual Performance Monitor (fpmmm) on Windows we first have to install Perl. We recommend to use ActiveState Perl but Strawberry Perl may work as well. The installation is straight forward.

For querying MySQL we have to install some additional Perl modules. You can follow either the official MySQL documentation (which is a bit out of date) or just run the following command:

cmd> C:\Perl64\bin\ppm.bat

Then you have to install the modules:

  • DBI

  • DBD-mysql

Now you can already run the MySQL Performance Monitor!

Important: The current release (v0.9) does NOT work yet on Windows without patching the file FromDualMySQLagent.pm. For more details see here.

2.13.1. Run the fpmmm every minute

To run the fpmmm every minute we need the Windows Task Scheduler. You can schedule your task either by using the command line:

cmd> schtasks /create /sc minute /mo 1 /tn "MySQL Performance Monitor" \
/tr "C:\fpmmm\FromDualMySQLagent.pl C:\fpmmm\fpmmm.conf"

or by using the GUI. Go to:

Computer (right click) > Manager > System Tools > Task Scheduler > Crate Task...

2.13.2. fpmmm modules which work

The modules which seem to work at least partially at the moment are:

  • master

  • fpmmm

  • myisam

  • mysql

  • slave

Other modules might work as well…​

The modules server and process will NOT work for sure!

2.13.3. How to make the MySQL Performance Monitor work on Windows?

A customer recently was asking why our FromDual Performance Monitor (fpmmm) is not working on Windows…​? The answer is short: It was developed on Linux and never tested on Windows…​

But I was wondering how much effort it would take to make it work on Windows as well.

I was quite surprised how fast it was to make the basic functionality working on Windows. It took me less than one hour to install, configure and patch fpmmm.

Patch fpmmm

The file FromDualMySQLagent.pm has to be patched at 2 locations. The lock file name must be something understandable by Windows (for example C:\Temp\FromDualMySQLagent.lock. We will fix that in the next fpmmm release.

 40   # Should NOT be hard coded, tofix later!!!
 41   # Does not work on Windows!
 42   my $lAgentLockFile = '/tmp/FromDualMySQLagent.lock';
 43   # Check if lock file already exists and complain if yes
...
533   # Does not work on Windows!
534   my $lAgentLockFile = '/tmp/FromDualMySQLagent.lock';
535   if ( ! unlink($lAgentLockFile) ) {

There are at least 2 other parts in the code which make troubles. But they can be circumvented by disabling the modules (server and process) respectively configuring fpmmm accordingly.

A basic fpmmm configuration file on Windows

We have used the following basic configuration file:

[default]

LogFile       = C:\Users\oli\logs\fpmmm.log
Debug         = 2

CacheFileBase = C:\Users\oli\cache

MaaS          = on
Hash          = <your hash>
Methtode      = http
Url           = https://support.fromdual.com/maas/receiver.php

[FromDual.Win_laptop]

Modules       = fpmmm

[FromDual.Win_laptop.win_db]

In your case there is possibly some more configuration needed. For details please look here.

Now we are quite confident that the next fpmmm release will work more or less with Windows out of the box. If you cannot wait try it out with this hack. More details about installing the fpmmm on Windows you can find here. If you run into problems please report them in the MPM installation on Windows forum. All paying customers can naturally use our support platform.

3. FromDual Performance Monitor User Guide

3.1. Technical Overview

The FromDual Performance Monitor (fpmmm) will be hooked into the Zabbix Agent (zabbix_agentd).

It consists of:

  • The Monitor program itself (bin/fpmmm) which controls the other modules and its own module (FromDual_agent.inc)

  • A Template for the FromDual Performance Monitor configuration file (tpl/fpmmm.conf.template)

  • And several different modules for monitoring MariaDB/MySQL/Galera (lib/FromDual_*.inc)

The FromDual Performance Monitor Architecture looks as follows:

Architecture

3.2. Examples

Some snapshots…​

3.2.1. Dashboard with Slave issues

Dashboard with Slave issues

3.2.2. Triggers acknowledged

Triggers acknowledged

3.2.3. MySQL network activity

MySQL network activity

3.2.4. MySQL statements sent against the server

MySQL statements sent against the server

3.2.5. InnoDB buffer pool and data file activity

InnoDB buffer pool and data file activity

3.3. Adding the fpmmm Templates to Zabbix

Choose the templates you need. The template fpmmm is mandatory. All other templates are optional but you have to load them if you want to monitor some specific storage engines or features. If you do not want to think about install ALL templates. A typical good choice of templates for the machine (host) is: fpmmm and server and for the a normal MariaDB/MySQL database itself: process, mysql, myisam and innodb. If you have a Master/Slave Replication running you should add also the master and the slave templates.

Load the Templates (tpl/templates_*/*.xml) into the Zabbix Monitor (leave all the checkboxes as they are): Configuration → Templates → Import → Select the module → Import.

There should not be any conflict with other rules because a different name space was used for the FromDual modules.

3.4. Creating Zabbix Host Groups

We found, that it is a good idea to create a separate Host Group for your MariaDB/MySQL databases. But you are free to have even a more granular separation or to have just one Host Group.

We miss-use these Host Groups for separating our Databases and our Machines. So the name could be a bit miss-leading how we used it for our purposes. We do not only monitor Hosts but also Databases/Instances.

Adding a Zabbix Host Group:

Configuration → Host Groups → Create host group → then enter a group name for example as follows: Database Server and MariaDB/MySQL

Create Group

3.5. Creating Hosts on your Zabbix Server

A Host in Zabbix terminology is a device you want to monitor. This can be either a Machine or a MariaDB/MySQL Database Instance (mariadbd/mysqld) or something else.

For every Database Instance you want to monitor you have to create 2 Hosts, one for the Machine and one for the Database Instance: Configuration → Hosts → Creating host.

Then enter a UNIQUE Name for this Host (= machine or database). Be very careful with choosing the Name (in other places also called Hostname). The Name is the identifier for authenticating the Zabbix Agent to the Zabbix Server and is the marker where the data are stored. If the names do not match, the data cannot be sent!

Make sure that Host name matches exactly the hostname specified in fpmmm.conf (my_machine and my_mysqld).

Add this Host to the right Group, add the IP address and Link at least the Template tpl/templates_*/Template_FromDual.MySQL.fpmmm from the Templates tab to the machine host (my_machine) (and possibly some others you have chosen above) and the other templates to the Database Host (my_mysqld). Then save the changes.

Example for the Server: …​

Example for the Database: …​

Create Host

Then check again if your fpmmm data reaches your Zabbix Server: Monitoring → Latest data → fpmmm and check the time stamp of Last check for example.

3.6. Enable the Host for monitoring on Zabbix Server

When you have done all the steps above you can enable the monitored Database Server by clicking on its Not monitored status. In the availability you should see if a certain host is monitored and if not why…​

Enable host for monitoring

The most common reasons why an agent is not monitored are:

  • Hostname on Zabbix Server and Section in FromDual Performance Monitor Agent configuration file do NOT match.

  • Agent is down or not reachable (firewall, etc.).

To see if data is sent and what the actual values are you can go to:

Monitoring → Latest data → then filter by group and host:

Latest data

3.7. Regularly running the fpmmm Agent

There are 2 different possibilities to run fpmmm regularly.

  • First by the Zabbix Agent:

Put the following line either into its own file (/etc/zabbix/conf.d/fpmmm.conf) or add it to the Zabbix Agent configuration file (/etc/zabbix/zabbix_agentd.conf).

#
# /etc/zabbix/zabbix_agentd.conf
#

UserParameter=FromDual.MySQL.check,/opt/fpmmm/bin/fpmmm --config=/etc/fpmmm.conf

Restart the Zabbix agent afterwards: systemctl restart zabbix-agentd.

  • or second by the crontab:

* * * * * /opt/fpmmm/bin/fpmmm --config=/etc/fpmmm.conf >/dev/null

3.8. Special requirements for specific modules

3.8.1. Special requirements for the DRBD module

If the FromDual Performance Monitor Agent is running under a different user than root not all information will be displayed correctly because of missing privileges.

You either have to run the FromDual Performance Monitor Agent under root (security!) or grant the appropriate rights to the user the Agent is running.

For more information look also into our Forum.

Please let us know if there are some errors in this FromDual Performance Monitor Installation Guide or if something is not described clear enough!

3.9. Troubleshooting

3.9.1. Troubleshooting the Zabbix Server

  • Make sure the Database of the Zabbix Server is up and running:

$ systemctl status mariadb
$ ps -ef | grep mariadbd
$ journalctl -xeu mariadb

Otherwise the Zabbix Web Application will complain and the Zabbix Server will not start.

  • Make sure the Zabbix Server is up and running:

$ systemctl status zabbix-server
$ journalctl -xeu zabbix-server
  • Check the Zabbix Server Log for problems or reasons:

$ tail -n 100 /var/log/zabbix/zabbix_server.log
  • Check if Zabbix Server can connect to its Database. If not, this should be visible in the Zabbix Server Log. In the database you should see some Zabbix Processes connected:

SQL> SHOW PROCESSLIST;

3.9.2. Troubleshooting the Zabbix Web Interface

  • Check if a Webserver (for example Apache) is running so the Zabbix Web Interface can be executed:

$ systemctl status apache2
$ journalctl -xeu apache2

If everything is fine it should look as follows (Zabbix Server is running):

Troubleshooting

3.9.3. Troubleshooting the Zabbix Agent

  • Make sure the Zabbix Agent is running (check the Zabbix Agent Log).

  • Check if the Status of the Host is Monitored and if Availability is green.

  • If Availability is red and you see the following message:
    Got empty string from [137.58.246.161]. Assuming that agent dropped connection because of access permissions
    Check if the hostname of the Zabbix Agent matches with the name on the Host in the Zabbix Server (case sensitive, white space etc. matters!).

  • Set DebugLevel = 4 in the Zabbix Agent configuration file, restart the agent and see if you can see any reason in the agent log file (do not forget to set it back afterwards because it becomes very verbose).

  • Try to send a message manually from as the Zabbix Agent to the Zabbix Server:

$ sudo -u zabbix zabbix_sender --zabbix-server=192.168.0.1 \
--host=mysql_2_4_2 --key=FromDual.MySQLmysql.Questions \
--value="123456789" --verbose
Info from server: "Processed 1 Failed 0 Total 1 Seconds spent 0.000180"
sent: 1; skipped: 0; total: 1
  • Check under: Monitoring → Latest data if the data have been arriving (timestamp).

  • Try to reach the Zabbix Agent from as the Zabbix Server:

$ sudo -u zabbix zabbix_get --host=192.168.0.33 --source-address=192.168.0.1 \
--key="FromDual.MySQL.check"
$ echo $?
141

This typically means that host does not match.

$ sudo -u zabbix zabbix_get --host=192.168.0.33 --source-address=192.168.0.1 \
--key="FromDual.MySQL.check"
ZBX_NOTSUPPORTED

This means that the item FromDual.MySQL.check is not known to the Zabbix Server. Then you have possibly forgotten to add the fpmmm module template to the host you want to monitor.

  • If you run the process module you should make sure, that the user running the Zabbix Agent has access to the PID file. Ideally you run the Zabbix agent with the same user as the database process runs or you configure MariaDB/MySQL in the way that the PID file located on a location where also other processes have access to it.

3.9.4. Troubleshooting the FromDual Performance Monitor Agent

Our philosophy is, that the fpmmm Agent is running under the O/S user mysql. For the fpmmm Agent, this is necessary because otherwise we do not have access to the PID file of the mariadbd / mysqld.

If all those hints do not help or if you have some comments or feedback please let us know at our FromDual Performance Monitor Forum (we do NOT cover Zabbix problems).

3.10. Upgrading the FromDual Performance Monitor

The FromDual Performance Monitor can be typically upgraded on the fly without any changes in configuration or any significant downtime.

In FromDual Performance Monitor v2.0.0 we have done some configuration variable changes. So you have to adapt the fpmmm configuration. Please read the FromDual Performance Monitor Release Notes for more details.

Upgrade we typically recommend to do like this:

$ VERSION='m.n.o'
$ cd /opt
$ tar xf /download/fpmmm-${VERSION}.tar.gz
$ rm -f fpmmm ; ln -s fpmmm-${VERSION} fpmmm

If you are using our packages from our Repository the upgrade will be done automatically.

3.11. Fpmmm Nagios plug-ins

The FromDual Performance Monitor (fpmmm) can also be used for supplying your Nagios Monitoring infrastructure. fpmmm v2.0.0 replaces the former FromDual Nagios plug-ins for MariaDB and MySQL.

3.11.1. Converting Nagios plug-ins to fpmmm

Converting your former FromDual Nagios plug-ins to fpmmm is quite simple. You have to convert the Nagios plugin command to an fpmmm command. Here a simple example:

$ ./check_db_mysql.pl --user=nagios --password=secret --host=127.0.0.1 --port=3306

should be changed to:

$ ./fpmmm --config=/etc/nagios_fpmmm.conf --nagios-plugin=check_db

The former FromDual Nagios plug-in options will be placed in the fpmmm configuration file (/etc/nagios_fpmmm.conf) and should be converted to:

from --user to Username

from

--password

to

Password

from

--host

to

MysqlHost

from

--port

to

MysqlPort

from

--socket

to

Socket

A complete fpmmm configuration file converted from the FromDual Nagios plug-ins should look as follows:

#
# /etc/nagios_fpmmm.conf
#

[default]

AgentLockFile = /run/lock/fpmmm/fpmmm.lock
OutputFormat  = nagios
CacheFileBase = /var/cache/fpmmm/fpmmm
Hostname      = my_machine

Username      = fpmmm_agent
Password      = secret
MysqlHost     = 127.0.0.1
MysqlPort     = 3306
Socket        = /var/lib/mysql/mysql.sock

Now we have a list of all commands how the should be converted from Nagios plug-ins to fpmmm:

$ ./check_db_mysql.pl --user=nagios --password=secret --host=127.0.0.1 --port=3306
$ ./bin/fpmmm --config=/etc/nagios_fpmmm.conf --nagios-plugin=check_db

$ ./check_repl_mysql_cnt_slave_hosts.pl --user=nagios --password=secret --host=127.0.0.1 --port=3306 --expected=3 --critical=1 --warning=2
$ ./bin/fpmmm --config=/etc/nagios_fpmmm.conf --nagios-plugin=check_repl_cnt_slave_hosts --expected=3 --critical=1 --warning=2

$ ./check_repl_mysql_io_thread.pl --user=nagios --password=secret --host=127.0.0.1 --port=3306
$ ./bin/fpmmm --config=/etc/nagios_fpmmm.conf --nagios-plugin=check_repl_io_thread

$ ./check_repl_mysql_sql_thread.pl --user=nagios --password=secret --host=127.0.0.1 --port=3306
$ ./bin/fpmmm --config=/etc/nagios_fpmmm.conf --nagios-plugin=check_repl_sql_thread

$ ./check_repl_mysql_read_exec_pos.pl --user=nagios --password=secret --host=127.0.0.1 --port=3306 --critical=100000 --warning=10000
$ ./bin/fpmmm --config=/etc/nagios_fpmmm.conf --nagios-plugin=check_repl_read_exec_pos --critical=100000 --warning=10000

$ ./check_repl_mysql_seconds_behind_master.pl --user=nagios --password=secret --host=127.0.0.1 --port=3306 --critical=60 --warning=10
$ ./bin/fpmmm --config=/etc/nagios_fpmmm.conf --nagios-plugin=check_repl_seconds_behind_master --critical=60 --warning=10

$ ./check_repl_mysql_readonly.pl --user=nagios --password=secret --host=127.0.0.1 --port=3306
$ ./bin/fpmmm --config=/etc/nagios_fpmmm.conf --nagios-plugin=check_repl_readonly

$ ./check_galera_nodes.pl --user=nagios --password=secret --host=127.0.0.1 --port=3306 --nodes=3
$ ./bin/fpmmm --config=/etc/nagios_fpmmm.conf --nagios-plugin=check_galera_nodes --nodes=3

$ ./check_repl_mysql_heartbeat.pl --master-user=nagios --master-password=secret --master-host=192.168.1.1 --master-port=3306 --slave-user=nagios --slave-password=secret --slave-host=192.168.1.2 --slave-port=3306 --heartbeat-schema=test --heartbeat-table=heartbeat --heartbeat-beat-field=beat --heartbeat-id-field=id --heartbeat-id=1
$ ./bin/fpmmm --config=/etc/nagios_fpmmm.conf --nagios-plugin=check_repl_heartbeat --master-user=nagios --master-password=secret --master-host=192.168.1.1 --master-port=3306 --slave-user=nagios --slave-password=secret --slave-host=192.168.1.2 --slave-port=3306 --heartbeat-schema=test --heartbeat-table=heartbeat --heartbeat-beat-field=beat --heartbeat-id-field=id --heartbeat-id=1

$ ./check_errorlog_mysql.pl --error-log=/var/log/mysql/chef_mariadb-107_error.log --configuration=/var/lib/fpmmm/fpmmm_error_log.state --instance=mariadb-107
$ ./bin/fpmmm --config=/etc/nagios_fpmmm.conf --nagios-plugin=check_errorlog --error-log=/var/log/mysql/chef_mariadb-107_error.log --configuration=/var/lib/fpmmm/fpmmm_error_log.state --instance=mariadb-107

$ ./perf_mysql.pl --user=nagios --password=secret --host=127.0.0.1 --port=3306 --output=nagios --module=uptime
$ ./bin/fpmmm --config=/etc/nagios_fpmmm.conf --nagios-plugin=perf --output=nagios --module=uptime

If you seek for Nagios plug-in specific help you can run the following command:

$ ./bin/fpmmm --config=/etc/nagios_fpmmm.conf --nagios-plugin=perf --output=nagios --module=uptime --help

3.11.2. Set-up Nagios NRPE Agent

This should be done on the machine to monitor (client) - where the database resides.

$ apt-get install nagios-nrpe-server nagios-plugins-basic
$ systemctl status nagios-nrpe-server
$ systemctl start nagios-nrpe-server
$ /usr/lib/nagios/plugins/check_nrpe --host=localhost --command=check_users
USERS OK - 1 users currently logged in |users=1;5;10;0

Add Nagios Monitoring Server:

# /etc/nagios/nrpe.cfg
allowed_hosts=127.0.0.1,::1,192.168.56.102

Add fpmmm agent commands:

# /etc/nagios/nrpe_local.cfg

command[fpmmm_check_db]=/opt/fpmmm/bin/fpmmm --config=/etc/fpmmm.conf --nagios-plugin=check_db

command[fpmmm_check_repl_cnt_slave_hosts]=/opt/fpmmm/bin/fpmmm --config=/etc/fpmmm.conf --nagios-plugin=check_repl_cnt_slave_hosts --expected=3 --critical=1 --warning=2
command[fpmmm_check_repl_io_thread]=/opt/fpmmm/bin/fpmmm --config=/etc/fpmmm.conf --nagios-plugin=check_repl_io_thread
command[fpmmm_check_repl_sql_thread]=/opt/fpmmm/bin/fpmmm --config=/etc/fpmmm.conf --nagios-plugin=check_repl_sql_thread
command[fpmmm_check_repl_read_exec_pos]=/opt/fpmmm/bin/fpmmm --config=/etc/fpmmm.conf --nagios-plugin=check_repl_read_exec_pos --critical=100000 --warning=10000
command[fpmmm_check_repl_seconds_behind_master]=/opt/fpmmm/bin/fpmmm --config=/etc/fpmmm.conf --nagios-plugin=check_repl_seconds_behind_master --critical=60 --warning=10
command[fpmmm_check_repl_readonly]=/opt/fpmmm/bin/fpmmm --config=/etc/fpmmm.conf --nagios-plugin=check_repl_readonly
command[fpmmm_check_repl_heartbeat]=/opt/fpmmm/bin/fpmmm --config=/etc/fpmmm.conf --nagios-plugin=check_repl_heartbeat --master-user=nagios --master-password=secret --master-host=192.168.1.2 --master-port=3306 --slave-user=nagios --slave-password=secret --slave-host=192.168.1.2 --slave-port=3306 --heartbeat-schema=test --heartbeat-table=heartbeat --heartbeat-beat-field=beat --heartbeat-id-field=id --heartbeat-id=1

command[fpmmm_check_galera_nodes]=/opt/fpmmm/bin/fpmmm --config=/etc/fpmmm.conf --nagios-plugin=check_galera_nodes --nodes=3

command[fpmmm_check_errorlog]=/opt/fpmmm/bin/fpmmm --config=/etc/fpmmm.conf --nagios-plugin=check_errorlog --error-log=/var/log/mysql/mysqld.log --configuration=/tmp/fpmmm_error_log.state --instance=mariadb-107

command[fpmmm_perf_uptime]=/opt/fpmmm/bin/fpmmm --config=/etc/fpmmm.conf --nagios-plugin=perf --output=nagios --module=uptime
command[fpmmm_perf_connections]=/opt/fpmmm/bin/fpmmm --config=/etc/fpmmm.conf --nagios-plugin=perf --output=nagios --module=connections
command[fpmmm_perf_galera]=/opt/fpmmm/bin/fpmmm --config=/etc/fpmmm.conf --nagios-plugin=perf --output=nagios --module=galera
command[fpmmm_perf_thread_cache]=/opt/fpmmm/bin/fpmmm --config=/etc/fpmmm.conf --nagios-plugin=perf --output=nagios --module=thread_cache
command[fpmmm_perf_network_traffic]=/opt/fpmmm/bin/fpmmm --config=/etc/fpmmm.conf --nagios-plugin=perf --output=nagios --module=network_traffic
command[fpmmm_perf_queries]=/opt/fpmmm/bin/fpmmm --config=/etc/fpmmm.conf --nagios-plugin=perf --output=nagios --module=queries
command[fpmmm_perf_query_cache]=/opt/fpmmm/bin/fpmmm --config=/etc/fpmmm.conf --nagios-plugin=perf --output=nagios --module=query_cache
command[fpmmm_perf_myisam_key_buffer]=/opt/fpmmm/bin/fpmmm --config=/etc/fpmmm.conf --nagios-plugin=perf --output=nagios --module=myisam_key_buffer
command[fpmmm_perf_table_cache]=/opt/fpmmm/bin/fpmmm --config=/etc/fpmmm.conf --nagios-plugin=perf --output=nagios --module=table_cache
command[fpmmm_perf_temporary_tables]=/opt/fpmmm/bin/fpmmm --config=/etc/fpmmm.conf --nagios-plugin=perf --output=nagios --module=temporary_tables
command[fpmmm_perf_tables]=/opt/fpmmm/bin/fpmmm --config=/etc/fpmmm.conf --nagios-plugin=perf --output=nagios --module=tables
command[fpmmm_perf_slow_queries]=/opt/fpmmm/bin/fpmmm --config=/etc/fpmmm.conf --nagios-plugin=perf --output=nagios --module=slow_queries
command[fpmmm_perf_bin_log]=/opt/fpmmm/bin/fpmmm --config=/etc/fpmmm.conf --nagios-plugin=perf --output=nagios --module=bin_log
command[fpmmm_perf_innodb_buffer_pool]=/opt/fpmmm/bin/fpmmm --config=/etc/fpmmm.conf --nagios-plugin=perf --output=nagios --module=innodb_buffer_pool
command[fpmmm_perf_innodb_buffer_pool_io]=/opt/fpmmm/bin/fpmmm --config=/etc/fpmmm.conf --nagios-plugin=perf --output=nagios --module=innodb_buffer_pool_io
command[fpmmm_perf_innodb_io]=/opt/fpmmm/bin/fpmmm --config=/etc/fpmmm.conf --nagios-plugin=perf --output=nagios --module=innodb_io
command[fpmmm_perf_innodb_data]=/opt/fpmmm/bin/fpmmm --config=/etc/fpmmm.conf --nagios-plugin=perf --output=nagios --module=innodb_data
command[fpmmm_perf_innodb_logfile]=/opt/fpmmm/bin/fpmmm --config=/etc/fpmmm.conf --nagios-plugin=perf --output=nagios --module=innodb_logfile
command[fpmmm_perf_innodb_row_locking]=/opt/fpmmm/bin/fpmmm --config=/etc/fpmmm.conf --nagios-plugin=perf --output=nagios --module=innodb_row_locking
command[fpmmm_perf_innodb_queries]=/opt/fpmmm/bin/fpmmm --config=/etc/fpmmm.conf --nagios-plugin=perf --output=nagios --module=innodb_queries

Then restart the Nagios NRPE server:

$ systemctl restart nagios-nrpe-server

Fpmmm agent running with Nagios plug-ins:

$ sudo -u nagios /opt/fpmmm/bin/fpmmm --config=/etc/fpmmm.conf --nagios-plugin=check_db
Database seems up and running...

Check for errors:

$ tail /var/log/fpmmm/fpmmm.log

Combination of both:

$ chown nagios: /etc/fpmmm.conf
$ chown -R nagios: /var/log/fpmmm
$ chown -R nagios: /run/lock/fpmmm
$ /usr/lib/nagios/plugins/check_nrpe --host=localhost --command=fpmmm_check_db
Database seems up and running...

$ /usr/lib/nagios/plugins/check_nrpe --host=localhost --command=fpmmm_check_repl_readonly
...
$ /usr/lib/nagios/plugins/check_nrpe --host=localhost --command=fpmmm_perf_uptime
...

3.11.3. Set-up Nagios Monitoring Server

$ apt-get install nagios-nrpe-server
$ /usr/lib/nagios/plugins/check_nrpe --host=192.168.56.108
NRPE v4.0.3

Set the NRPE Check on the Server Configuration file:

$ /usr/lib/nagios/plugins/check_nrpe --host=192.168.56.108 --unknown-timeout --timeout=5 --command=fpmmm_check_db
Database seems up and running...

$ /usr/lib/nagios/plugins/check_nrpe --host=192.168.56.108 --command=fpmmm_check_repl_readonly
...
$ /usr/lib/nagios/plugins/check_nrpe --host=192.168.56.108 --command=fpmmm_perf_uptime
...

Define your database machine and the services to monitor:

# /etc/nagios4/nagios.cfg
cfg_file=/etc/nagios4/objects/nrpeclient.cfg

# /etc/nagios4/objects/nrpeclient.cfg
define host {
  use                 linux-server
  host_name           debian11
  alias               debian11.rebenweg
  address             192.168.56.108
  max_check_attempts  3
  contact_groups      admins
}

define hostgroup {
  hostgroup_name      databases
  alias               MariaDB and MySQL databases
  members             debian11
}

define service {
  use                 generic-service
  host_name           debian11
  service_description fpmmm check_db
  check_command       check_nrpe!fpmmm_check_db
}

define service {
  use                 generic-service
  host_name           debian11
  service_description fpmmm check_repl_readonly
  check_command       check_nrpe!fpmmm_check_repl_readonly
}

define service {
  use                 generic-service
  host_name           debian11
  service_description fpmmm perf_uptime
  check_command       check_nrpe!fpmmm_perf_uptime
}

Test configuration and restart Nagios

$ /usr/sbin/nagios4 -v /etc/nagios4/nagios.cfg
$ systemctl restart nagios4

Then you should see the results in your web-browser.

3.12. SNMP Monitoring

The newest release of the Performance Monitor v2.0.0 (fpmmm) allows you to monitor your MariaDB and MySQL databases via SNMP (Simple Network Management Protocol).

This feature enables you to report your Database Metrics into Enterprise Monitoring solutions from Microsoft, IBM or into Oracle Cloud Control.

On this page we will show you the few simple steps it needs to send the data from your fpmmm Agent to your SNMP Manager.

3.12.1. Check if SNMP Manager can be reached

To make sure fpmmm can send data to the SNMP Manager at all you can test the connection with the following command to send SNMP Notifications to the SNMP Manager:

$ COMMUNITY='public'
$ MANAGER='192.168.56.102'
$ PORT='162'
$ TRAP_OID='1.3.6.1.4.1.57800.1.1.2'
$ OID='1.3.6.1.4.1.57800.1.1.1'
$ TYPE='c'
$ VALUE=$(mariadb --user=root --execute="SELECT variable_value FROM information_schema.global_status WHERE variable_name LIKE 'threads_running'\G" | grep variable_value | cut -d' ' -f2)

$ snmptrap -v 2c -c ${COMMUNITY} ${MANAGER}:${PORT} '' ${TRAP_OID} ${OID} ${TYPE} "${VALUE}"

Then check in the SNMP Manager Logfile if the traps arrive.

3.12.2. Copy fpmmm MIBs to your fpmmm Agent Machine

You can see where your fpmmm MIBs are expected on your database machine (where your fpmmm Agent is located) with the following command:

$ net-snmp-config --default-mibdirs
${HOME}/.snmp/mibs:/usr/share/snmp/mibs:/usr/share/snmp/mibs/iana:/usr/share/snmp/mibs/ietf:/usr/share/mibs/site:/usr/share/snmp/mibs:/usr/share/mibs/iana:/usr/share/mibs/ietf:/usr/share/mibs/netsnmp

Copy the fpmmm MIBs as follows (we assume that you work with the same user as your fpmmm Agent works (zabbix or mariadb/mysql)):

$ mkdir -p ${HOME}/.snmp/mibs
$ cp /opt/fpmmm/tpl/FromDual-fpmmm-MIB.mib ${HOME}/.snmp/mibs

or choose any other location you want to have them.

To check if the FromDual MIBs are recognized correctly run these commands:

$ snmptranslate -DFromDual-fpmmm-MIB.mib -m +FromDual-fpmmm-MIB 1.3.6.1.4.1.57800.1.1.1
registered debug token FromDual-fpmmm-MIB.mib, 1
FromDual-fpmmm-MIB::fpmmmLastrun

$ snmptranslate -On FromDual-fpmmm-MIB::fpmmmLastrun
.1.3.6.1.4.1.57800.1.1.1

Do the same for the SNMP Manager according to your installation instructions of your SNMP Manager.

3.12.3. Configure your FromDual Performance Monitor to send SNMP traps

The fpmmm Configuation File (/etc/fpmmm.conf) should contain at least the following lines to make fpmmm sending SNMP traps instead of Zabbix messages:

[default]

# SNMP Server
SnmpServer    = 192.168.56.102
SnmpCommunity = public
SnmpTrapPort  = 162

OutputFormat  = snmp

Do a test run of fpmmm with:

$ /opt/fpmmm/bin/fpmmm --config=/etc/fpmmm.conf

Then check again on your SNMP Server machine if the SNMP traps arrive:

snmptrapd: Agent Address: 0.0.0.0
Agent Hostname:
Date: 1 - 1 - 4 - 1 - 1 - 1970
Enterprise OID: .
Trap Type: Cold Start
Trap Sub-Type: 0
Community/Infosec Context: TRAP2, SNMP v2c, community public
Uptime: 0
Description: Cold Start
PDU Attribute/Value Pair Array:#012DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (1215419) 3:22:34.19#012SNMPv2-MIB::snmpTrapOID.0 = OID: SNMPv2-SMI::enterprises.57800.1.1.2#012SNMPv2-SMI::enterprises.57800.1.1.1 = Counter32: 3

snmptrapd: Agent Address: 0.0.0.0
Agent Hostname:
Date: 1 - 1 - 4 - 1 - 1 - 1970
Enterprise OID: .
Trap Type: Cold Start
Trap Sub-Type: 0
Community/Infosec Context: TRAP2, SNMP v2c, community public
Uptime: 0
Description: Cold Start
PDU Attribute/Value Pair Array:#012DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (60) 0:00:00.60#012SNMPv2-MIB::snmpTrapOID.0 = OID: SNMPv2-SMI::enterprises.57800.1.1.2#012SNMPv2-SMI::enterprises.57800.2.7.1 = Counter32: 1

snmptrapd: Agent Address: 0.0.0.0
Agent Hostname:
Date: 1 - 1 - 4 - 1 - 1 - 1970
Enterprise OID: .
Trap Type: Cold Start
Trap Sub-Type: 0
Community/Infosec Context: TRAP2, SNMP v2c, community public
Uptime: 0
Description: Cold Start
PDU Attribute/Value Pair Array:#012DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (60) 0:00:00.60#012SNMPv2-MIB::snmpTrapOID.0 = OID: SNMPv2-SMI::enterprises.57800.1.1.2#012SNMPv2-SMI::enterprises.57800.2.7.2 = Counter32: 151

snmptrapd: Agent Address: 0.0.0.0
Agent Hostname:
Date: 1 - 1 - 4 - 1 - 1 - 1970
Enterprise OID: .
Trap Type: Cold Start
Trap Sub-Type: 0
Community/Infosec Context: TRAP2, SNMP v2c, community public
Uptime: 0
Description: Cold Start
PDU Attribute/Value Pair Array:#012DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (60) 0:00:00.60#012SNMPv2-MIB::snmpTrapOID.0 = OID: SNMPv2-SMI::enterprises.57800.1.1.2#012SNMPv2-SMI::enterprises.57800.2.7.1 = Counter32: 1

snmptrapd: Agent Address: 0.0.0.0
Agent Hostname:
Date: 1 - 1 - 4 - 1 - 1 - 1970
Enterprise OID: .
Trap Type: Cold Start
Trap Sub-Type: 0
Community/Infosec Context: TRAP2, SNMP v2c, community public
Uptime: 0
Description: Cold Start
PDU Attribute/Value Pair Array:#012DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (60) 0:00:00.60#012SNMPv2-MIB::snmpTrapOID.0 = OID: SNMPv2-SMI::enterprises.57800.1.1.2#012SNMPv2-SMI::enterprises.57800.2.7.3 = Counter32: 1

This is already all about making fpmmm capable sending SNMP traps.

3.13. Monitoring PostgreSQL with fpmmmm

postgres=# CREATE USER fpmmm_agent WITH PASSWORD 'secret';
CREATE ROLE

postgres=# GRANT pg_use_reserved_connections TO fpmmm_agent;
GRANT ROLE

postgres=# GRANT pg_read_all_stats TO fpmmm_agent;
GRANT ROLE

4. Enterprise Subscription and Support

For commercial use you have to purchase an Enterprise Subscription for the FromDual Performance Monitor. This subscription includes:

  • Notice of available updates for all modules.

  • Access to newest Releases of the MySQL Performance Monitor.

  • Best effort email support for all the FromDual modules. Contact our contact for getting support.

  • Opportunity to suggest enhancement requests.

The Enterprise subscription can be purchased here. This support does NOT contain Zabbix Support! Commercial support for Zabbix you can get from Zabbix directly.

If the installation of the MySQL Performance Monitor is part of a consulting engagement, the support for the first year is free.

5. Performance Monior Release Notes

6. Performance Monitor Questions and Answers (Q&A) / Frequently Asked Questions (FAQ)

IMPORTANT: For technical details check our performance-monitor-user-guide[FromDual Performance Monitor User Guide].

  1. What is the FromDual Performance Monitor License?

    FromDual Performance Monitor is licensed under the FromDual Enterprise Tools License.

  2. What are the FromDual Performance Monitor Costs?

    FromDual Performance Monitor 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 Performance Monitor. Please ask FromDual for a quote.

  3. Is the FromDual Performance Monitor free of costs?

    FromDual Performance Monitor is free of costs for trial and non-commercial use.