MySQL Server mit Munin überwachen

2010-11-28 - kostaki 7 Kommentare »

Einen MySQL Server kann man sehr einfach mit Munin überwachen. Die Plugins rufen dazu in regelmäßigen Abständen mysqladmin auf und werten das Ergebnis aus. Das Standard Munin Paket bringt auch schon ein paar Plugins mit die man nur aktivieren muss, aber es gibt noch weitere die auch interessant sind. Hier eine kurze Erklärung wie man sie installiert und was sie anzeigen:

Vorbereitung

Debian Squeeze: Ab Debian Squeeze braucht man das nicht mehr machen. Hier steht in der munin-node das folgende. Hier wird der debian-sys-maint User benutzt um mysqladmin zu betreiben. Das gleiche funktioniert auch schon bei Debian Lenny. Man muss es nur eintragen.

$ nano /etc/munin/plugin-conf.d/munin-node
[mysql*]
user root
env.mysqlopts --defaults-file=/etc/mysql/debian.cnf
env.mysqluser debian-sys-maint
env.mysqlconnection DBI:mysql:mysql;mysql_read_default_file=/etc/mysql/debian.cnf

Und den Munin-node neu starten nicht vergessen.

$ /etc/init.d/munin-node restart

MySQL Munin Standard Plugins aktivieren

Die folgenden Plugins sind bereits im Standard Munin Paket enthalten und machen meiner Ansicht nach Sinn.

mysql_bytes: Die Transferrate des MySQL Servers

Munin Plugin mysql_bytes Day

$ ln -s /usr/share/munin/plugins/mysql_bytes /etc/munin/plugins/mysql_bytes
mysql_queries: Anzahl Anfragen der unterschiedlichen Queryarten

Munin Plugin mysql_querys

$ ln -s /usr/share/munin/plugins/mysql_queries /etc/munin/plugins/mysql_queries
mysql_slowqueries: Anzahl an Slowqueries

Munin Plugin mysql_slowqueries

$ ln -s /usr/share/munin/plugins/mysql_slowqueries /etc/munin/plugins/mysql_slowqueries
mysql_threads: Anzahl an benutzten MySQL Threads

Munin Plugin mysql_threads

$ ln -s /usr/share/munin/plugins/mysql_threads /etc/munin/plugins/mysql_threads

weitere MySQL-Munin Plugins

Wie erwähnt, gibt es noch weitere MySQL Plugins die interessant sein können. Einige findet man auf Munin Exchange, aber nicht alle. Deshalb hier ein kleines Downloadpaket der folgenden Plugins.

Die Plugins legt man bei Debian unter /usr/share/munin/plugins/ ab (auf die Rechte achten, chmod 755). Dann erstellt man einen Symlink nach /etc/munin/plugins und startet den munin-node neu.

Beispiel:

$ nano /usr/share/munin/plugins/testplugin
$ chmod 755 /usr/share/munin/plugins/testplugin
$ ln -s /usr/share/munin/plugins/testplugin /etc/munin/plugins/testplugin
$ /etc/init.d/munin-node

Es lohnt sich die Plugins zu testen bevor man sie linkt. Dazu kann man sie einfach aufrufen. Viele bringen Parameter mit die einem bei der Konfiguration helfen.

$ /usr/share/munin/plugins/testplugin
$ /usr/share/munin/plugins/testplugin config
$ /usr/share/munin/plugins/testplugin autoconf

Bei Wildcardplugins gibt es meist noch den Parameter suggest.

mysql_size_all: Zeigt die Größe aller Datenbanken des Servers an

Munin Plugin mysql_size_all
Anmerkung: Die auf dem Server vorhandenen Datenbanken werden in einer Funktion am Ende des Plugins ermittelt. Hier ist fest der Standard mysql data Pfad von Debian eingetragen (/var/lib/mysql/). Sollten die Datenbanken an einem anderen Ort liegen muss der Pfad hier angepasst werden. Es gibt außerdem noch ein mysql_size_ Plugin, das man zum monitoren einzelner Datenbanken benutzen kann.

$ ln -s /usr/share/munin/plugins/mysql_size_all /etc/munin/plugins/mysql_size_all
mysql_connections: Zeigt freie und benutze MySQL Verbindungen an

Munin Plugin mysql_connections

$ ln -s /usr/share/munin/plugins/mysql_connections /etc/munin/plugins/mysql_connections
mysql_keybuffer: Zeigt die Auslastung des MySQL Key Buffers an

Munin Plugin mysql_keybuffer

