Zabbix – Performance und Status Überwachung MySQL

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.

Kommentar hinterlassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

To create code blocks or other preformatted text, indent by four spaces:

    This will be displayed in a monospaced font. The first four 
    spaces will be stripped off, but all other whitespace
    will be preserved.
    
    Markdown is turned off in code blocks:
     [This is not a link](http://example.com)

To create not a block, but an inline code span, use backticks:

Here is some inline `code`.

For more help see http://daringfireball.net/projects/markdown/syntax