Найти в Дзене
0x41lex

Проблема с кодировкой zabbix и как ее решить

После обновления zabbix до версии 5.2 появились ошибки в кодировке. Невозможно сохранить коменнатрии к событиям в кирилице, постоянно возникают ошибки в выполнении запросов к SQL, появляются знаки вопроса вместо русских букв. Ошибки могут быть отображены в разделе «Отчеты»-«Информация о системе».
Как это лечить? Очень просто. Ошибки появляются в связи с применением в таблицах кодировки latin1,

После обновления zabbix до версии 5.2 появились ошибки в кодировке. Невозможно сохранить коменнатрии к событиям в кирилице, постоянно возникают ошибки в выполнении запросов к SQL, появляются знаки вопроса вместо русских букв. Ошибки могут быть отображены в разделе «Отчеты»-«Информация о системе».

Zabbix. Сведения о системе.
Zabbix. Сведения о системе.

Как это лечить? Очень просто. Ошибки появляются в связи с применением в таблицах кодировки latin1, вместо utf8. Решаю проблему следующим образом:

1. Открываем консоль и соединяемся с MySQL, для этого вводим

root@zabbix:/home/user# mysql -u root –p

и вводим пароль от базы SQL

Рабочая консоль
Рабочая консоль

2. Находим и выбираем нашу базу

mysql> show databases;

-3

mysql> use zabbix;

-4

3. Для проверки текущего состояния можем отобразить кодировку

mysql> show variables like 'character_set_database';

в выводе видим графе value значение latin1

-5

4. Отобразим все таблицы базы данных zabbix

mysql> show tables;

-6

У меня их получилось 170. От версии к версии их количество может меняться.

5. Меняем кодировки этих таблиц (сведения верные для zabbix версии 5.2) на utf8_bin

ALTER TABLE acknowledges CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;

ALTER TABLE actions CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;

ALTER TABLE alerts CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;

ALTER TABLE application_discovery CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;

ALTER TABLE application_prototype CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;

ALTER TABLE application_template CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;

ALTER TABLE applications CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;

ALTER TABLE auditlog CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;

ALTER TABLE auditlog_details CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;

ALTER TABLE autoreg_host CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;

ALTER TABLE conditions CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;

ALTER TABLE config CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;

ALTER TABLE config_autoreg_tls CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;

ALTER TABLE corr_condition CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;

ALTER TABLE corr_condition_group CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;

ALTER TABLE corr_condition_tag CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;

ALTER TABLE corr_condition_tagpair CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;

ALTER TABLE corr_condition_tagvalue CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;

ALTER TABLE corr_operation CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;

ALTER TABLE correlation CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;

ALTER TABLE dashboard CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;

ALTER TABLE dashboard_user CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;

ALTER TABLE dashboard_usrgrp CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;

ALTER TABLE dbversion CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;

ALTER TABLE dchecks CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;

ALTER TABLE dhosts CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;

ALTER TABLE drules CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;

ALTER TABLE dservices CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;

ALTER TABLE escalations CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;

ALTER TABLE event_recovery CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;

ALTER TABLE event_suppress CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;

ALTER TABLE event_tag CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;

ALTER TABLE events CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;

ALTER TABLE ALTER TABLE expressions CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;

ALTER TABLE ALTER TABLE functions CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;

ALTER TABLE globalmacro CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;

ALTER TABLE globalvars CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;

ALTER TABLE graph_discovery CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;

ALTER TABLE graph_theme CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;

ALTER TABLE graphs CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;

ALTER TABLE graphs_items CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;

ALTER TABLE group_discovery CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;

ALTER TABLE group_prototype CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;

ALTER TABLE history CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;

ALTER TABLE history_log CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;

ALTER TABLE history_str CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;

ALTER TABLE history_text CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;

ALTER TABLE history_uint CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;

ALTER TABLE host_discovery CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;

ALTER TABLE host_inventory CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;

ALTER TABLE host_tag CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;

ALTER TABLE hostmacro CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;

ALTER TABLE hosts CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;

ALTER TABLE hosts_groups CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;

ALTER TABLE hosts_templates CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;

ALTER TABLE housekeeper CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;

ALTER TABLE hstgrp CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;

ALTER TABLE httpstep CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;

ALTER TABLE httpstep_field CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;

ALTER TABLE httpstepitem CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;

ALTER TABLE httptest CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;

ALTER TABLE httptest_field CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;

ALTER TABLE httptestitem CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;

ALTER TABLE icon_map CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;

ALTER TABLE icon_mapping CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;

ALTER TABLE ids CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;

ALTER TABLE images CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;

ALTER TABLE interface CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;

ALTER TABLE interface_discovery CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;

ALTER TABLE interface_snmp CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;

ALTER TABLE item_application_prototype CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;

