You are here

fpmmm installation guide

Introduction

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

With fpmmm you can monitor your MySQL/MariaDB 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 next major release.

fpmmm is the successor of mpm. mpm was renamed to fpmmm because of the naming conflict with the Apache Multi-Processing Modules (MPM).

fpmmm needs a Zabbix Server for storing its performance data. There you can see the graphs, and alerts are sent to you from there.

Prerequisites

We expect that you have successfully installed a Zabbix monitoring server already somewhere in your network. Find more about Zabbix installation here.

Preparation for fpmmm

Some preparation work has to be done before installing fpmmm:

CentOS 6 / Redhat 6

centos.pngredhat.png
# yum install php-cli php-process php-mysqli

# cat << _EOF >/etc/php.d/fpmmm.ini
variables_order = "EGPCS"
date.timezone = 'Europe/Zurich'
_EOF

rpm -Uvh http://repo.zabbix.com/zabbix/2.2/rhel/6/x86_64/zabbix-release-2.2-1.el6.noarch.rpm
yum update
yum install zabbix-sender

CentOS 7 / Redhat 7

# yum install php-cli php-process php-mysqli

# cat << _EOF >/etc/php.d/fpmmm.ini
variables_order = "EGPCS"
date.timezone = 'Europe/Zurich'
_EOF

rpm -Uvh http://repo.zabbix.com/zabbix/2.2/rhel/7/x86_64/zabbix-release-2.2-1.el7.noarch.rpm
yum update
yum install zabbix-sender

Ubuntu 14.04

ubuntu.png
# apt-get install php5-cli php5-mysqlnd php5-curl

# cat << _EOF >/etc/php5/cli/conf.d/fpmmm.ini
variables_order = "EGPCS"
date.timezone = 'Europe/Zurich'
_EOF

apt-get install zabbix-agent

OpenSuSE 13.1

suse.png
# zypper install php5 php5-posix php5-mysql php5-pcntl php5-curl

#cat << _EOF >/etc/php5/conf.d/fpmmm.ini
variables_order = "EGPCS"
date.timezone = 'Europe/Zurich'
_EOF

zypper addrepo http://download.opensuse.org/repositories/server:/monitoring/openSUSE_13.1 server_monitoring
zypper update
zypper install zabbix-agent

Installation of fpmmm

The fpmmm can be downloaded from here.

Then proceed as follows:

cd /opt
tar xf /tmp/fpmmm-0.10.5.tar.gz
ln -s fpmmm-0.10.5 fpmmm

Configuration of fpmmm

mkdir /etc/fpmmm
cp /opt/fpmmm/tpl/fpmmm.conf.template /etc/fpmmm/fpmmm.conf
chown -R zabbix: /etc/fpmmm

Prepare the fpmmm.conf according to your needs.

Example:

[default]

LogLevel      = 2
LogFile       = /tmp/fpmmm/fpmmm.log
CacheFileBase = /tmp/fpmmm/fpmmmCache
AgentLockFile = /tmp/fpmmm/fpmmm.lock

# Zabbix Server IP address
ZabbixServer  = 192.168.1.42


[my_machine]

Type          = host
Modules       = fpmmm server


[my_mysqld]

Type          = mysqld

Username      = fpmmm
Password      = secret
MysqlHost     = 127.0.0.1
MysqlPort     = 3306

Modules       = process mysql myisam innodb security
PidFile       = /var/lib/mysql/mysqld.pid

Create monitoring User in your MySQL/MariaDB database

CREATE USER 'fpmmm'@'127.0.0.1' IDENTIFIED BY 'secret';

GRANT PROCESS ON *.* TO 'fpmmm'@'127.0.0.1';
GRANT REPLICATION CLIENT ON *.* TO 'fpmmm'@'127.0.0.1';
GRANT SELECT ON mysql.user TO 'fpmmm'@'127.0.0.1';

Test fpmmm

/opt/fpmmm/bin/fpmmm --config=/etc/fpmmm/fpmmm.conf 
1
cat /tmp/fpmmm/fpmmm.log

Adding the fpmmm Temlates to Zabbix

Go to Configuration > Templates > Import and import all the fpmmm templates.

Create 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 MySQL database or something else.

First we have to create 2 hosts, one for the machine and one for the database: Configuration > Hosts > Create host.

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

Then add the templates fpmmm and server to the machine host (my_machine) and the other templates to the database host (my_mysqld).

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

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 configuartion file (/etc/zabbix/zabbix_agentd.conf).

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

or second by the crontab:

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

Please let us know if you experience any problem with this installation guide...