文章github 地址: 點我
最近在看 Zabbix 4.0
版本的官方文檔,搭建后圖表使用中文發(fā)現(xiàn)還是有亂碼。之前在 3.0 版本的時候也遇到過,之前有記錄?,F(xiàn)在針對2個版本的亂碼問題的解決做下記錄。
亂碼之前的圖表中文顯示:
解決辦法就是上傳中文字體庫到 Zabbix server
。替換原來圖表使用的字體。
先找到圖表使用的字體,我們在 /usr/share/zabbix/assets/fonts
(yum 安裝) 可以看到字體文件 graphfont.ttf
,這個文件就是圖表使用的字體。(如果在該路徑找不到此字體,請檢查版本或者使用 Find 查找)。
[root@localhost fonts]# ls -l /usr/share/zabbix/assets/fontstotal 0lrwxrwxrwx 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
。發(fā)現(xiàn)它鏈接到了 /usr/share/fonts/dejavu/DejaVuSans.ttf
[root@localhost fonts]# ll -h /etc/alternatives/zabbix-web-fontlrwxrwxrwx 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.ttf
。
理清楚了這個,我們就可以去找一個中文字體,然后上傳到 /usr/share/fonts/dejavu/
,然后讓 /etc/alternatives/zabbix-web-font
鏈接到 /usr/share/fonts/dejavu/
里我們上傳的新的中文字體。
找中文字體
我們直接從我們的windows 系統(tǒng)里面找中文字體。默認路徑為 C:\Windows\Fonts
。我們使用的是楷體。上傳到我們 Zabbix server 服務(wù)器
的 /usr/share/fonts/dejavu/
[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
圖表亂碼
解決辦法和上面大同小異,也是替換字體。
這里說下不同之處。就是 上面的 4.0 版本的 graphfont.ttf
字體路徑是在 /usr/share/zabbix/assets/fonts
,而 3.0 版本的字體路徑是在 /usr/share/zabbix/fonts
。 其他的操作是一致的。
字體文件存放于鏡像 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
的操作一致。