ALTER TABLE item_condition CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;

ALTER TABLE item_discovery CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;

ALTER TABLE item_parameter CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;

ALTER TABLE item_preproc CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;

ALTER TABLE item_rtdata CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;

ALTER TABLE items CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;

ALTER TABLE items_applications CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;

ALTER TABLE lld_macro_path CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;

ALTER TABLE lld_override CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;

ALTER TABLE lld_override_condition CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;

ALTER TABLE lld_override_opdiscover CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;

ALTER TABLE lld_override_operation CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;

ALTER TABLE lld_override_ophistory CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;

ALTER TABLE lld_override_opinventory CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;

ALTER TABLE lld_override_opperiod CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;

ALTER TABLE lld_override_opseverity CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;

ALTER TABLE lld_override_opstatus CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;

ALTER TABLE lld_override_optag CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;

ALTER TABLE lld_override_optemplate CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;

ALTER TABLE lld_override_optrends CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;

ALTER TABLE maintenance_tag CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;

ALTER TABLE maintenances CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;

ALTER TABLE maintenances_groups CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;

ALTER TABLE maintenances_hosts CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;

ALTER TABLE maintenances_windows CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;

ALTER TABLE mappings CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;

ALTER TABLE media CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;

ALTER TABLE media_type CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;

ALTER TABLE media_type_message CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;

ALTER TABLE media_type_param CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;

ALTER TABLE module CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;

ALTER TABLE opcommand CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;

ALTER TABLE opcommand_grp CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;

ALTER TABLE opcommand_hst CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;

ALTER TABLE opconditions CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;

ALTER TABLE operations CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;

ALTER TABLE opgroup CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;

ALTER TABLE opinventory CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;

ALTER TABLE opmessage CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;

ALTER TABLE opmessage_grp CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;

ALTER TABLE opmessage_usr CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;

ALTER TABLE optemplate CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;

ALTER TABLE problem CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;

ALTER TABLE problem_tag CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;

ALTER TABLE profiles CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;

ALTER TABLE proxy_autoreg_host CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;

ALTER TABLE proxy_dhistory CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;

ALTER TABLE proxy_history CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;

ALTER TABLE regexps CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;

ALTER TABLE rights CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;

ALTER TABLE role CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;

ALTER TABLE role_rule CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;

ALTER TABLE screen_user CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;

ALTER TABLE screen_usrgrp CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;

ALTER TABLE screens CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin; CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;

ALTER TABLE screens_items CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;

ALTER TABLE scripts CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;

ALTER TABLE service_alarms CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;

ALTER TABLE services CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;

ALTER TABLE services_links CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;

ALTER TABLE services_times CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;

ALTER TABLE sessions CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;

ALTER TABLE slides CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;

ALTER TABLE slideshow_user CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;

ALTER TABLE slideshow_usrgrp CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;

ALTER TABLE slideshows CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;

ALTER TABLE sysmap_element_trigger CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;

ALTER TABLE sysmap_element_url CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;

ALTER TABLE sysmap_shape CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;

ALTER TABLE sysmap_url CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;

ALTER TABLE sysmap_user CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;

ALTER TABLE sysmap_usrgrp CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;

ALTER TABLE sysmaps CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;

ALTER TABLE sysmaps_elements CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;

ALTER TABLE sysmaps_link_triggers CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;

ALTER TABLE sysmaps_links CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;

ALTER TABLE tag_filter CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;

ALTER TABLE task CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;

ALTER TABLE task_acknowledge CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;

ALTER TABLE task_check_now CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;

ALTER TABLE task_close_problem CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;

ALTER TABLE task_data CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;

ALTER TABLE task_remote_command CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;

ALTER TABLE task_remote_command_result CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;

ALTER TABLE task_result CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;

ALTER TABLE timeperiods CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;

ALTER TABLE trends CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;

ALTER TABLE trends_uint CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;

ALTER TABLE trigger_depends CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;

ALTER TABLE trigger_discovery CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;

ALTER TABLE trigger_queue CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;

ALTER TABLE trigger_tag CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;

ALTER TABLE triggers CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;

ALTER TABLE users CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;

ALTER TABLE users_groups CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;

ALTER TABLE usrgrp CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;

ALTER TABLE valuemaps CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;

ALTER TABLE widget CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;

ALTER TABLE widget_field CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;

6. Проверяем установку кодировки

mysql> SHOW CREATE TABLE history;

-7

7. Меняем кодировку для самой базы данных zabbix

mysql> ALTER DATABASE zabbix DEFAULT CHARACTER SET utf8;

-8

8. Проверяем корректность отображения, открываем web интерфейс zabbix и видим ошибок нет

-9

Подписывайтесь, ставьте лайки и просто поддержите, Ваш 0x41lex