Zabbix 1.8ではグラフの表示方法が大幅に変わっていて、日本語が文字化けしてしまいます。(赤線の部分)
文字化けの原因は英語フォントを利用しているためで、日本語フォントを指定すれば日本語を表示することができます。ひとまずCentOSに付属しているさざなみフォントを利用して表示してみました。
まず、ZabbixのWebインターフェースのファイルがあるディレクトリの、fontsディレクトリにOSのフォントのシンボリックリンクを張ります。
# cd /usr/share/zabbix/fonts # ln -s /usr/share/fonts/japanese/TrueType/sazanami-gothic.ttf .
次にWebインターフェースのファイルがあるディレクトリのinclude/defines.inc.phpの48行目あたり
44 define('ZBX_MAX_PERIOD', 2*365*86400); // ~2 years 45 define('ZBX_PERIOD_DEFAULT', 3600); // 1 hour 46 47 define('ZBX_FONTPATH', realpath('fonts')); // where to search for font (GD > 2.0.18) 48 define('ZBX_GRAPH_FONT_NAME', 'DejaVuSans'); // font file name 49 /* END OF USERS DEFINES */ 50 51 define('ZBX_AUTH_INTERNAL', 0);
の「DejaVuSans」を「sazanami-gothic」に書き換えます。
するとグラフの凡例やタイトルは日本語を表示できたのですが、グラフの横軸の時間の表示が正常に表示されませんでした。この縦書き表示部分にはphpのImageStringUp関数が使用されているのですが、フォントとの相性があるようです。すべてのフォントで正しく表示させるためにはいちど横書きにして90度回転させた方がよさそうです。
試しにIPAフォント(再配布条件がややこしい旧バージョンのもの)を使ってみるときれいに表示できてます。でもフォントファイルだけ再配布できないので、ZABBIX-JPのRPMでは含められないですね...。
再配布条件が緩くなった現在のIPAフォントだとなぜか文字間の幅が広がってしまいます。
ということで、たんにフォントを置き換えただけでは表示上の問題やライセンスの問題でZABBIX-JPのRPMは作成できそうにありません。いちどsazanami-gothicを使って正常に表示させることができないかphp側の修正を試してみようと思います。
2009/12/18追記: Zabbix 1.8のグラフの文字化け(2)
0 件のコメント:
コメントを投稿