zabbix的图形界面中文变成□□问题
亲测有效!!!
zabbix首次安装之后,往往图形界面中的中文显示为‘□□’,如图:
看起来很不舒服,如何让他显示为中文?
思考:
1:是否是数据库的字符问题?
mysql> show variables like '%character%';
+--------------------------+----------------------------------+
| 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/local/mysql/share/charsets/ |
+--------------------------+----------------------------------+
8 rows in set (0.00 sec)
ok,看起来问题不在数据库!
2:zabbix问题
从网上找了很多帖子,上面说要修改/usr/share/zabbix/include/defines.inc.php文件,其实根本不用!
define('ZBX_GRAPH_FONT_NAME', 'graphfont');
上面这里指定的‘graphfont’其实只是一个软连接,不是真实的字体文件,我们看看他软连接到哪里的:
[root@VM-75-68 fonts]# pwd
/usr/share/zabbix/fonts
[root@VM-75-68 fonts]# ll
total 15048
lrwxrwxrwx. 1 root root 33 Dec 18 2019 graphfont.ttf -> /etc/alternatives/zabbix-web-font #OK,是指向到这里的!
继续追踪:
[root@VM-75-68 alternatives]# pwd
/etc/alternatives
[root@VM-75-68 alternatives]# ll
total 0
lrwxrwxrwx. 1 root root 38 Dec 18 2019 zabbix-web-font -> /usr/share/fonts/dejavu/DejaVuSans.ttf #最终确定,指向的是DejaVuSans.ttf字体文件
DejaVuSans.ttf不支持中文显示!
那我们是不是只要重新拉一个新的字体文件过来,修改zabbix-web-font的软连接就好了????
真的是这样吗???
不行!!!
这里正确的操作是:
1:先下载新的字体库:https://www.xxshell.com/download/sh/zabbix/ttf/msyh.ttf (这里笔者使用的是黑体字库)
2:上传到zabbix服务端的 /usr/share/fonts/dejavu 下
3:[root@VM-75-68 dejavu]# mv DejaVuSans.ttf DejaVuSans.ttf_bak
4:[root@VM-75-68 dejavu]# mv msyh.ttf DejaVuSans.ttf
注意,这里我们是把原来的DejaVuSans.ttf给bak掉,然后把新的黑字体库命名为DejaVuSans.ttf,不用动任何软连接!!!
修改完之后,我印象里都不用重启,前端就能生效了!
效果如下:
这里看到方框已经能够显示为中文了!
不过话说回来,我目前还不清楚为什么前面大多数人说的放在我这里不生效,也不清楚我这种方式在其他人那里能否生效,但在笔者的环境中,是需要保留DejaVuSans.ttf文件名的,也就是说,不要重新软连接,而是直接修改‘DejaVuSans.ttf’文件的内容!
希望所有的博主都能在实践过后写出有参考价值的东西,而不是复制粘贴别人的成果甚至直接<a></a>标签到其他人的博客!
以上,共勉!