Menü Schließen

Zabbix Agent MySQL Konfiguration

Zabbix Logo

Zabbix wird in diesem Howto in Version 3.0.4 eingesetzt. Ziel ist es MySQL bzw. MariaDB zu monitoren. Das notwendige Template “App MySQL” liefert Zabbix bereits bei der Installation mit. Folgende Daten können nach erfolgreicher Konfiguration und Auswertung durch den Agent angezeigt werden:

Graph – MySQL operations

  • MySQL begin operations per second
  • MySQL commit operations per second
  • MySQL delete operations per second
  • MySQL insert operations per second
  • MySQL rollback operations per second
  • MySQL select operations per second
  • MySQL update operations per second

Graph – MySQL bandwidth

  • MySQL  bytes received per second
  • MySQL bytes sent per second

Anmerkung

Wer den Installationszustand des Templates “App MySQL” verwendet, wird “No Data” im Graph sehen. D.h. hier muss eine minimale Konfiguration erfolgen, die ich nachfolgend beschreibe:

Zabbix Agent MySQL / MariaDB Konfiguration

Situation

  • Zabbix Agent liegt im Verzeichnis “/etc/zabbix/zabbix_agentd.conf”
  • Zabbix Konfigurationsdatei für MySQL liegt entspr. in “/etc/zabbix/zabbix_agentd.d/userparameter_mysql.conf”

Anpassen der Konfiguration des Zabbix Agent

  • aktivieren von “Include=/etc/zabbix/zabbix_agentd.d/”

Inhalt der “userparameter_mysql.conf”

UserParameter=mysql.status[*],echo “show global status where Variable_name=’$1′;” | HOME=/etc/zabbix mysql -N | awk ‘{print $$2}’

UserParameter=mysql.size[*],bash -c ‘echo “select sum($(case “$3″ in both|””) echo “data_length+index_length”;; data|index) echo “$3_length”;; free) echo “data_free”;; esac)) from information_schema.tables$([[ “$1” = “all” || ! “$1″ ]] || echo ” where table_schema=\”$1\””)$([[ “$2” = “all” || ! “$2” ]] || echo “and table_name=\”$2\””);” | HOME=/etc/zabbix mysql -N’

UserParameter=mysql.ping,HOME=/etc/zabbix mysqladmin ping | grep -c alive
UserParameter=mysql.version,mysql -V

Hinterlegen und Anpassen der .my.cnf für den Zugriff auf MySQL

  • laut userparameter_mysql.conf schaut Zabbix in das Verzeichnis “/var/lib/zabbix”
  • dies kann angepasst werden, z.B. auf “/etc/zabbix/”
  • in diesem Verzeichnis eine Datei .my.cnf anlegen oder vorhandene anpassen

Inhalt der .my.cnf in dem konfiguriertem Verzeichnis:

[client]
user=MySQL-User
password=

Als Benutzer kann auch der bereits vorhandene User zabbix  verwendet werden. Dieser muss dann auch für die Datenbanketnsprechend eingerichtet und berechtigt werden.

Abschließend ist der Zabbix-Agent noch neuzustarten:

  • # /etc/init.d/zabbix-agent restart

Danach kann man im Log des Zabbix-Server unter “/var/log/zabbix_server.log”, den Support für MySQL gut beobachten:

item “zabbix-client:mysql.ping” became supported
item “zabbix-client:mysql.status[Bytes_received]” became supported
item “zabbix-client:mysql.status[Bytes_sent]” became supported
item “zabbix-client:mysql.status[Com_begin]” became supported
item “zabbix-client:mysql.status[Com_commit]” became supported
item “zabbix-client:mysql.status[Com_delete]” became supported
item “zabbix-client:mysql.status[Com_insert]” became supported
item “zabbix-client:mysql.status[Com_rollback]” became supported
item “zabbix-client:mysql.status[Com_select]” became supported
item “zabbix-client:mysql.status[Com_update]” became supported
item “zabbix-client:mysql.status[Questions]” became supported
item “zabbix-client:mysql.status[Slow_queries]” became supported
item “zabbix-client:mysql.status[Uptime]” became supported

Zabbix Agent Command Line Test

# zabbix_agentd -t “mysql.version”
mysql.version [t|mysql Ver 15.1 Distrib 10.0.27-MariaDB, for debian-linux-gnu (x86_64) using readline 5.2]

Fehler: # zabbix_agentd -t mysql.ping
mysql.ping [t|mysqladmin: connect to server at ‘localhost’ failed
error: ‘Access denied for user ‘root’@’localhost’ (using password: NO)’ 0]

Erfolgreich: # zabbix_agentd -t mysql.ping
mysql.ping [t|1]

Schreibe einen Kommentar

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