On this page
返回值的编码
服务器期望每个返回的文本值都采用 UTF8 编码。 这适用于任何类型的检查:Zabbix agent、SSH、Telnet 等。
不同的被监控系统/设备和检查可能会在返回值中包含非 ASCII 字符。对于这种情况,几乎所有可能的 zabbix key 都包含一个额外的监控项 key 参数 - <encoding>。这个 key 参数是可选的,但如果返回值不是 UTF8 编码且包含非 ASCII 字符, 则应指定该参数。否则,结果可能会出乎意料且不可预测。
下面将说明在这种情况下不同数据库后端的行为。
MySQL
如果某个值在非 UTF8 编码中包含非 ASCII 字符,则在数据库存储该值时,此字符及其后续内容将被丢弃。不会向 zabbix_server.log 写入任何警告消息。
至少适用于 MySQL 5.1.61 版本。
PostgreSQL
如果某个值在非 UTF8 编码中包含非 ASCII 字符,这将导致 SQL 查询失败(PGRES_FATAL_ERROR:ERROR invalid byte sequence for encoding),并且数据不会被存储。相应的警告信息将写入 zabbix_server.log。
至少适用于 PostgreSQL 9.1.3 版本。