使用 Zabbix 時,如果圖表(graph)包含中文,就會發現中文字都成方塊了!本文提供的解決方式是使用 curl 從 Github 下載 Noto Sans CJK TC Medium 字型,透過 alternatives 將它加入 zabbix-web-font 的字型候選清單,再將其指定為目前使用的字型。
測試環境:
Rocky Linux 9.8 (應該RHEL系列皆適用)
Zabbix 7.0.31
操作步驟
以下指令請以 root 身分執行。
# ==========================================
# Zabbix 7.0 / Rocky Linux
# 將 Zabbix graphfont 改為 Noto Sans CJK TC Medium
# 目的:解決圖表中的繁體中文字型亂碼/方塊問題
# ==========================================
# 1. 建立自訂字型目錄
# /usr/local 不屬於 Zabbix RPM 套件管理範圍,
# Zabbix 更新時通常不會覆蓋此處。
mkdir -p /usr/local/share/fonts/zabbix
chmod 755 /usr/local/share/fonts/zabbix
# 2. 從 Noto CJK 官方 GitHub 下載繁中 Medium 靜態字型
curl -fL --retry 3 \
-o /usr/local/share/fonts/zabbix/NotoSansCJKtc-Medium.otf \
'https://raw.githubusercontent.com/notofonts/noto-cjk/main/Sans/OTF/TraditionalChinese/NotoSansCJKtc-Medium.otf'
# 3. 設定字型檔權限
chmod 644 /usr/local/share/fonts/zabbix/NotoSansCJKtc-Medium.otf
# 4. 確認下載結果
file /usr/local/share/fonts/zabbix/NotoSansCJKtc-Medium.otf
ls -lh /usr/local/share/fonts/zabbix/NotoSansCJKtc-Medium.otf
# 5. 加入 Zabbix 的 alternatives 字型候選清單
# graphfont.ttf:Zabbix 前端圖表固定使用的字型連結
# zabbix-web-font:本機既有 alternatives 群組名稱
alternatives --install \
/usr/share/zabbix/assets/fonts/graphfont.ttf \
zabbix-web-font \
/usr/local/share/fonts/zabbix/NotoSansCJKtc-Medium.otf \
100
# 6. 指定 Zabbix 使用 Noto Sans CJK TC Medium
# --set 會切換為 manual 模式,避免後續套件更新自動選回 DejaVu Sans。
alternatives --set \
zabbix-web-font \
/usr/local/share/fonts/zabbix/NotoSansCJKtc-Medium.otf
# 7. 確認 alternatives 目前狀態
alternatives --display zabbix-web-font
# 8. 確認 Zabbix graphfont.ttf 最終實際指向的字型
readlink -f /usr/share/zabbix/assets/fonts/graphfont.ttf
驗證結果
執行最後一個指令後,預期會顯示:
/usr/local/share/fonts/zabbix/NotoSansCJKtc-Medium.otf
接著回到 Zabbix,重新開啟含有中文的圖表,確認是否正常顯示。