$ ln -s /usr/share/munin/plugins/mysql_keybuffer /etc/munin/plugins/mysql_keybuffer
mysql_keys: Zeit die Benutzung der MySQL Keys an.

Munin Plugin mysql_keys

$ ln -s /usr/share/munin/plugins/mysql_keys /etc/munin/plugins/mysql_keys
mysql_qcache_mem: Zeigt die Auslastung des MySQL Query Caches an

Munin Plugin mysql_qcache_mem

$ ln -s /usr/share/munin/plugins/mysql_qcache_mem /etc/munin/plugins/mysql_qcache_mem
mysql_qcache_hits: Zeigt die Benutzung des Query Caches an.

Munin Plugin mysql_qcache_hits

$ ln -s /usr/share/munin/plugins/mysql_qcache_hits /etc/munin/plugins/mysql_qcache_hits

Alles zusammen

Hier noch einmal der Downloadlink zu den Plugins und die Befehle zum linken für die Faulen unter uns (also für mich).

chmod 755 /usr/share/munin/plugins/* && 
ln -s /usr/share/munin/plugins/mysql_bytes /etc/munin/plugins/mysql_bytes && 
ln -s /usr/share/munin/plugins/mysql_queries /etc/munin/plugins/mysql_queries && 
ln -s /usr/share/munin/plugins/mysql_slowqueries /etc/munin/plugins/mysql_slowqueries && 
ln -s /usr/share/munin/plugins/mysql_threads /etc/munin/plugins/mysql_threads && 
ln -s /usr/share/munin/plugins/mysql_size_all /etc/munin/plugins/mysql_size_all && 
ln -s /usr/share/munin/plugins/mysql_connections /etc/munin/plugins/mysql_connections && 
ln -s /usr/share/munin/plugins/mysql_keybuffer /etc/munin/plugins/mysql_keybuffer && 
ln -s /usr/share/munin/plugins/mysql_keys /etc/munin/plugins/mysql_keys &&
ln -s /usr/share/munin/plugins/mysql_qcache_mem /etc/munin/plugins/mysql_qcache_mem && 
ln -s /usr/share/munin/plugins/mysql_qcache_hits /etc/munin/plugins/mysql_qcache_hits &&
/etc/init.d/munin-node restart

Nicht dabei was du suchst? Nimmt man sich die vorhandenen Plugins als Basis, kann man sehr einfach eigene Plugins erstellen die die gewünschten System Variablen überwachen.

Related Links

  1. 7 Kommentare

  2. ric
    schrieb am 29.11.2010 um 17:50 Uhr

    super anleitung, vielen dank!

    kleine anmerkung noch: der hart codierte pfad zum verzeichnis mit den datenbanken in der datei mysql_size_all des downloadpaketes ist noch _nicht_ auf den debian-standard-pfad gesetzt, sondern zeigt noch auf /var/lib/mysql/
    der korrekte pfad lautet /var/lib/mysql/ wie im blog-text beschrieben ;-)

  3. ric
    schrieb am 29.11.2010 um 18:07 Uhr

    ups! “sondern zeigt noch (fälschlicherweise) auf /mysql/data/” wollte ich gesagt haben. sorry.

    übrigens habe ich die plugins erfolgreich auf zwei lenny-systemen eingerichtet. das erste system mit mysql und das zweite mit mariadb.

  4. kostaki
    schrieb am 29.11.2010 um 19:25 Uhr

    Ups sorry. Das war der Pfad auf meinem Testsystem. Ist jetzt angepasst.

  5. ralph
    schrieb am 08.06.2011 um 12:26 Uhr

    Hey, bau dir mal einen Flattr Button ein.

    Gruß
    ralph

  6. Tom
    schrieb am 26.06.2012 um 11:47 Uhr

    Wenn einem:
    munin-node-configure –suggest

    für mysql_ folgendes sagt:
    [Missing dependency Cache::Cache]

    dann sollten man die Perl Caching Libs installieren:

    aptitude install libcache-cache-perl

  7. some12
    schrieb am 19.09.2012 um 10:03 Uhr

    hi!

    Wie kann man Datenbanken aus dem Chart (mysql_size_all) löschen, wenn diese auch aus mysql gelöscht wurden?
    Die Datenbanken sind nciht mehr vorhanden – munin-run mysql_size_all gibt diese auch cniht mehr aus, aber im graph sind diese weiterhin mit deren größe damals angegeben…

  8. Uwe Schräpler
    schrieb am 16.02.2013 um 13:25 Uhr

    Hallo und herzlichen Dank für Deine gute Anleitung, das hat definitiv meine Zeit gespart.

    Gruß aus Berlin

Kommentar schreiben

*

*