Zabbix图表中文乱码(包含Docker安装乱码)

文章github 地址: 点我
最近在看 Zabbix 4.0 版本的官方文档,搭建后图表使用中文发现仍是有乱码。以前在 3.0 版本的时候也遇到过,以前有记录。如今针对2个版本的乱码问题的解决作下记录。mysql

Zabbix 4.0 版本

乱码以前的图表中文显示:nginx

解决办法就是上传中文字体库到 Zabbix server 。替换原来图表使用的字体。git

解决思路

先找到图表使用的字体,咱们在 /usr/share/zabbix/assets/fonts(yum 安装) 能够看到字体文件 graphfont.ttf ,这个文件就是图表使用的字体。(若是在该路径找不到此字体,请检查版本或者使用 Find 查找)。github

[root@localhost fonts]# ls -l /usr/share/zabbix/assets/fonts
total 0
lrwxrwxrwx 1 root root 33 Jun 10 15:17 graphfont.ttf -> /etc/alternatives/zabbix-web-font

咱们能够看到该字体是连接到 /etc/alternatives/zabbix-web-font,咱们进行查看 /etc/alternatives/zabbix-web-font。发现它连接到了 /usr/share/fonts/dejavu/DejaVuSans.ttfweb

[root@localhost fonts]# ll -h /etc/alternatives/zabbix-web-font
lrwxrwxrwx 1 root root 38 Jun 13 14:58 /etc/alternatives/zabbix-web-font -> /usr/share/fonts/dejavu/DejaVuSans.ttf
[root@localhost fonts]# ls -l  /usr/share/fonts/dejavu/DejaVuSans.ttf
-rw-r--r-- 1 root root 720012 Feb 27  2011 /usr/share/fonts/dejavu/DejaVuSans.ttf

也就是咱们的图表使用的字体graphfont.ttf 最终是指向 /usr/share/fonts/dejavu/DejaVuSans.ttfsql

理清楚了这个,咱们就能够去找一个中文字体,而后上传到 /usr/share/fonts/dejavu/,而后让 /etc/alternatives/zabbix-web-font 连接到 /usr/share/fonts/dejavu/ 里咱们上传的新的中文字体。docker

解决操做

  • 找中文字体apache

    咱们直接从咱们的windows 系统里面找中文字体。默认路径为 C:\Windows\Fonts。咱们使用的是楷体。上传到咱们 Zabbix server 服务器/usr/share/fonts/dejavu/windows

    [root@localhost fonts]# ls -l  /usr/share/fonts/dejavu/
    total 16800
    -rw-r--r-- 1 root root   611212 Feb 27  2011 DejaVuSans-BoldOblique.ttf
    -rw-r--r-- 1 root root   672300 Feb 27  2011 DejaVuSans-Bold.ttf
    -rw-r--r-- 1 root root   580168 Feb 27  2011 DejaVuSansCondensed-BoldOblique.ttf
    -rw-r--r-- 1 root root   631992 Feb 27  2011 DejaVuSansCondensed-Bold.ttf
    -rw-r--r-- 1 root root   576004 Feb 27  2011 DejaVuSansCondensed-Oblique.ttf
    -rw-r--r-- 1 root root   643852 Feb 27  2011 DejaVuSansCondensed.ttf
    -rw-r--r-- 1 root root   345204 Feb 27  2011 DejaVuSans-ExtraLight.ttf
    -rw-r--r-- 1 root root   611556 Feb 27  2011 DejaVuSans-Oblique.ttf
    -rw-r--r-- 1 root root   720012 Feb 27  2011 DejaVuSans.ttf
    -rw-r--r-- 1 root root 11787328 Aug  9  2018 simkai.ttf

    楷体也就是 simkai.ttf

  • 替换字体为 simkai.ttf

    [root@localhost fonts]# rm -f /etc/alternatives/zabbix-web-font 
    [root@localhost fonts]# ln -s  /usr/share/fonts/dejavu/simkai.ttf   /etc/alternatives/zabbix-web-font

Zabbix 3.0 版本

图表乱码

解决办法和上面大同小异,也是替换字体。

这里说下不一样之处。就是 上面的 4.0 版本的 graphfont.ttf 字体路径是在 /usr/share/zabbix/assets/fonts,而 3.0 版本的字体路径是在 /usr/share/zabbix/fonts 。 其余的操做是一致的。

Zabbix 4.0 Docker 版本 图表乱码问题解决

字体文件存放于镜像 zabbix-web-nginx-mysql/usr/share/zabbix/assets/fonts/目录下。

docker  cp  /tmp/SIMKAI.TTF   c9e36aa249a3:/usr/share/zabbix/assets/fonts/

而后咱们登陆到容器里面

# 将后缀名 TTF 改成 ttf
 [root@c9e36aa249a3 fonts]# mv /usr/share/zabbix/assets/fonts/SIMKAI.TTF  /usr/share/zabbix/assets/fonts/SIMKAI.ttf
 # 编辑文件 /usr/share/zabbix/include/defines.inc.php,大约在69行。将 DejaVuSans  更改成 SIMKAI
[root@c9e36aa249a3 fonts]#  vi /usr/share/zabbix/include/defines.inc.php
# 更改前  
define('ZBX_GRAPH_FONT_NAME',           'DejaVuSans'); // font file name
# 更改后
define('ZBX_GRAPH_FONT_NAME',           'SIMKAI'); // font file name

而后刷新界面,就能够正常显示了。

若是是使用的 镜像 zabbix-web-apache-mysql ,和 镜像 zabbix-web-nginx-mysql 的操做一致。

相关文章
相关标签/搜索