问题
CentOS即将停止维护,公司选择RockyLinux9作为替代。在安装zabbix时提示“You are not able to choose some of the languages, because locales for them are not installed on the web server.”。Zabbix6.0界面无法选择中文,通过安装语言包解决。顺便解决了zabbix6中文方块问题。
原因
rockyLinux9默认没有自带中文语言包。
相关查看命令如下:
localectl list-locales #查看系统默认已有的语言包
localectl #查看当前生效的语言包
localectl set-locale LANG="zh_CN.utf8" #修改当前生效语言包为中文zh_CN.utf8
解决
查找dnf源上可下载的其它语言包,并下载安装。
dnf list |grep glibc-langpack #查看源上有哪些语言包
dnf list |grep glibc-langpack|grep zh #筛选出需要的中文语言包
dnf install glibc-langpack-zh #安装中文语言包
localectl set-locale LANG="zh_CN.utf8" #修改当前生效语言包为中文zh_CN.utf8
systemctl restart zabbix-server zabbix-agent httpd php-fpm #重启zabbix server相关服务
修改语言包不需要reboot操作系统,仅重启zabbix相关服务即可。再次登录zabbix web界面从左下方user settings处即可进行显示语言的修改。
其它
中文方块问题: 改语言包仅解决了整体页面的中文显示问题,具体监控项仍然存在中文方块乱码问题,需要下载中文字体解决。
解决思路: 将Windows中文ttf字体上传至zabbix-server服务器,并且将字体改名为已经被套了几层软连接的默认字体名字DejaVuSans.ttf,不用重启服务器或应用,刷新页面即可解决。
解决操作:
在windows 上找到该目录C:\Windows\Fonts,确认该文件是ttf类型(有的Windows字体是otf或其它格式)。
在Linux上执行以下操作:
dnf install lrzsz #安装rz命令,方便快速上传字体文件
find / -name fonts #查找字体目录,通常绝对路径中带zabbix的即是目标目录
cd /usr/share/zabbix/assets/fonts #进入目录,确认字体文件属性,主要检查是否是软连接。
ll /etc/alternatives/zabbix-web-font #该文件是软连接
ll /usr/share/fonts/dejavu-sans-fonts/DejaVuSans.ttf #该文件是软连接最终目标文件。
cd /usr/share/fonts/dejavu-sans-fonts/ #进入最终目标文件所在目录
rz #上传Windows上找到的ttf字体文件
mv DejaVuSans.ttf DejaVuSans.ttf-bak #将目标文件改名放一边
cp -a SIMYOU.TTF DejaVuSans.ttf #将上传的字体改名为目标文件
完成操作,再次刷新zabbix web页面,此时监控项中文方块乱码已正常显示。其实有两种解决,一是将字体文件直接改为同名,这样可以复用已有的软连接;二是修改软连接,指向新上传的字体。
相关截图