Zabbix: Fehler nach Upgrade auf 4.2

Fehler im Zabbix-Frontend

„The frontend does not match Zabbix database. Current database version (mandatory/optional): 4010005/4010005. Required mandatory version: 40200000. Contact your system administrator.“

Diese nette Fehlermeldung hat mich heute nach dem Upgrade meines Zabbix Server auf Version 4.2 begrüßt.

Im Log des Servers habe ich dann den entscheidenden Hinweis gefunden, wieso das automatische Upgrade der Datenbank nicht funktioniert hatte:

[Z3005] query failed: [1071] Specified key was too long; max key length is 767 bytes [create unique index lld_macro_path_1 on lld_macro_path (itemid,lld_macro)]

Letzten Endes hatte ich offenbar beim damaligen Erstellen der Datenbank für Zabbix nicht gut genug aufgepasst und das Charset/die Kollation falsch gesetzt. Sollte euch das auch passiert sein: keine Panik!

Ihr könnt die Datenbank mit zwei einfachen Befehlen auf die empfohlenen Optionen utf8/utf8_bin umstellen, vorher sollte natürlich unbedingt ein Backup der Datenbank stattfinden!

# Herausfinden, ob das falsche Charset gewählt ist
SELECT default_character_set_name FROM information_schema.SCHEMATA S WHERE schema_name = "zabbix";

# Alle Tabellen der Datenbank "zabbix" umstellen
mysql --database=zabbix -B -N -e "SHOW TABLES" | awk '{print "SET foreign_key_checks = 0; ALTER TABLE", $1, "CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin; SET foreign_key_checks = 1; "}' | mysql --database=zabbix

# Die eigentliche Datenbank "zabbix" umstellen
ALTER DATABASE zabbix CHARACTER SET utf8 COLLATE utf8_bin;

Wurden die Befehle korrekt ausgeführt, könnt ihr den Zabbix Server neugestartet werden und das Log sollte nun das korrekt gelaufene Datenbank-Upgrade ausspucken – und das Frontend wieder erreichbar sein.

Hetzner und Proxmox: IPv6 mit Router-VM nutzen

For a english version of this article follow this link.

Nachdem meine Anleitung zur Einrichtung einer pfSense-Router-VM bei Hetzner so gut angekommen ist, möchte ich heute erläutern, wie man mit dieser VM auch das von Hetzner zugewiesene IPv6 nutzen kann.

Vorwort

Ich habe inzwischen dem pfSense-Projekt den Rücken gekehrt und bin voll auf OPNSense umgestiegen. Die Gründe hierfür sind vielfältig, in erster Linie gefällt mir aber das Interface der OPNSense einfach viel besser. Ob man nun aber eine pfSense- oder eine OPNSense-VM nutzt, dürfte völlig unerheblich sein – einzig die Menüpunkte könnten an unterschiedlichen Orten zu finden sein.

Hetzner weist jedem dedizierten Server ein /64-IPv6-Netzwerk zu, das man frei auf seine MAC-Adressen routen lassen kann. Hierzu muss man im Robot auf den kleinen Computer hinter dem IPv6-Subnet klicken. Hier stellen wir das Routing um auf die MAC-Adresse der Router-VM.

Konfiguration WAN-Interface

Die Konfiguration des WAN-Interface ist sehr einfach, daher möchte ich nur einen Screenshot vorzeigen:

Konfiguration des WAN-Interface für IPv6
Konfiguration des WAN-Interface für IPv6

Wie man sieht nutzen wir hier DHCP6 und lassen uns die IP-Adressse für das WAN von Hetzner zuweisen. Bei mir war ein Neustart der VM nötig, nachdem ich IPv6 auf dem WAN aktiviert habe. Im Dashboard sieht man die frisch zugewiesene IPv6-Adressen am WAN-Interface – in meinem Fall war das die fe80::250:56ff:fe00:222c.

Die DHCPv6-Client-Konfiguration (Request only an IPv6 prefix, Send IPv6 prefix hint und Use IPv4 connectivity) müssen unbedingt gesetzt werden – ohne diese Optionen hatte ich keinen Erfolg.

Konfiguration LAN-Interface

Auch hier möchte ich einen Screenshot nutzen, um die Konfiguration zu zeigen.

Konfiguration des LAN-Interface für IPv6
Konfiguration des LAN-Interface für IPv6

Als IPv6-Adresse nutzt ihr am besten die erste IPv6-Adresse aus dem von Hetzner zugewiesenen Subnet (bei mir: 2a01:4f9:2a:129e:: / 64). Weitere Einstellungen sind hier nicht notwendig!

Gateway-Konfiguration

Bei mir kam die OPNSense dann leider nicht immer nicht per IPv6 nach außen, weshalb ich noch einige Zeit gerätselt habe, was da nun los ist.

Unter System -> Gateways war dann der Fehler versteckt. Hier habe ich das Gateway entsprechend angepasst:

