Sidebar

Zabbix Summit 2022
Register for Zabbix Summit 2022

4 Kodowanie zwracanych wartości

Serwer Zabbix oczekuje każdej zwracanej wartości tekstowej w kodowaniu UTF8. Odnosi się to do każdego typu sprawdzenia: agent zabbix, ssh, telnet, itd..

Różne monitorowane systemy/urządzenia oraz sprawdzenia mogą zwracać w wartościach znaki spoza kodu ASCII. W takich przypadkach, prawie wszystkie możliwe klucze zabbix posiadają dodatkowy parametr klucza pozycji - <kodowanie>. Ten parametr klucza jest opcjonalny, ale powinno się go określić, gdy zwracane wartości nie są kodowane w UTF-8 i zawierają znaki spoza kodu ASCII. W przeciwnym przypadku wynik może być nieoczekiwany i nieprzewidywalny.

Poniżej znajduje się opis zachowań dla różnych baz, występujących w takich przypadkach.

MySQL

Jeżeli wartość zawiera znak spoza kodu ASCII i nie w kodowaniu UTF8 - znak ten oraz wszystkie za nim będą pominięte przy zapisie wartości do bazy. Nie będzie żadnego ostrzeżenia w zabbix_server.log.
Dotyczy na przykład MySQL w wersji 5.1.61

PostgreSQL

Jeżeli wartość zawiera znak spoza kodu ASCII i nie w kodowaniu UTF8 - spowoduje to odrzucenie zapytania SQL (PGRES_FATAL_ERROR:ERROR invalid byte sequence for encoding) i dane nie zostaną zapisane. Odpowiedni komunikat ostrzeżenia zostanie zapisany w zabbix_server.log.
Dotyczy na przykład PostgreSQL w wersji 9.1.3