zabbix中文乱码解决
问题描述:
在Zabbix界面设置中,已经调成中文语言,可能zabbix自身携带的字体还不够完美,出现如下乱码:省略
2. 上传“楷体 常规”字体到zabbix服务器中的指定目录中
目标目录:/usr/share/zabbix/fonts/
simkai.ttf #楷体字体文件名,上传的楷体
3. 编辑zabbix字体定义文件
[root@zabbix ~]# vim /usr/share/zabbix/include/defines.inc.php
将关键字 “graphfont” 改为“simkai” //共2处:54行和103行
或者执行以下替换命令:
sed -i 's/graphfont/simkai/g' /usr/share/zabbix/include/defines.inc.php
4. 刷新zabbix界面就可看到效果
以上方法只能解决部分显示中文乱码的问题
导入模板或者新建群组时,用到中文保存时会报错 (latin1_swedish_ci,IMPLICIT) and (utf8_general_ci,COERCIBLE) for operation '='
通过报错可以看出是sql执行出错,报错描述Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (utf8_general_ci,COERCIBLE)可以看出是数据库字符集的问题。
解决方法如下:
1、去zabbix数据库主机查看数据库字符集。
MariaDB [(none)]> show variables like "%char%";
+--------------------------+----------------------------+
| Variable_name | Value |
-------------------------+----------------------------+
▽ character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | latin1 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)
可以看到 character_set_database和character_set_server的字符集都不是utf8的所以需要进行设置。
2、修改数据库配置文件(默认在/etc/my.cnf),增加如下配置:
[mysql]
default-character-set=utf8
[mysqld]
character-set-server = utf8
3、重启数据库登录后再次执行show variables like '%char%';结果都是utf8了,如下:
MariaDB [(none)]> show variables like '%char%';
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)
4、重新导入zabbix数据模型。再次添加带中文的模版或者主机群组就可以啦。所以大家最好在最初搭建zabbix数据库时加上这个参数,避免发生这样的问题。还可以在创建数据库的时候指定字符集用如下语句创建:
mysql>create database zabbix character set utf8;