19.10 处理图形中的乱码

2018-02-07 11:51:23 浏览数 (1)

处理图形中的乱码

  • 设置为中文后,zabbix图形的中文文字会显示小方框
  • 这是因为在zabbix的字体库中没有中文字体,需要从windows上借用一个过来
  • vim /usr/share/zabbix/include/defines.inc.php //搜索ZBX_FONTPATH -它定义的路径是“fonts”,它是一个相对路径,绝对路径为/usr/share/zabbix/fonts,而字体文件为“ZBX_GRAPH_FONT_NAME”所定义的“graphfont”,它是一个文件,绝对路径为/usr/share/zabbix/fonts/graphfont
  • windows字体路径为“C:WindowsFonts”,找到“simfang.ttf”(其实就是那个仿宋简体),先把它复制到桌面上,然后上传到linux的/usr/share/zabbix/fonts/,并且改名为graphfont.ttf

处理图形中的乱码

  1. 首先把han模板连接到hf-02这个主机上去,选择 主机 ——>选择 hf-02 主机
  1. 点击 模板,然后点 选择 ,将hf-02主机添加到han模板里面去,再点击 添加 ,最后点击 更新
  1. 然后点击查看 图形
  1. 选择其中一张图,点开查看,选择 预览 ,会看到本来是中文显示的,结果显示成小方块
  1. 现在就是把这些小方块变成中文,显示方块意味着乱码,显示乱码有一种很常见的问题:就是字符集不对,但在这里并非是字符集的问题
  • 在显示成小方块,非常有规律,不能说乱码,只能说这个文字无法显示出来,只能用方块代替,因为缺少字库,在计算机当中,文字之所以能显示出来,就是因为有文字字库,这里很明显缺少中文的字库
  1. 在服务端(即A机器)打开配置文件,/usr/share/zabbix/include/defines.inc.php
代码语言:javascript复制
A机器
[root@hf-01 ~]# vim /usr/share/zabbix/include/defines.inc.php
搜索 /ZBX_FONTPATH 会看到字体所在的相对路径
define('ZBX_FONTPATH',                          realpath('fonts')); // where to search for font (GD > 2.0.18)
define('ZBX_GRAPH_FONT_NAME',           'graphfont'); // font file name  

里面的
realpath('fonts'));   //这个为zabbix字库所在的路径,使用的路劲是相对路径,相对于/usr/share/zabbix/ 
'graphfont'); // font file name   // 这个为字体的名字

-它定义的路径是“fonts”,它是一个相对路径,绝对路径为/usr/share/zabbix/fonts,而字体文件为“ZBX_GRAPH_FONT_NAME”所定义的“graphfont”,它是一个文件,绝对路径为/usr/share/zabbix/fonts/graphfont 7. 这个目录下的/usr/share/zabbix/fonts/graphfont.ttf文件软链接到了/etc/alternatives/zabbix-web-font文件,而/etc/alternatives/zabbix-web-font文件又软链接到了 /usr/share/fonts/dejavu/DejaVuSans.ttf

  • dejavu: dejavu为字体的目录
  • DejaVuSans.ttf:是一个字体 ,但不支持中文
代码语言:javascript复制
[root@hf-01 ~]# ls /usr/share/zabbix/fonts/
graphfont.ttf
[root@hf-01 ~]# ls -l !$
ls -l /usr/share/zabbix/fonts/
总用量 0
lrwxrwxrwx 1 root root 33 1月   3 01:51 graphfont.ttf -> /etc/alternatives/zabbix-web-font
[root@hf-01 ~]# ls -l /etc/alternatives/zabbix-web-font
lrwxrwxrwx 1 root root 38 1月   3 01:51 /etc/alternatives/zabbix-web-font -> /usr/share/fonts/dejavu/DejaVuSans.ttf
[root@hf-01 ~]# 
  1. 现在要做的就是将 graphfont 软链接到一个支持中文带中文的字体下面,即可
  2. 打开你windows物理机,找到C盘——>Windows——>Fonts下面找到simfang.ttf(其实就是那个仿宋简体),先把它复制到桌面上,然后上传到linux的/usr/share/zabbix/fonts/,并且改名为graphfont.ttf
代码语言:javascript复制
[root@hf-01 ~]# cd /usr/share/zabbix/fonts/
[root@hf-01 fonts]# ls
graphfont.ttf  SIMFANG.TTF
[root@hf-01 fonts]# 
  1. 上传到/usr/share/zabbix/fonts/目录下后,更改原有graphfont.ttf为.back,或者删除掉这个文件
代码语言:javascript复制
[root@hf-01 fonts]# mv graphfont.ttf graphfont.ttf.back
[root@hf-01 fonts]# 
  1. 然后把上传的字体,做一个创建graphfont.ttf软链接文件
  • ln -s SIMFANG.TTF graphfont.ttf
代码语言:javascript复制
[root@hf-01 fonts]# ln -s SIMFANG.TTF graphfont.ttf
[root@hf-01 fonts]# ls -l
总用量 10332
lrwxrwxrwx 1 root root       11 2月   2 06:45 graphfont.ttf -> SIMFANG.TTF
lrwxrwxrwx 1 root root       33 1月   3 01:51 graphfont.ttf.back -> /etc/alternatives/zabbix-web-font
-rw-r--r-- 1 root root 10576012 6月  11 2009 SIMFANG.TTF
[root@hf-01 fonts]# 
  1. 现在的zabbix调用的是graphfont.ttf,而graphfont.ttf它指向了SIMFANG.TTF
  2. 这时在浏览器上刷新下,会看到显示正常,这样就能解决图形里面的小方块
  1. 还能看到CPU load一直为0,因为已经有数据产生了
  2. 在检测中,有一个最新数据,在这里主机可以选择 主机hf-02 ,点击应用
  1. 会看到监控的项目都有数据的,也可以选择 右侧的图形查看

0 人点赞