ksaitoの日記

日々試したことの覚え書き

Ubuntu 12.04でzabbixのグラフが文字化け

Ubuntu 12.04にアップグレードしたところzabbixのグラフが文字化けするようになりました。
以前、zabbixの日本語フォント設定ipaフォントをインストールして文字化けを解消したのですが、ipaフォントのパッケージが変更になったようです。

原因

以前、設定したttf-ipafontパッケージがなくなっていたので再インストールしてみました。
どうやら、ttf-ipafontパッケージは、ttf-ipafont-gothicに置き換わったようです。

$ sudo apt-get install ttf-ipafont
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています                
状態情報を読み取っています... 完了
パッケージ ttf-ipafont はデータベースには存在しますが、利用できません。
おそらく、そのパッケージが見つからないか、もう古くなっているか、
あるいは別のソースからのみしか利用できないという状況が考えられます
しかし、以下のパッケージで置き換えられています:
  ttf-ipafont-gothic

E: パッケージ 'ttf-ipafont' にはインストール候補がありません
$ 

設定したipaフォントへのシンボリックリンクは、リンク先のフォントファイルがなくなっていました。

$ cd /usr/share/zabbix/fonts/
$ ls -l
合計 0
lrwxrwxrwx 1 root root 46  4月 11 14:14 DejaVuSans.ttf -> ../../fonts/truetype/ttf-dejavu/DejaVuSans.ttf
lrwxrwxrwx 1 root root 42 12月 11 10:33 ipag.ttf -> /usr/share/fonts/opentype/ipafont/ipag.ttf
lrwxrwxrwx 1 root root 44  4月 28  2011 ipagui.ttf -> /usr/share/fonts/truetype/ipafont/ipagui.ttf
$ ls /usr/share/fonts/opentype/ipafont/ipag.ttf
ls: /usr/share/fonts/opentype/ipafont/ipag.ttf にアクセスできません: そのようなファイルやディレクトリはありません
$ /usr/share/fonts/truetype/ipafont/ipagui.ttf
bash: /usr/share/fonts/truetype/ipafont/ipagui.ttf: そのようなファイルやディレクトリはありません
$ 

対応

必要なフォントファイルが含まれているパッケージを探します。

$ apt-file search ipag.ttf
fonts-ipafont-gothic: /usr/share/fonts/opentype/ipafont-gothic/ipag.ttf
$ apt-file search ipagui.ttf
fonts-ipafont-nonfree-uigothic: /usr/share/fonts/truetype/ipafont-nonfree-uigothic/ipagui.ttf
$ sudo apt-get install fonts-ipafont-gothic fonts-ipafont-nonfree-uigothic
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています                
状態情報を読み取っています... 完了
fonts-ipafont-gothic はすでに最新バージョンです。
fonts-ipafont-nonfree-uigothic はすでに最新バージョンです。
アップグレード: 0 個、新規インストール: 0 個、削除: 0 個、保留: 0 個。
$ 

何れのパッケージも最新版となっているようなのでシンボリックリンクを張り直します。

$ pwd
/usr/share/zabbix/fonts
$ sudo rm ipag.ttf
$ sudo ln -s /usr/share/fonts/opentype/ipafont-gothic/ipag.ttf ipag.ttf
$ sudo rm ipagui.ttf
$ sudo ln -s /usr/share/fonts/truetype/ipafont-nonfree-uigothic/ipagui.ttf ipagui.ttf
$

以前に設定したフォントは、zabbixパッケージのバージョアップで上書きされているようなので再度修正します。

$ cd /usr/share/zabbix/include/
$ cp defines.inc.php /tmp
$ sudo vi defines.inc.php
$ diff -u /tmp/defines.inc.php defines.inc.php 
--- /tmp/defines.inc.php        2012-05-10 00:18:03.118983836 +0900
+++ defines.inc.php     2012-05-10 00:19:11.082985097 +0900
@@ -36,7 +36,7 @@
        define('ZBX_WIDGET_ROWS',                               20);
 
        define('ZBX_FONTPATH',                                  realpath('fonts'));     // where to search for font (GD > 2.0.18)
-       define('ZBX_GRAPH_FONT_NAME',                   'DejaVuSans');          // font file name
+       define('ZBX_GRAPH_FONT_NAME',                   'ipagui');              // font file name
        define('ZBX_GRAPH_LEGEND_HEIGHT',120); // when graph height is less then this value, some legend will not show up
 
        define('ZBX_SCRIPT_TIMEOUT',                    60); // in seconds
$  

これで無事にグラフの文字化けが直りました