zabbix对中文的支持不是很好,但为了管理方面有时候我们还是会选择中文,在zabbix监控的web界面,图形图标下面的中文会显示一个个小方块,这样是不正确的,需要下载字体。例如“微软雅黑”
“微软雅黑.ttf” 命名为 “msyh.ttf”
将下载的字体上传到/zabbix/fonts/字体下
修改/zabbix/include/defines.inc.php文件中的两处
define('ZBX_GRAPH_FONT_NAME', 'DejaVuSans'); define('ZBX_FONT_NAME', 'DejaVuSans');
改
define('ZBX_GRAPH_FONT_NAME', 'msyh'); define('ZBX_FONT_NAME', 'msyh');
最后重启web服务器即可。
iii.php编译参数调试
经过反复编译测试,发现是由–enable-gd-jis-conv参数引起的,编译php时若加入该参数则会导致zabbix图片中文乱码,去掉后一切正常,也有朋友遇到类似的问题
php官方解释
*虽然imagettftext()文档标明只接受UTF-8编码,但如果PHP编译时启用–enable-gd-jis-conv选项的话,那么非ASCII字符(例如汉字、拼音、希腊文和箭头)会被当成EUC-JP编码(phpinfo中美其名曰“支持JIS编码的字体”), 从而导致乱码(由于西文字体没有假名或汉字,一般表现为全部是方框)
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)
结论,编译php时不要加–enable-gd-jis-conv
我将会去掉此模块,以便后期其他人遇到同样的问题。谢谢你的建议。
zabbix-server是安装你的文档一步步下来的虽然有报错也都解决了。这一步走不下去了图形中文部分一直乱码,尝试在mysql中set character_set_database=utf8;set character_set_server=utf8;还是不能解决问题,最后我将之前部署的zabbix的字体拖过来也不行,修改后的效果就是方框变成了乱码,现在求助下帮忙看看是什么原因
php参数–enable-gd-jis-conv引起的,去掉即可。