引言
今天碰到有人说 Zabbix 监控图上中文不显示,由于自己一直是使用英文界面,所以并没有碰到这个情况。
于是我自己切换到中文界面,确实出现了监控图上中文显示不出来的问题。下面给出解决方法。
原因
Zabbix 使用 DejaVuSan.ttf 字体,不支持中文,导致中文出现乱码。
解决方法
解决方法很简单,可以把我们电脑里面字体文件传到 Zabbix 服务器上并修改相应配置。
1. 上传中文字体文件到 Zabbix 服务器上
中文字体文件可以使用 Windows 系统字体文件,目录:C:\Windows\Fonts
2. 查看 Zabbix 字体配置并修改成中文字体
定位 Zabbix Web 程序目录下的此配置文件 :./include/defines.inc.php
# 搜索 font 相关参数,如下:
define('ZBX_FONTPATH', realpath('fonts')); // where to search for font (GD > 2.0.18)
define('ZBX_GRAPH_FONT_NAME', 'graphfont'); // font file name
# 查看 grahfont 字体文件具体指向
[root@linux-node1 /usr/share/zabbix]# ll /usr/share/zabbix/fonts/
total 0
lrwxrwxrwx 1 root root 33 Jun 1 22:10 graphfont.ttf -> /etc/alternatives/zabbix-web-font
[root@linux-node1 /usr/share/zabbix]# ll /etc/alternatives/zabbix-web-font
lrwxrwxrwx 1 root root 27 Jun 25 13:39 /etc/alternatives/zabbix-web-font -> /usr/share/fonts/dejavu/DejaVuSans.ttf
# 从上面可以看出,是连续 2 个软链接,最终指向 /usr/share/fonts/ 下的一个字体文件。
# 于是我们的解决方法是上传中文字体文件到 /usr/share/fonts/ 下,
# 然后重新将 /etc/alternatives/zabbix-web-font 软链接到刚才上传的中文字体文件,如下:
[root@linux-node1 /usr/share/zabbix]# ll /etc/alternatives/zabbix-web-font
lrwxrwxrwx 1 root root 27 Jun 25 13:39 /etc/alternatives/zabbix-web-font -> /usr/share/fonts/simsun.ttc