Prev / Next

2013-08-14 / リモートの Munin node から値を取得する

@karky7 に頼まれた、
Solaris 11 での Munin の設定方法第2弾。

前回([2013-08-13-1])は Solaris 11 上に
jposug のパッケージで Munin をインストールして
ローカルの Munin node から値を取得するところまで書いたので、
今回はリモートの Munin node に接続する方法です。




リモートの Munin node から値を取得する方法は
以下の 3 種類があります。

1. リモートの Munin node に直接接続
2. リモートの Munin node に SSH + nc (netcat) で接続
3. リモートの Munin node に SSH + Munin async で接続



Munin node の ACL 設定

前回は localhost からの接続ということで
Munin node の ACL を特に設定しませんでしたが、
今回はリモートから接続されるので ACL を設定します。

デフォルトで入っている /etc/munin-node.conf を見るとわかりますが、
ACL の設定方法は 2 種類あります。

- allow: 正規表現で接続を許可するホストを指定
- cidr_allow / cidr_deny: CIDR で接続を許可/拒否するホストを指定

allow の場合

allow ^127\.0\.0\.1$
allow ^::1$


cidr_allow / cidr_deny の場合

cidr_allow 127.0.0.1/32
cidr_allow 192.0.2.0/24
cidr_deny  192.0.2.42/32


こんな感じなので環境に合わせて設定してください。

cidr で設定する場合は Perl の Net::CIDR が必要ですが、
jposug のパッケージだと依存関係でインストールされるはずです
(Munin のパッケージビルド時に Net::CIDR がローカルにインストールされているか
ビルドを行なうホストから見える Publisher に登録されていないと
正しく依存関係が設定されないようなので注意が必要)。



1. リモートの Munin node に直接接続

これは単純で、以下のようにリモートの Munin-node を指定してあげるだけ。

リモートの Munin-node が 192.168.1.2 なら

[example.com]
    address 192.168.1.2
    use_node_name yes


リモートの Munin-node 側で接続を受け付けるように
acl を設定しておく必要があります。



2. リモートの Munin node に SSH + nc (netcat) で接続

2、3 の方法では SSH を使うので、munin が pass phrase なしで
リモートに SSH ログインできるようにしておく必要があります。

Munin のパッケージで調整するべきですが、
今のところ、ユーザ munin の home が / になっているので、
/etc/munin などに変更してください。

home を変更したら、pass phrase なしの鍵を生成し、
公開鍵をリモートホスト上のユーザ(nc や munin-async が叩ければ何でもよい)の
authorized_keys に登録してください。

また、~/.ssh/config の設定が効くので、
必要があれば設定を書いておいてください。

example.com というホストに SSH ログインして、
example.com の値を取得するには、
/etc/munin/munin.conf に以下のように書きます。

[example.com]
   address ssh://example.com/usr/bin/nc 127.0.0.1 4949
   use_node_name yes


また、example.com と同じネットワークセグメント上にある
foo.example.com の Munin node に接続するには、

- ~/.ssh/config に設定を書いて多段 SSH
- example.com に SSH login して nc で foo.example.com に接続

といった方法があります。

~/.ssh/config に設定を書いて多段 SSH

[example.com]
   address ssh://foo.example.com/usr/bin/nc 127.0.0.1 4949
   use_node_name yes


example.com に SSH login して nc で foo.example.com (192.168.1.2) に接続

[example.com]
   address ssh://example.com/usr/bin/nc 192.168.1.2 4949
   use_node_name yes


この場合は example.com (192.168.1.1 とか) から接続することになるので、
munin-node.conf で ACL を設定しておく必要があります。



3. リモートの Munin node に SSH + Munin async で接続

Munin async / Munin asyncd の説明は次回にまわして、
こんな風に設定するとだけ。

[example.com]
   address ssh://example.com/usr/share/munin/munin-async --spoolfetch -s /var/lib/munin/spool/localhost
   use_node_name yes


上の SSH + nc (netcat) 同様の書式で、
munin-async を叩きます。

次回、Munin asyncd の説明につづく(はず)。

つづいた [2013-08-17-1]

1. Solaris 11 上での Munin のインストール & 設定 [2013-08-13-1]
2. リモートの Munin node から値を取得する [2013-08-14-1]
3. Solaris 11 で Munin asyncd を使う [2013-08-17-1]

Referrer (Inside):
[2013-08-17-1] Solaris 11 で Munin asyncd を使う
[2013-08-14-1] リモートの Munin node から値を取得する
[2013-08-13-1] Solaris 11 上での Munin のインストール & 設定
comments powered by Disqus