4 Kodierung von zurückgegebenen Werten

Der Zabbix Server erwartet jeden zurückgegebenen Textwert in der UTF8-Kodierung. Dies betrifft alle Arten von Prüfungen: Zabbix Agent, SSH, Telnet usw.

Verschiedene überwachte Systeme/Geräte und Prüfungen können Nicht-ASCII-Zeichen im Wert zurückgeben. Für solche Fälle enthalten fast alle möglichen zabbix-Schlüssel einen zusätzlichen Datenpunkt-Schlüsselparameter – <encoding>. Dieser Schlüsselparameter ist optional, sollte jedoch angegeben werden, wenn der zurückgegebene Wert nicht in UTF8 kodiert ist und Nicht-ASCII-Zeichen enthält. Andernfalls kann das Ergebnis unerwartet und unvorhersehbar sein.

Im Folgenden wird das Verhalten bei verschiedenen Datenbank-Backends in solchen Fällen beschrieben.

MySQL

Wenn ein Wert ein Nicht-ASCII-Zeichen in einer Nicht-UTF8-Kodierung enthält, wird dieses Zeichen und alles Folgende verworfen, wenn die Datenbank diesen Wert speichert. In die zabbix_server.log werden keine Warnmeldungen geschrieben.
Relevant mindestens für MySQL-Version 5.1.61

PostgreSQL

Wenn ein Wert ein Nicht-ASCII-Zeichen in einer Nicht-UTF8-Kodierung enthält, führt dies zu einer fehlgeschlagenen SQL-Abfrage (PGRES_FATAL_ERROR:ERROR invalid byte sequence for encoding), und die Daten werden nicht gespeichert. Eine entsprechende Warnmeldung wird in die zabbix_server.log geschrieben.
Relevant mindestens für PostgreSQL-Version 9.1.3