Table of Contents

6 返回值编码

Zabbix server 要求所有返回的文本值都采用UTF8编码。 这适用于任何类型的检查:Zabbix agent、ssh、telnet等。

不同的被监控系统/设备和检查可能会在返回值中包含非ASCII字符。对于这种情况,几乎所有可能的zabbix键值都包含一个额外的监控项键参数——<encoding>。这个键参数是可选的,但如果返回值不是UTF8编码且包含非ASCII字符,则应指定该参数。否则结果可能会出乎意料且不可预测。

接下来描述在这种情况下不同数据库后端的行为。

MySQL

如果值中包含非UTF8编码的非ASCII字符 - 当数据库存储该值时,此字符及其后续内容将被丢弃。系统不会在zabbix_server.log中写入任何警告信息。
此情况至少适用于MySQL version 5.1.61版本

PostgreSQL

如果值包含非UTF8编码的非ASCII字符 - 这将导致SQL query失败(PGRES_FATAL_ERROR:ERROR 无效的字节序列编码)且数据不会被存储。相应的警告信息将被写入zabbix_server.log文件。
至少适用于PostgreSQL version 9.1.3版本