|
今天使用smokeping配置几个节点的服务器,节点名称使用的是中文。图上的中文显示方块,就想把中文弄出来。
网上查了,全都是解决网页上的中文的,没有能解决图片上中文的。
一看smokeping的图就知道是rrdtool生成的,本人对rrdtool比较熟悉,工作中使用了N多年了,就是一个字体参数的设置而已。关键是找到在什么地方设。
smokeping是用perl写的,本人对perl是一窍不通啊,但是还是大概能看懂一点点。
顺着线索一步步找,好在本人对rrdtool的参数还算熟悉,看到rrdtool参数的地方,就知道在哪添加了。
废话少说,赶紧上正题。
先要知道自己系统中的中文字体有哪些,用fc-list命令看看。如果没有合适的中文字体,就先安装。
debian上可以先apt-cache search wqy(文泉译), centos可以yum search wqy试试。
安装完再fc-list看看,如果有类似下面一行
WenQuanYi Zen Hei,文泉驛正黑,文泉驿正黑:style=Regular
那么字体名称就是WenQuanYi Zen Hei。如果你没有装wqy,但是有宋体,楷体之类的,也行,只是名称不同而已。
打开/usr/share/smokeping/lib/Smokeping/Graph.pm
找到下面这一段代码
[Shell] 纯文本查看 复制代码 for my $host (@hosts){
my ($graphret,$xs,$ys) = RRDs::graph
("dummy",
'--start', $tasks[0][1],
'--end', $tasks[0][2],
"DEF:maxping=$cfg->{General}{datadir}${host}.rrd:median:AVERAGE",
'PRINT:maxping:MAX:%le');
在'--end', $tasks[0][2],之后插入一行
- '--font TITLE:20:"WenQuanYi Zen Hei Mono"',
就可以了。注意字体名称使用你自己系统上的中文字体名称。
修改完之后要重启一下smokeping
- /etc/init.d/smokeping restart
smokeping有图片缓存,立刻刷新会看到中文还没出来。过会再刷新一下就可以看到中文了。
|
|