Muninの「Pango-WARNING **: Invalid UTF-8 string passed to pango_la」エラー

自宅のサーバ環境の移行をしていて、以下のようなエラーを発見(root宛てメールは管理者宛に転送しているのでメールで検知)。サーバの環境はCentOS 5.4 64bit(カーネル:2.6.18-164.15.1.el5)、Muninはmunin-1.2.5-2.el5.rfを使用している環境である。おそらく初めて見かけた時に手当てしていたのだと思うが、昔すぎて覚えていないので再び調査と対応を行う。


Pango-WARNING **: Invalid UTF-8 string passed to pango_layout_set_text()

先人達の知恵によると、問題の箇所はMuninのハードディスク監視用のプラグイン「/etc/munin/plugins/hddtemp_smartctl」にあるようだ。原因箇所は以下の部分(温度を指す「℃」)


121 if (defined $ARGV[0]) {
122 if ($ARGV[0] eq 'autoconf') {
123 if ($smartctl and -x $smartctl) {
124 if (@drives) {
125 print "yes\n";
126 exit 0;
127 } else {
128 print "no (no drives known)\n";
129 exit 1;
130 }
131 } else {
132 print "no (smartctl not found)\n";
133 exit 1;
134 }
135 } elsif ($ARGV[0] eq 'config') {
136 print "graph_title HDD temperature\n";
137 print "graph_args --base 1000 -l 0\n";
138 print "graph_vlabel temp in °C\n";
139 print "graph_category sensors\n";
140 print "graph_info This graph shows the temperature in degrees Celsius of the hard drives in the machine.\n";
141 print "$_.label $_\n" foreach @drives;
142 exit 0;
143 }
144 }
問題の箇所(セルシウス温度表記)「°C」を「Deg(degree).C」などと修正することで解決するが、今回の対象サーバでは仮想サーバのためHDDの温度監視自体不要ということで、プラグイン自体を無効化して対応終了。めでたしめでたし。