Ich versuche mithilfe eines Benutzerparameters in Zabbix zu überprüfen, ob MySql aktiv ist.
Der Benutzerparameter sieht folgendermaßen aus.
Benutzerparameter = mysql.ping, sudo mysqladmin ping | grep -c alive | wc -l
Wenn ich es mysqladmin ping | grep -c alive
auf dem Server ausführe, erhalte ich die richtige Antwort.
#mysqladmin ping | grep alive | wc -l
1
Aber wenn ich versuche, den Befehl als Zabbix-Benutzer auszuführen, wird der folgende Fehler angezeigt:
# sudo -u zabbix sudo mysqladmin ping | grep alive | wc -l mysqladmin: Verbindung zum Server bei ‚localhost‘ fehlgeschlagen, Fehler: ‚Zugriff für Benutzer ‚root‘@‚localhost‘ verweigert (mit >Passwort: NEIN)‘
0
Das Ausführen des Folgenden funktioniert:
# sudo -u zabbix mysqladmin
..Auflisten verschiedener Befehle in mysqladmin
Ich habe Zabbix zur Sudoers-Liste hinzugefügt, es ist kein Passwort erforderlich.
Das Problem betrifft nur MySQL, alle anderen Benutzerparameter (z. B. E-Mail, Laden usw.) funktionieren einwandfrei.
Antwort1
Diese ganze Mühe müssen Sie sich nicht machen. Sie können Ihren my.cnf- und Zabbix-Agenten mit UserParameter=mysql.status konfigurieren.
Hier ist die Lösung für Ihr Problem:
https://www.zabbix.com/forum/showthread.php?t=40870