2012年3月14日水曜日

zabbixのグラフの日本語文字化け対応

※2013/5/9追記 フォントの指定場所が一箇所漏れていたので追記しましたm(__)m


Amazon Linux に、Zabbix Server を立てた際にグラフの日本語が文字化けしていたので、その時の対処メモ。
多分、Zabbixではお決まりの対処と思われます。

バージョンは下記の通り。

OS     : Amazon Linux AMI release 2011.09 x86/64
Zabbix : 1.8.10

以下がその文字化け(正確には日本語が豆腐になる)への対処法。




そもそもなぜ日本語が豆腐になるかというと、フォントが日本語対応していないからという、単純な理由。

デフォルトではグラフで使用するフォントが DejaVu というものになっている。

どこで定義されているかというと、/usr/share/zabbix/include/defines.inc.php 内の38〜40行目と79行目。
38         define('ZBX_FONTPATH',                  '/usr/share/fonts/dejavu');     // where to search for font (GD > 2.0.18)
39         define('ZBX_GRAPH_FONT_NAME',           'DejaVuSans');          // font file name
40         define('ZBX_GRAPH_LEGEND_HEIGHT',120); // when graph height is less then this value, some legend will not show up

79         define('ZBX_FONT_NAME',                 'DejaVuSans'); ←追記


ということで、/usr/share/fonts 配下に他にどんなフォントがあるか確認する。

/usr/share/fonts/:
total 6096
drwxr-xr-x 2 root     root        4096 Oct 28 07:51 dejavu

/usr/share/fonts/dejavu:
total 6896
-rw-r--r-- 1 root root 524056 Aug 27  2009 DejaVuSans-BoldOblique.ttf
-rw-r--r-- 1 root root 573136 Aug 27  2009 DejaVuSans-Bold.ttf
-rw-r--r-- 1 root root 493196 Aug 27  2009 DejaVuSansCondensed-BoldOblique.ttf
-rw-r--r-- 1 root root 534464 Aug 27  2009 DejaVuSansCondensed-Bold.ttf
-rw-r--r-- 1 root root 488440 Aug 27  2009 DejaVuSansCondensed-Oblique.ttf
-rw-r--r-- 1 root root 544636 Aug 27  2009 DejaVuSansCondensed.ttf
-rw-r--r-- 1 root root 329412 Aug 27  2009 DejaVuSans-ExtraLight.ttf
-rw-r--r-- 1 root root 523804 Aug 27  2009 DejaVuSans-Oblique.ttf
-rw-r--r-- 1 root root 622280 Aug 27  2009 DejaVuSans.ttf
-rw-r--r-- 1 root root 294244 Aug 27  2009 DejaVuSerif-BoldItalic.ttf
-rw-r--r-- 1 root root 306532 Aug 27  2009 DejaVuSerif-Bold.ttf
-rw-r--r-- 1 root root 293472 Aug 27  2009 DejaVuSerifCondensed-BoldItalic.ttf
-rw-r--r-- 1 root root 282092 Aug 27  2009 DejaVuSerifCondensed-Bold.ttf
-rw-r--r-- 1 root root 301268 Jan 22  2011 DejaVuSerifCondensed-Italic.ttf
-rw-r--r-- 1 root root 295840 Aug 27  2009 DejaVuSerifCondensed.ttf
-rw-r--r-- 1 root root 301828 Aug 27  2009 DejaVuSerif-Italic.ttf
-rw-r--r-- 1 root root 328908 Aug 27  2009 DejaVuSerif.ttf

んーと、 DejaVu しかない。そうですか。CentOSとかだと sazanami とか入ってるんだけどな。

ということで、フォントを追加する。

せっかくなのでIPAのフォントを入れてみる。再頒布とかはしないので特にライセンスは気にせずに。

/usr/share/fonts/ipa に ipag.ttf を配置して、フォントの指定を書き換え。

38         define('ZBX_FONTPATH',                  '/usr/share/fonts/ipa');        // where to search for font (GD > 2.0.18)
39         define('ZBX_GRAPH_FONT_NAME',           'ipag');                // font file name
40         define('ZBX_GRAPH_LEGEND_HEIGHT',120); // when graph height is less then this value, some legend will not show up

79         define('ZBX_FONT_NAME',                 'ipag'); ←追記

で、ブラウザから確認すると…おぉ変わった。

一瞬ハマったのが、フォント名の指定のところで、コメントに "font file name" と書いてあるので、
'ipag.ttf' と指定したところ何も表示されなくなりました。。拡張子はいらないみたいです。

ま、兎にも角にもちゃんと日本語が表示されるようになりました。


おしまい。

0 件のコメント:

コメントを投稿