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 的操做一致。

相關文章
相關標籤/搜索