Konfiguration des Gateway für IPv6
Konfiguration des Gateway für IPv6

Ber mir war das Gateway nicht als Default Gateway gesetzt und ich habe die statische IPv6-Adresse eingetragen, statt das Gateway auf „dynamic“ zu belassen – das eigentliche Problem resultierte aber aus dem fehlenden Default Gateway.

Nach Abschluss der Arbeiten habe ich einen Neustart der OPNSense durchgeführt und erneut die IPv6-Erreichbarkeit getestet: mit Erfolg.

Konfiguration einer VM

Abschließend möchte ich noch zeigen, wie man eine Ubuntu- bzw. Windows-VM in diesem Setup per IPv6 erreichbar macht. Ich habe mich gegen die Nutzung von DHCP6 im internen Netz entschieden und konfiguriere die virtuellen Maschinen statisch.

Konfiguration Ubuntu/Debian

Die Konfiguration einer Ubuntu-/Debian-VM ist gewohnt einfach zu bewerkstelligen. Hierzu fügen wir in der Datei /etc/network/interfaces unseren IPv6-Konfigurationsblock ein:

iface ens18 inet6 static
    address 2a01:4f9:2a:129e::2 # frei wählbare IPv6-Adresse
    netmask 64
    gateway 2a01:4f9:2a:129e::1 # IPv6-Adresse der pfSense/OPNSense

Ziemlich simpel, nicht?

Konfiguration Windows

Auch die Konfiguration der Windows-VM ist ausnahmsweise ziemlich simpel. Man aktiviert in den Adaptereinstellungen IPv6, falls das noch nicht geschehen ist, und trägt dort die selben Daten ein, wie unter Linux:

  • Adresse: frei wählbare IPv6-Adresse aus dem Subnet
  • Subnetzmaske: /64
  • Gateway: IPv6-Adresse der pfSense/OPNSense

Bei beiden Konfigurationen muss man womöglich noch einen oder mehrere IPv6-Nameserver eintragen, damit die Namensauflösung ordentlich klappt.

Fazit

Im Internet liest man viele Horrorgeschichten über die Konfiguration von IPv6 bei Hetzner – beschäftigt man sich allerdings mal mit dem ganzen Setup ist die Einrichtung letztlich gar nicht schwierig und ziemlich flott erledigt.

Gerne beantworte ich Fragen oder nehme Hinweise zu meinem Setup entgegen. Perfekt ist es sicher nicht, das weiß ich, aber es funktioniert bei mir zuverlässig, weshalb ich darüber eigentlich ganz glücklich bin. Sollte dennoch jemand einen guten Tipp parat haben: gerne ab in die Kommentare damit!

Übrigens: diese Website ist nun auch per IPv6 erreichbar… ;-)

PHP 7.2 unter Debian 9

PHP wurde Ende letzten Jahres in Version 7.2 veröffentlicht und hat damit einen weiteren Meilenstein hinter sich gebracht. Wer jetzt schon die neuen Funktionen nutzen oder einfach nur aktuell sein will, kann PHP 7.2 unter Debian Stretch ganz einfach nachinstallieren.

Ondřej Surý stellt die aktuellsten Pakete in einem Repository zur Verfügung – man muss also zum Glück nicht selbst kompilieren. Um die Pakete zu nutzen, reichen folgende Schritte aus:

wget -q -O- https://packages.sury.org/php/apt.gpg | apt-key add -
echo "deb https://packages.sury.org/php/ stretch main" | tee /etc/apt/sources.list.d/php.list
apt-get update

Vor dem eigentlichen Upgrade kann man sich kurz die aktuell installierten PHP-Pakete anschauen (z.B. mit dpkg -l | grep php) und die entsprechenden Pakete mit vorangestelltem php7.2 installieren. Beispiel gefällig?

apt install php7.2 php7.2-cli php7.2-common php7.2-curl php7.2-gd php7.2-json php7.2-mbstring \
php7.2-mysql php7.2-opcache php7.2-readline php7.2-xml libapache2-mod-php7.2

Diese Paketliste ist mit Sicherheit nicht für alle Systeme gültig, daher gilt wie immer: erst denken, dann abschreiben! Ich habe danach die alten php7.0-Pakete mit apt entfernt.

Microsoft Modern Keyboard mit Fingerabdruck-ID

Microsoft ist ja schon seit recht langer Zeit auch Hersteller von ziemlich beliebter Computer-Peripherie – die Intellimouse sollte wohl jedem PC-Benutzer ein Begriff sein.

Der Hersteller aus Redmond hat in letzter Zeit aber nicht nur die Intellimouse Classic auf den Markt geworfen, sondern auch eine neue Tastatur mit dem sperrigen Namen „Microsoft Modern Keyboard mit Fingerabdruck-ID“. Ich habe mir die Tastatur bestellt und sie ausgiebig getestet.

Weiterlesen…Microsoft Modern Keyboard mit Fingerabdruck-ID