在前面文章《zabbix监控第一台服务器》遇到中文乱码问题。zabbix乱码是怎么照成的呢?zabbix使用DejaVuSan.ttf字体,不支持中文,导致中文出现乱码。解决方法很简单,把我们电脑里面字体文件传到zabbix服务器上。
1. 乱码如下图
文章源自运维生存时间-https://www.ttlsa.com/zabbix/zabbix-chinese-garbled-ttlsa/
2. 解决zabbix乱码方法
2.1 上传文件到zabbix中
找到本地C:\Windows\Fonts\simkai.ttf(楷体)上传到服务器zabbix网站目录fonts目录下。文章源自运维生存时间-https://www.ttlsa.com/zabbix/zabbix-chinese-garbled-ttlsa/
2.2 修改zabbix php配置文件文章源自运维生存时间-https://www.ttlsa.com/zabbix/zabbix-chinese-garbled-ttlsa/
# cd /data/site/www.ttlsa.com/zabbix/ # 我zabbix安装目录 # sed -i 's/DejaVuSans/simkai/g' ./include/defines.inc.php
文章源自运维生存时间-https://www.ttlsa.com/zabbix/zabbix-chinese-garbled-ttlsa/
3. 查看zabbix乱码处理结果
文章源自运维生存时间-https://www.ttlsa.com/zabbix/zabbix-chinese-garbled-ttlsa/
4. 常见问题
依旧乱码:通过以上的操作,大部分同学的乱码问题解决了,但是依旧有一些同学还是乱码?细心的群友提供另外一种情况:初始化数据库的时候未使用utf8编码所致.初始化数据库使用命令文章源自运维生存时间-https://www.ttlsa.com/zabbix/zabbix-chinese-garbled-ttlsa/
create database zabbix default charset utf8;
或者my.cnf增加如下配置文章源自运维生存时间-https://www.ttlsa.com/zabbix/zabbix-chinese-garbled-ttlsa/
default-character-set = utf8
5. 总结
乱码处理方法很简单,实际上就是替换字体。希望zabbix的同学请继续关注zabbix教程,也同时继续关注运维生存时间。手头上的服务器都是什么配置?请看《zabbix资产清单inventory管理(14)》文章源自运维生存时间-https://www.ttlsa.com/zabbix/zabbix-chinese-garbled-ttlsa/ 文章源自运维生存时间-https://www.ttlsa.com/zabbix/zabbix-chinese-garbled-ttlsa/
9F
修改显示语言提示这个,还不能选中文,中文开启了。You are not able to choose some of the languages, because locales for them are not installed on the web server.
B1
@ 悟透 1.dpkg-reconfigure locales #选择系统语言包
#必须选择的en_US.UTF-8/zh_CN.UTF-8
2.在选择系统环境语言时,必须有必要选en_US.UTF-8
#check zabbix配置
nano /usr/share/zabbix/include/locales.inc.php
找到getLocales()函数检查zh_CN是否为True
Debian就可以这样解决
8F
是的。graph中该是方框还是方框
7F
我也是 请问解决了吗
6F
不错 我的za是YUM安装的,已经完美解决乱码问题. 没成功的同学请再看看是否哪个步骤操作有误?
5F
按说明替换以后,什么文字也没有了是几个意思
4F
按说明替换以后,什么文字也没有了是几个意思
3F
超级菜鸟一个请教:我php是rpm直接安装的,该如何解救?重新编译php源码包安装吗?
B1
@ qingyangfly 使用php pecl 安装
2F
替换了字体也没有解决zabbix生成图像的中文乱码问题.
B1
@ nginx-web001 已经解决了.原因是php配置问题, php编译时如果指定–enable-gd-jis-conv选项即使指定了中文字体也会导至乱码.所以在编译php时不要指定–enable-gd-jis-conv参数. 因zabbix使用php imagettftext()函数来画图,imagettftext()在php官方文档中写到:
Although imagettftext()documentation indicates it only accepts UTF-8 encoding, but if–enable-gd-jis-conv is specified when compiling PHP, then non-ASCII characters(like Chinese, accented characters, Greek and arrows) will be (mis-)treated asEUC-JP encoding (referred to as “JIS-mapped Japanese Font Support” in phpinfo)leading to mojibake (this usually shows up as hollow rectangles, as most fontsfor western text lacks glyphs for kanji or kana).
启用–enable-gd-jis-conv选项的话,那么非ASCII字符(例如汉字、拼音、希腊文和箭头) 会被当成EUC-JP编码(phpinfo中美其名曰“支持JIS编码的字体”), 从而导致乱码(由于西文字体没有假名或汉字,一般表现为全部是方框)。
B2
@ nginx-web001 怎么改的
1F
很受用 多谢
来自外部的引用