Ihr habt ein MySQL oder MariaDB als DBMS laufen und würdet gerne wissen, wie sehr eurer favorisiertes DBMS ackert und schuftet?
Kein Problem. Percona hat schon vor einiger Zeit seine Monitoringplugins veröffentlicht und für alle zugänglich gemacht. Großzügig die Jungs 🙂
In erster Linie waren diese Plugins für die Überwachung ihres eigenen MySQL Derivates über Cacti gedacht, aber diese lassen sich auch in Zabbix einbinden.

Ich möchte hier kurz darauf eingehen und euch unser angepasstes Template für Zabbix zum Download anbieten. Die in den Plugins mitgelieferten Templates lassen sich bei Zabbix 3.0 nicht importieren.
Ich weiß, wir hängen hinter her 🙂

Vorbereitungen auf dem zu überwachendem System

Als erstes braucht ihr die entsprechenden Pakete für die Plugins. Am besten besorgt man sich das selbst... die aus dem Repos von Percona direkt.
Dazu für bebianbasierte Distributionen:

wget https://repo.percona.com/apt/percona-release_0.1-4.$(lsb_release -sc)_all.deb 
dpkg -i percona-release_0.1-4.$(lsb_release -sc)_all.deb 
apt-get update 
apt-get install percona-zabbix-templates

Für RHEL/CentOS

yum install http://www.percona.com/downloads/percona-release/redhat/0.1-4/percona-release-0.1-4.noarch.rpm 
yum list | grep percona 
yum install percona-zabbix-templates

Nun kopieren wir die Userparameter in das Unterverzeichnis des Zabbix-Agent. Auch hier führen viele Wege zum Ziel. Die Zabbix-Pfade können abweichen.
Wichtig ist nur, dass das Verzeichnis, in dem die Userparameter liegen, auch in der zabbix-agent.conf angezogen werden (Include=/etc/zabbix_agentd.conf.d/).

cp /var/lib/zabbix/percona/templates/userparameter_percona_mysql.conf /etc/zabbix_agentd.conf.d/userparameter_percona_mysql.conf

Konfiguration der Konnektivität

Wir erstellen die Datei /var/lib/zabbix/percona/scripts/ss_get_mysql_stats.php.cnf und legen dort die Zugriffsdaten für den User an. Hier im Beispiel habe ich keine Gedanken über Securityaspekte betrachtet :p. Inhalt der Datei wäre dann:

<?php 
$mysql_user = 'root'; 
$mysql_pass = 'ichbinsupergeheim';

Ein Test des vorhin installierten Scriptes / Plugins sollte dann schon ein Ergebnis liefern:

[root@test-vm]# /var/lib/zabbix/percona/scripts/get_mysql_stats_wrapper.sh gg 
405647

Nun legen wir für den Zabbixuser noch eine .my.cnf an, damit der Zabbix-Agent (resp. User) sich am DBMS anmelden kann.

vi ~zabbix/.my.cnf 
# inhalt der Datei 
[client] user = root 
password = ichbinsupergeheim

Ein erneuter Test aus dem Zabbix-User-Kontext:

[root@test-vm]# sudo -u zabbix -H /var/lib/zabbix/percona/scripts/get_mysql_stats_wrapper.sh gg 
405647

Randnotiz

Die Plugins erstellen eine temporäre Datei unterhalb von /tmp/mysql_cacti_stats.txt. Solltet ihr einmal als root getestet haben, müsst ihr die Datei löschen, sonst kann der User Zabbix die Datei nicht erneuern. rm /tmp/mysql_cacti_stats.txt

Konfiguration des Templates im Zabbix

Bei uns funktionierten die Templates, welche direkt von Percona kamen nicht. Dank etwas Hilfe von einem User auf Github konnten wir aber ein angepasstes Template für die Version 3.2 importieren. Ihr könnt das Template hier herunterladen. zabbix-percona.xml

Import

Ihr importiert das Template wie gewohnt über die Zabbix GUI. Aktiviert den Import der "Screens". Das Template liefert einen Screen mit, welcher alle Graphen auf einem Bildschirm vereint.
Ihr müsst nun nur noch das Template "Percona MySQL Server Template" dem Host zuweisen und dann läuft das.