6 Кодування повернених значень

Сервер Zabbix очікує кожне повернуте текстове значення в кодуванні UTF8. Це стосується будь-якого типу перевірок: zabbix agent, ssh, telnet тощо.

Різні контрольовані системи/пристрої та перевірки можуть повертати символи, відмінні від ASCII, у значенні. Для таких випадків майже всі можливі ключі zabbix містять додатковий параметр ключа елемента - <encoding>. Цей ключовий параметр необов’язковий, але його слід вказати, якщо повернуте значення не в кодуванні UTF8 і містить символи, відмінні від ASCII. Інакше результат може бути неочікуваним і непередбачуваним.

Нижче наведено опис поведінки з різними серверними частинами бази даних у таких випадках.

MySQL

Якщо значення містить символ, відмінний від ASCII, у кодуванні, відмінному від UTF8, цей символ і наступні символи буде відкинуто, коли база даних збереже це значення. На адресу не надходитимуть жодні попереджувальні повідомлення zabbix_server.log.
Актуально принаймні для версії MySQL 5.1.61

PostgreSQL

Якщо значення містить символ, відмінний від ASCII, у кодуванні, відмінному від UTF8, це призведе до помилки SQL-запиту (PGRES_FATAL_ERROR:ERROR недійсна послідовність байтів для кодування), і дані не будуть збережені. Відповідне попередження буде записано в zabbix_server.log.
Актуально принаймні для PostgreSQL версії 9.1.3