Categories
Zabbix

Zabbix: MySql-Monitoring unter Ubuntu

Die Anleitung basiert auf den offiziellen Instruktionen von ZABBIX: https://www.zabbix.com/integrations/mysql

Bei der Ausführung und Weitergabe der Anleitung fanden wir jedoch heraus, dass man ein wenig Hintergrundwissen benötigt, um die Schritte umsetzen zu können.

Von einem an sich funktionierenden Zabbix-Agent wird hier ausgegangen.

  • Prüfen Sie über die Agent-Konfiguration, in welchem Ordner zusätzliche Configs eingelesen werden (Suchen nach “Include”-Parameter):
Include=/etc/zabbix/zabbix_agentd.d/*.conf
  • Erstellen Sie dort ein neues Config-File für mysql:
cd /etc/zabbix/zabbix_agentd.d/
nano userparameter_mysql.conf

… und fügen Sie folgenden Text ein …

#template_db_mysql.conf created by Zabbix for "Template DB MySQL" and Zabbix 4.2
#For OS Linux: You need create .my.cnf in zabbix-agent home directory (/var/lib/zabbix by default)
#For OS Windows: You need add PATH to mysql and mysqladmin and create my.cnf in %WINDIR%\my.cnf,C:\my.cnf,BASEDIR\my.cnf https://dev.mysql.com/doc/refman/5.7/en/option-files.html
#The file must have three strings:
#[client]
#user=zbx_monitor
#password=
#
UserParameter=mysql.ping[*], mysqladmin -h"$1" -P"$2" ping
UserParameter=mysql.get_status_variables[*], mysql -h"$1" -P"$2" -sNX -e "show global status"
UserParameter=mysql.version[*], mysqladmin -s -h"$1" -P"$2" version
UserParameter=mysql.db.discovery[*], mysql -h"$1" -P"$2" -sN -e "show databases"
UserParameter=mysql.dbsize[*], mysql -h"$1" -P"$2" -sN -e "SELECT SUM(DATA_LENGTH + INDEX_LENGTH) FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA='$3'"
UserParameter=mysql.replication.discovery[*], mysql -h"$1" -P"$2" -sNX -e "show slave status"
UserParameter=mysql.slave_status[*], mysql -h"$1" -P"$2" -sNX -e "show slave status"
  • Erstellen Sie in MySql einen Benutzer für Zabbix:
mysql -u  -p

> CREATE USER 'zbx_monitor'@'%' IDENTIFIED BY '[Neues Passwort für den User]';
> GRANT USAGE,REPLICATION CLIENT,PROCESS,SHOW DATABASES,SHOW VIEW ON *.* TO 'zbx_monitor'@'%';

… jetzt haben Sie einen Benutzer ‘zbx_monitor’ erstellt mit einem von Ihnen definierten Passwort (anstelle von [Neues Passwort für den User])

  • Nun kommt der Punkt, der von ZABBIX nicht erklärt wird: Die Verbindungsdaten müssen nun im Home-Laufwerk des Zabbix-Benutzers abgelegt werden. Das hat er jedoch standardmäßig nicht. Wir legen nun also dem Benutzer ein Home-Laufwerk an:
# Ordner anlegen
mkdir -p /var/lib/zabbix
# Berechtigung setzen
chown zabbix:zabbix /var/lib/zabbix
# Zabbix Agent stoppen (sonst gehts nicht)
service zabbix-agent stop
# Dem Zabbix-Benutzer das Homelaufwerk zuordnen
usermod -d /var/lib/zabbix zabbix
# Jetzt kann der Agent wieder gestartet werden
service zabbix-agent start
  • Jetzt kann die Verbindungsdatei hinterlegt werden:
nano /var/lib/zabbix/.my.cnf
[client]
user=zbx_monitor
password=[Neues Passwort für den User]

… das sollte es gewesen sein. Am Besten abschließend den Zabbix-Agent nochmal neustarten:

service zabbix-agent restart
Categories
Zabbix

Zabbix 4.0 Proxy (PostgreSQL) unter Ubuntu 18.04 LTS installieren

In dieser Anleitung wird davon ausgegangen, dass Ubuntu 18.04 bereits auf der Maschine installiert wurde. Weiter setzt die Anleitung eine funktionierende Internetverbindung auf dem Proxy voraus.

Um keine Probleme mit Berechtigungen zu bekommen, stellen Sie bitte sicher, dass Sie nun als Admin unterwegs sind:

sudo su

Zunächst laden wir uns dann das aktuelle Repository-Konfigurationspaket herunter:

wget https://repo.zabbix.com/zabbix/4.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_4.0-2+bionic_all.deb
dpkg -i zabbix-release_4.0-2+bionic_all.deb

Dann aktualisieren wir Paketinformationen:

apt-get update

Jetzt können wir das Proxy-Paket herunterladen und installieren:

apt-get install zabbix-proxy-pgsql

Anschließend aktivieren und starten wir den Proxy:

systemctl enable zabbix-proxy
systemctl start zabbix-proxy

Nun erstellen wir den PostgreSQL-Benutzer, der vom Proxy verwendet wird, um auf die lokale Datenbank zuzugreifen. Sie werden nach Eingabe der Zeile wiederholt um die Eingabe des Kennworts für den User gebeten. “zabbix” beschreibt den Benutzernamen, der natürlich variieren kann.

sudo -u postgres createuser --pwprompt zabbix

Im nächsten Schritt erstellen wir die Datenbank für den Proxy. Wir nennen diese im Beispiel ebenfalls “zabbix”:

sudo -u postgres createdb -O zabbix -E Unicode -T template0 zabbix

Dann wenden wir das von Zabbix mitgelieferte Schema auf die Datenbank an:

zcat /usr/share/doc/zabbix-proxy-pgsql/schema.sql.gz | sudo -u zabbix psql zabbix

Im letzten Schritt passen wir die Zabbix Proxy-Konfiguration an:

nano /etc/zabbix/zabbix_proxy.conf

Folgende Parameter müssen angepasst werden:

# IP oder FQDN des Hauptservers
Server=192.168.1.20
# Hostname des Proxies
Hostname=ZBX-PROXY
# DBHost muss wirklich leer bleiben, also wie abgebildet
DBHost=
# Name der Datenbank
DBName=zabbix
# Zuvor definierter Benutzer, den der Proxy zur DB-Verbindung verwendet
DBUser=zabbix
# Zuvor definiertes Passwort, das der Proxy zur DB-Verbindung verwendet
DBPassword=*******

Im Anschluss können wir den Zabbix Proxy einmal neustarten:

service zabbix-proxy restart

Bei Bedarf können mit folgender Zeile die Logfile-Einträge des Proxys in Echtzeit ausgegeben werden:

tail -f /var/log/zabbix/zabbix_proxy.log

Damit sollte die Installation abgeschlossen sein und Sie können den Proxy in Ihrer Zabbix-Oberfläche einrichten.

Categories
Linux CentOS Zabbix

CentOS Zabbix Proxy: Neustartskript

Wir haben mehrere CentOS-basierte Zabbix-Proxies. Damit diese auch nach dem Neustart noch ihren Zweck erfüllen und nicht irgendwie in der Luft hängen, haben sich folgende Schritte etabliert.

nano /etc/rc.d/rc.local

Hinter diesem Pfad verbirgt sich ein Startup-Script. Dieses kann schon einige Zeilen enthalten. Wir ergänzen es einfach um folgende Einträge:

# eth1 ist die NIC in unser Netzwerk. eth0 ist die NIC mit Default Gateway in das zu überwachende Netz
# Zu Beginn starten wir diese NIC einmal neu, um sicherzustellen, dass sie aktiv ist
ifdown eth1
ifup eth1

# Dann setzen wir die Route für das Netz, in dem der Zabbix-Server letztendlich steht
ip route add [MgmtNetz]/[Hostbits] via [IP des Gateways der NIC] dev eth1 proto static metric 10
# Bsp.: ip route add 192.168.1.0/24 via 172.16.1.1 dev eth1 proto static metric 10

# SELinux Konfiguration “Eine Bastion gegen Angriffe”
setsebool zabbix_can_network 1
setsebool httpd_can_connect_zabbix 1

# Sicherstellen dass die Dienste laufen
systemctl start zabbix-proxy
systemctl start zabbix-agent
systemctl start postgresql

Anschließend stellen wir sicher, dass das Script ausführbar ist:

chmod +x /etc/rc.d/rc.local

Damit sollte der Proxy künftige Neustarts überleben.

Categories
Zabbix

Zabbix unter Ubuntu – Probleme mit der Link-Local Route

Nach jedem Neustart des Servers wird die Link-Local Route wieder erstellt. Dies führt dazu, dass die Cisco Geräte nicht mehr via SNMP überwacht werden können.

Das Problem kann durch folgenden Befehl gelöst werden:

route del link-local netmask 255.255.0.0

Da dies die Route nur bis zum nächsten Neustart entfernt, empfiehlt sich die Eintragung des Befehls in der Autostart-Datei “/etc/init.d/boot.local”.