【Munin】ホスト名にアンダースコアを含むmunin-nodeからデータ取得

【Munin】ホスト名にアンダースコアを含むmunin-nodeからデータ取得 はてなブックマーク - 【Munin】ホスト名にアンダースコアを含むmunin-nodeからデータ取得


■ 気がついたら _ (アンダースコア) を使っていたという話

とある munin-node からデータを取得しようとしたのに、なぜかグラフが生成できずという現象。/var/log/munin/munin-update.log を参照すると、次のようなエラーが。

2013/02/05 12:30:16 [WARNING] Config node XXX.XXX.XXX.XXX listed no
services for AAA_NET.  Please see http://munin-monitoring.org/wiki/
FAQ_no_graphs for further information.
2013/02/05 12:30:17 [INFO] Reaping Munin::Master::UpdateWorker<Group;
XXX.XXX.XXX.XXX>.  Exit value/signal: 0/0

AAA_NET というホスト名のノートからデータが取得できないよ?という内容。AAA_NETは、ダミー。実際には違うホスト名。ログには FAQ を参照するようにあるけれど、該当するような問題も無し。

あれ?データが取れないの?おかしいなと思い、直接 nc (netcat) コマンドで munin-node にアクセスする。

$ nc XXX.XXX.XXX.XXX 4949
#munin node at AAA_NET
list
cpu df df_inode entropy ...(snip)... swap threads uptime user

このように、特に問題無くコマンドの取得が出来る。おかしいなー、と思い、調べてみると、munin-node のホスト名にアンダースコア(_)を含む場合、munin-node 側が認識できないという事が判明。整理すると、

  • hostname コマンドで表示されるホスト名に _ が含まれる場合
    • Red Hat 系は /etc/sysconfig/network の HOSTAME での指定
  • munin-node.conf の hostname でのホスト名指定に _ が含まれる場合

この条件下では、munin-node が正しく稼働していても、Muninマスタ側でデータ収集ができない事が判明。

■具体的な対処

この場合、対象サーバの hostname コマンドの応答を変更する方法があります。ただし、既にシステムが運用している場合など、再起動や設定変更が難しい場合もあるでしょう。

そういうときは、munin-node.conf の中で、違う hostname を定義してあげれば回避できます。

# vi /etc/munin/munin-node.conf
hostname AAANET

あとは、munin-node restart で設定が反映され、正しく Munin 側でもデータ収集・グラフ生成が可能になります。

■References

どさにっき – ドメイン名のアンスコ
http://ya.maya.st/d/200605c.html#s20060529_2

RFC 1034 – Domain names – concepts and facilities
http://tools.ietf.org/html/rfc1034