Muninのグラフの文字化けに対応

OS: Ubuntu Server 18.04 LTS
Munin 2.0.37

Muninサーバが生み出すグラフが文字化けして見た目がたいへん酷い。時刻の隣に四角で囲まれた4桁の数字が並ぶばかりで一体何なのかと思う。

6728や91D1といった数値は果たしてどういった意味を持つのかしらと思って調べると文字をUnicodeで表すときの符号位置(code point)が16進数で表示されている模様である。対応するフォントが見当たら無い為にこういう有様となるようである。

此れには打つ手が二つあり、一つは日本語での表示を諦めて英語表記にして茶を濁す方針である。その為には /etc/cron.d/munin の編集を余儀なくされる。/usr/bin/munin-cron を実行する前に LANG=C; を挿入してデフォルトのロケールで表示するよう設定するとよかった。今後のmuninパッケージの更新によって上書きされる恐れもあるから決して気を抜けない措置である。

$ sudo vi /etc/cron.d/munin
#*/5 * * * *     munin if [ -x /usr/bin/munin-cron ]; then /usr/bin/munin-cron; fi
*/5 * * * *     munin if [ -x /usr/bin/munin-cron ]; then LANG=C; /usr/bin/munin-cron; fi

もう一方は日本語にも対応できるフォントを導入する方策である。Googleが開発を進めていると言われるNoto(No more tofu)というフォントに注目してみると、此れは良さそうである。fonts-notoパッケージをインストールするだけで終いであるから気軽であるし豆腐が名称の由来というのも健康的で大変よろこばしいとおもう。

Tofu (豆腐) is Japanese jargon for unicode replacement character “?”
(U+FFFD) often displayed as replacement for unassigned or unknown
characters.

ストレージの容量がシビアな環境なら日中韓の文字をカバーしているfonts-noto-cjkパッケージだけでも事足りるようである。

$ sudo apt install fonts-noto
(snip)
以下のパッケージが新たにインストールされます:
  fonts-noto fonts-noto-cjk fonts-noto-hinted fonts-noto-mono fonts-noto-unhinted

あとはグラフが更新されるのを待つか手動で更新すると文字化けが解消している。

参考:
誰でも使えるオープンソース フォント システム
Google Noto Fonts
Unicode一覧表