Muninのmemoryプラグインの配色

Munin 2.0.33のときのmemoryプラグインの各項目の表示順は以下の通りだった。

しかしMunin 2.0.40になるとmemoryプラグインにshmemが追加されたため項目の表示順が変わっている。

項目の表示順が変わっているのは問題ないのだが、memoryプラグインの各項目の配色は自動で決定されているため、今までと比べるとかなり見づらくなってしまった。

とくに普段よく確認するunused, swapの色が変わってしまったのがつらい。以前の配色であれば、unusedが黄緑でswapが赤だったので、安全色と警戒色の役割とマッチしていた。2.0.40になってからはunusedが一個ずれて赤になったので、メモリ量が十分に足りている時でも真っ赤に表示されてしまうため、視認性が悪い。

Muninで色を変える

Muninのプラグインの設定で色を変えることができる。

http://munin-monitoring.org/wiki/fieldname.colourに記載されている通りfoo.colour rrggbbで設定できる。

ただ今まで表示されている色と全く同じRGBを指定するのは骨が折れるので、RGB指定の代わりにDefault paletteColor nameを使用するといい。

今回のmemoryプラグインでいうと、shmemが追加された位置から色が一色ずつずれてしまっているので、shmem, cache, buffers, unused, swapについてそれぞれ明示的に色を指定すれば、今までの配色と同じように見える。(vmalloc_used, committed等も色がずれているが、これらのグラフの表示方法はSTACKではなくLINE2と指定されているため、グラフが塗りつぶされるわけではなく線がひかれるだけである。線であれば今までと色が変わってもあまり違和感を感じないため、あえて放置する。)

/usr/share/munin/plugins/memoryを修正し、バックアップファイルとdiff -yした結果を以下に記載する。

print "buffers.info Block device (e.g. harddisk) cache. "       print "buffers.info Block device (e.g. harddisk) cache. "
  "Also where \"dirty\" blocks are stored until written.\         "Also where \"dirty\" blocks are stored until written.\
print "buffers.colour COLOUR5\n";                         <
print "swap.label swap\n";                                      print "swap.label swap\n";
print "swap.draw STACK\n";                                      print "swap.draw STACK\n";
print "swap.info Swap space used.\n";                           print "swap.info Swap space used.\n";
print "swap.colour COLOUR7\n";                            <
print "cached.label cache\n";                                   print "cached.label cache\n";
print "cached.draw STACK\n";                                    print "cached.draw STACK\n";
print "cached.info Parked file data (file content) cache.       print "cached.info Parked file data (file content) cache.
print "cached.colour COLOUR4\n";                          <
print "free.label unused\n";                                    print "free.label unused\n";
print "free.draw STACK\n";                                      print "free.draw STACK\n";
print "free.info Wasted memory. Memory that is not ",           print "free.info Wasted memory. Memory that is not ",
  "used for anything at all.\n";                                  "used for anything at all.\n";
print "free.colour COLOUR6\n";                            <
if (exists $mems{'Shmem'}) {                                    if (exists $mems{'Shmem'}) {
    print "shmem.label shmem\n";                                    print "shmem.label shmem\n";
    print "shmem.draw STACK\n";                                     print "shmem.draw STACK\n";
    print "shmem.info Shared Memory (SYSV SHM segments, t           print "shmem.info Shared Memory (SYSV SHM segments, t
    print "shmem.colour COLOUR21\n";                      <
}                                                               }

新しく追加されたshmemには適当なColor nameを設定し、それ以外のcache, buffers, unused, swapは既存と同じ配色になるようにCOLOUR4からCOLOUR7を指定している。

グラフを確認すると、元の配色と同じように出力されていることがわかる。

Muninの出力順を変える

foo.colourで色を明示的に指定していない場合、Muninの出力順によって配色が決定されるので、memoryプラグインの出力順を変えることでも配色を今までとできるだけ同じようにすることができる。具体的には、shmemをswapの次に出力すればappsからcache, buffers, unused, swapの出力順は既存のものと同じになるため、同じ配色になる。

しかしグラフ上で今までswap, unusedの順で上から描画されていたのにshmemが一番上に描画されることになってしまい、これも視認性を損ねてしまうため、出力順を変更することはやめたほうがいい。

参考までに出力順を変えるには、以下のようにcachedの前でprintされていたshmemをswapの次に変更すればよい。

                                                          >     print "shmem " if exists $mems{'Shmem'};
                                                          >
print "cached ",                                                print "cached ",
  "buffers ",                                                     "buffers ",
    "free ",                                                        "free ",
      "swap ";                                            |           "swap ",
                                                          |             "\n";
print "shmem " if exists $mems{'Shmem'};                  <
print "\n";                                               <