muninで他のマシンから情報を取得する
今までいくつか試してみたけど、すべて同じマシン(OS)内から取得していました。基本的に監視したいマシンにmunin-nodeを入れればいいだけですが、うまくいかなかった場合のメモ。
環境
- CentOS 6.2
- munin / munin-node 2.0.9 (epelからインストール)
設定内容
- マスター側
/etc/munin/munin.conf に[localhost] の書き方を真似て、対象のノードを指定します。 - ノード側
/etc/munin/munin-node.conf に allow , cidr_allow の設定を真似てマスタを指定します。
確認ポイント
- ログをみる
vi /var/log/munin-node/munin-node.log にエラーが出てないか確認します。
環境によってpostfixやlpstatの設定がないのでエラーが出ています。放置しても動くのですが、不要なら削除します。プラグインの解除は /etc/munin/plugins 以下のシンボリックリンクを削除するだけです。 - 情報が取得できているか確認する
ノードをインストールした環境からtelnetで接続できるか確認します。telnet localhost 4949
接続できたら、LISTでプラグイン一覧を取得して、FETCHで取得したいプラグインを指定します。FECH 情報を取得したいプラグイン名
情報の取得がうまく出来ない場合は、設定ファイルを見直してください。/etc/munin/plugins/プラグイン名 autoconf
- マスタからノードに接続できるか確認する
ファイヤーウォールの設定の問題があるので、ノード側の設定ファイル /etc/sysconfig/iptables に4949ポートのアクセスを許可する設定をいれて、iptablesを再起動してください。-A INPUT -m state --state NEW -m tcp -p tcp --dport 4949 -j ACCEPT
設定後、情報の取得を待つのが面倒なので、マスタが側から手動取得コマンドを実行します。実行ユーザmuninは環境によって置き換えます。sudo -u munin /usr/bin/munin-cron
- それでも動かない場合、取得するためのモジュールがそろっているか確認します。
たとえば、xxx-develがインストールされていないかとか、moduleがインストールされていない(有効になっていない)か、など。