文章目录
1、中文乱码分为两种情况
- web中文字符乱码
- 展示图中文字符乱码
2、解决web中文字符乱码
#第一:在smokeping的配置文件中加入中文字符支持
vim /opt/smokeping/etc/config
*** Presentation ***
charset = utf-8 #在Presentation下面加入如下字段
#第二:重启相关服务
systemctl restart httpd
pkill smokeping
/opt/smokeping/bin/smokeping --logfile=/var/log/smokeping.log 2>&1 &
3、解决展示图中文字符乱码
#查看本地安装了那些字体
[root@ceshi ~]# fc-list
/usr/share/fonts/dejavu/DejaVuSansMono-BoldOblique.ttf: DejaVu Sans Mono:style=Bold Oblique
/usr/share/fonts/dejavu/DejaVuSansMono.ttf: DejaVu Sans Mono:style=Book
/usr/share/fonts/dejavu/DejaVuSansMono-Bold.ttf: DejaVu Sans Mono:style=Bold
/usr/share/fonts/dejavu/DejaVuSansMono-Oblique.ttf: DejaVu Sans Mono:style=Oblique
#发现没有中文字体,需安装文泉驿字体
#先搜索有那些关于文泉驿字体的软件包
[root@ceshi ~]# yum search wqy
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
* base: mirrors.163.com
* epel: mirrors.ustc.edu.cn
* extras: mirrors.zju.edu.cn
* updates: mirrors.zju.edu.cn
======================================================================================== N/S matched: wqy ========================================================================================
wqy-microhei-fonts.noarch : Compact Chinese fonts derived from Droid
wqy-unibit-fonts.noarch : WenQuanYi Unibit Bitmap Font
wqy-zenhei-fonts.noarch : WenQuanYi Zen Hei CJK Font
#安装第一个文泉驿字体
yum install -y wqy-microhei-fonts.noarch
#再次查看可用字体,可以查看web界面,一般情况下,展示图片已经改成中文了,若还是乱码,则进行下一步操作
[root@ceshi ~]# fc-list
/usr/share/fonts/wqy-microhei/wqy-microhei.ttc: 文泉驿等宽微米黑,文泉驛等寬微米黑,WenQuanYi Micro Hei Mono:style=Regular
/usr/share/fonts/dejavu/DejaVuSansMono-BoldOblique.ttf: DejaVu Sans Mono:style=Bold Oblique
/usr/share/fonts/dejavu/DejaVuSansMono.ttf: DejaVu Sans Mono:style=Book
/usr/share/fonts/dejavu/DejaVuSansMono-Bold.ttf: DejaVu Sans Mono:style=Bold
/usr/share/fonts/wqy-microhei/wqy-microhei.ttc: 文泉驿微米黑,文泉驛微米黑,WenQuanYi Micro Hei:style=Regular
/usr/share/fonts/dejavu/DejaVuSansMono-Oblique.ttf: DejaVu Sans Mono:style=Oblique
#编辑smokeping的Graph.pm文件 这一步可以不做的,前面安装完字体就可以了
vim /opt/smokeping/lib/Smokeping/Graphs.pm
if ($mode =~ /[anc]/){
my $val = 0;
for my $host (@hosts){
my ($graphret,$xs,$ys) = RRDs::graph
("dummy",
'--start', $tasks[0][1],
'--end', $tasks[0][2],
'--font TITLE:20:"WenQuanYi Micro Hei Mono"',
"DEF:maxping=$cfg->{General}{datadir}${host}.rrd:median:AVERAGE",
'PRINT:maxping:MAX:%le' );
my $ERROR = RRDs::error();
return "<div>RRDtool did not understand your input: $ERROR.</div>" if $ERROR;
$val = $graphret->[0] if $val < $graphret->[0];
}
$val = 1e-6 if $val =~ /nan/i;
$max = { $tasks[0][1] => $val * 1.5 };
}
(在'--end', $tasks[0][2],之后插入一行,后面双引号里的内容是fc-list显示出来的)
'--font TITLE:20:"WenQuanYi Micro Hei Mono"',
#最后重启smokeping,和httpd
pkill smokeping
/opt/smokeping/bin/smokeping --logfile=/var/log/smokeping.log 2>&1 &
systemctl restart httpd
如果文章对你有帮助,欢迎点击上方按钮打赏作者
暂无评论