4 Encodage des valeurs renvoyées

Le serveur Zabbix s’attend à ce que chaque valeur textuelle renvoyée soit encodée en UTF8. Cela concerne tous les types de contrôles : agent Zabbix, SSH, Telnet, etc.

Différents systèmes/appareils surveillés et différents contrôles peuvent renvoyer des caractères non ASCII dans la valeur. Dans de tels cas, presque toutes les clés zabbix possibles contiennent un paramètre de clé d’élément supplémentaire - <encoding>. Ce paramètre de clé est facultatif, mais il doit être spécifié si la valeur renvoyée n’est pas encodée en UTF8 et qu’elle contient des caractères non ASCII. Sinon, le résultat peut être inattendu et imprévisible.

Une description du comportement avec différents backends de base de données dans de tels cas suit.

MySQL

Si une valeur contient un caractère non-ASCII avec un encodage non UTF8, ce caractère et les suivants seront ignorés lorsque la base de données stockera cette valeur. Aucun message d'avertissement ne sera écrit dans zabbix_server.log.
Pertinent pour au moins MySQL version 5.1.61

PostgreSQL

Si une valeur contient un caractère non-ASCII avec un encodage non UTF8, une requête SQL échouée (PGRES_FATAL_ERROR:ERROR invalid byte sequence for encoding) et les données ne seront pas stockées. Un message d'avertissement approprié sera écrit dans zabbix_server.log.
Pertinent pour au moins la version 9.1.3 de PostgreSQL.