Исправление проблемы с кириллицей в Zabbix
Каждый, кто ставил Zabbix сервер столкнулся с проблемой кодировки в Web GUI интерфейсе, весь русский текст показывается в виде вопросов. Проблема кроется в стандартных кодировках таблиц БД, изменением которой и займемся для её исправления.
Нам необходимо конвертировать кодировку таблиц и данных в них из latin1 в UTF-8.
Первым делом останавливаем zabbix-server:
1 2 3 4 5 | /etc/init.d/zabbix-server stop или systemctl stop zabbix-server или service zabbix-server stop |
Далее необходимо сделать дамп базы данных
1 | mysqldump -u root -p --ignore-table=zabbix.history --ignore-table=zabbix.history_uint --ignore-table=zabbix.images --default-character-set=latin1 -c --insert-ignore --skip-set-charset -r z1.sql zabbix |
Как видно, мы исключили 3 таблицы из дампа, т.к. они не содержат строк, а на таблице images у меня падал mysql сервер при импорте измененного дампа.
Эти три таблицы мы заносим в отдельный дамп, который не будем модифицировать
1 | mysqldump -u root -p --default-character-set=latin1 -c --insert-ignore --skip-set-charset -r z4.sql zabbix zabbix.history zabbix.history_uint zabbix.images |
Настоятельно рекомендую сохранить исходные дампы для возможности отката
Меняем кодировку всех записей в дампе z1.sql
1 | iconv -f ISO8859-1 -t UTF-8 z1.sql > z2.sql |
Заменяем все упоминания кодировок в дампе z2.sql
1 | cat z2.sql |sed -e 's/ CHARSET=latin1/ CHARSET=utf8/g' > z3.sql |
Пересоздаем БД для того, чтобы очистить её от всех таблиц и создать в необходимой кодировке
1 | mysql -u root -p --execute="DROP DATABASE zabbix; CREATE DATABASE zabbix CHARACTER SET utf8 COLLATE utf8_general_ci;" |
Загружаем дамп z4.sql в БД
1 | mysql -u root --max_allowed_packet=16M -p --default-character-set=utf8 zabbix < z4.sql |
Загружаем дамп z3.sql в БД
1 | mysql -u root --max_allowed_packet=16M -p --default-character-set=utf8 zabbix < z3.sql |
И запускаем zabbix server обратно
1 2 3 4 5 | /etc/init.d/zabbix-server start или systemctl start zabbix-server или service zabbix-server start |
Проверяем корректность работы WEB интерфейса Zabbix сервера. В случае проблем — откатываемся на дампы z1.sql и z4.sql.