◆シンプルかつ強力なリソースモニタ Munin を RHEL6 に入れてみた
こんな感じのリソースモニタ Munin を RHEL6 (x86_64) に入れたときのメモです。(※ Munin ( http://munin-monitoring.org/ ) は、リソースの変遷を資格化し、ブラウザから簡単に参照することができるツールです。オープンソースとして開発・公開されています。)
munin の特徴を一言で言うと「シンプル」につきると思います。インストールも、この類のツールとしては簡単ですし、デフォルトのままでも多くの監視項目を自動表示させることができます。しかも、プラグインを使った拡張性も備えているので、使い勝手の幅が広いのが特徴です。
◆インストール手順の概要
Munin は、本体(データ収集・画像生成を行うmuninおよびmunin-commonパッケージ)とノード(サーバのリソースを収集し、ポート4949で応答するエージェントmunin-node)それぞれのパッケージが存在します。1つのサーバ上でMuninを動かすのであれば、単純に本体とmunin-node 両方をインストールします。既に本体用サーバが用意されており、データ収集だけが目的であれば、munin-node のみセットアップします。
◆Munin本体のセットアップ編
RHEL 6.x (Red Hat Enterprise Linux)に幾つかのパッケージを yum 経由でインストールします。もし、パッケージの依存性が発生する場合、あわせて関連パッケージもインストールしてください。
# yum -y install \ rrdtool rrdtool-devel rrdtool-perl \ perl-Date-Manip perl-Socket6 \ perl-Digest-SHA1 \ perl-Digest-HMAC \ perl-Time-HiRes perl-DBI \ perl-CGI perl-Test-Simple
次に、munin 本体パッケージと、その他関連する RPM パッケージをダウンロードします。
# mkdir /usr/local/src/munin # cd /usr/local/src/munin # wget http://download.fedora.redhat.com/pub/epel/6/i386/munin-1.4.5-6.el6.noarch.rpm # wget http://download.fedora.redhat.com/pub/epel/6/i386/munin-common-1.4.5-6.el6.noarch.rpm # wget http://download.fedora.redhat.com/pub/epel/6/i386/munin-node-1.4.5-6.el6.noarch.rpm # wget http://apt.sw.be/redhat/el6/en/i386/rpmforge/RPMS/perl-Log-Log4perl-1.26-1.el6.rf.noarch.rpm # wget http://apt.sw.be/redhat/el6/en/i386/rpmforge/RPMS/perl-Log-Log4perl-RRDs-1.26-1.el6.rf.noarch.rpm # wget http://apt.sw.be/redhat/el6/en/i386/rpmforge/RPMS/perl-HTML-Template-2.9-1.el6.rf.noarch.rpm # wget http://apt.sw.be/redhat/el6/en/i386/rpmforge/RPMS/perl-Net-SNMP-5.2.0-1.2.el6.rf.noarch.rpm # wget http://apt.sw.be/redhat/el6/en/i386/rpmforge/RPMS/perl-Net-Server-0.99-1.el6.rf.noarch.rpm # wget http://apt.sw.be/redhat/el6/en/x86_64/rpmforge/RPMS/perl-Crypt-DES-2.05-3.2.el6.rf.x86_64.rpm
次に、まとめて RPM パッケージをインストールします。以下、実行例です。
# rpm -ivh * 準備中... ########################################### [100%] 1:perl-Net-Server ########################################### [ 11%] 2:perl-Log-Log4perl ########################################### [ 22%] 3:munin-common ########################################### [ 33%] 4:perl-HTML-Template ########################################### [ 44%] 5:perl-Crypt-DES ########################################### [ 56%] 6:perl-Net-SNMP ########################################### [ 67%] 7:munin ########################################### [ 78%] 8:munin-node ########################################### [ 89%] 9:perl-Log-Log4perl-RRDs ########################################### [100%]
エラーがなければ、問題ありません。環境によっては、いくつか足りないパッケージが出てくるかもしれません。画面の指示に従ってパッケージを用意します。
◆munin 本体の初期設定
ブラウザからmuninの参照を出来るように設定を進めます(munin の HTML ファイルや画像等は、/var/www/html/munin ディレクトリに展開されます)。
Apacheでは http://ホスト名/munin/ としてアクセス出来るようになります。ここではBASIC認証が施されるようになっていますので、まずパスワード設定を行います。
# htpasswd -c /etc/munin/munin-htpasswd 【ID】 New password: 【パスワード入力】 Re-type new password:【パスワード再入力】 Adding password for user 【ID】
あとは、ブラウザからアクセスすると、BASIC認証がかかれば設定完了です。
◆muninノードの設定(munin-node)
munin 本体が入っている所とは別のサーバに、ノードを単体でインストールする時の手順です。複数のサーバに設定する必要がなければ、この手順は飛ばして下さい。
# yum -y install perl-DBI perl-Socket6 perl-Digest-SHA1 perl-Digest-HMAC perl-Time-HiRes
パッケージを入手して、インストールします。
# cd /usr/local/src;mkdir munin-node;cd munin-node # wget http://download.fedora.redhat.com/pub/epel/6/i386/munin-common-1.4.5-6.el6.noarch.rpm # wget http://download.fedora.redhat.com/pub/epel/6/i386/munin-node-1.4.5-6.el6.noarch.rpm # wget http://apt.sw.be/redhat/el6/en/i386/rpmforge/RPMS/perl-Net-SNMP-5.2.0-1.2.el6.rf.noarch.rpm # wget http://apt.sw.be/redhat/el6/en/i386/rpmforge/RPMS/perl-Net-Server-0.99-1.el6.rf.noarch.rpm # wget http://apt.sw.be/redhat/el6/en/x86_64/rpmforge/RPMS/perl-Crypt-DES-2.05-3.2.el6.rf.x86_64.rpm # rpm -ivh *.rpm
rpmによるインストールを行った後、次のように特にエラーがでなければ大丈夫です。
# rpm -ivh * 警告: munin-common-1.4.5-6.el6.noarch.rpm: ヘッダ V3 RSA/SHA256 Signature, key ID 0608b895: NOKEY 警告: perl-Crypt-DES-2.05-3.2.el6.rf.x86_64.rpm: ヘッダ V3 DSA/SHA1 Signature, key ID 6b8d79e6: NOKEY 準備中... ########################################### [100%] 1:perl-Net-Server ########################################### [ 20%] 2:perl-Crypt-DES ########################################### [ 40%] 3:perl-Net-SNMP ########################################### [ 60%] 4:munin-common ########################################### [ 80%] 5:munin-node ########################################### [100%]
次に、設定ファイルを編集します。
# vi /etc/munin/munin-node.conf
ファイルを開いたら、host_name (自ホスト名)、munin-node への接続を許可するホストを設定する allow 行を適時変更します。
あとは、munin-node を起動します。サーバ起動時に、自動起動するようにも設定しておくと便利です。
# /etc/rc.d/init.d/munin-node start; /sbin/chkconfig munin-node on; /sbin/chkconfig --list munin-node ; ps ax | grep munin Starting Munin Node: [ OK ] munin-node 0:off 1:off 2:on 3:on 4:on 5:on 6:off 539 ? Ss 0:00 /usr/sbin/munin-node 1159 pts/3 S+ 0:00 grep munin
最後に動作確認をします。
$ telnet 127.0.0.1 4949 Trying 127.0.0.1... Connected to 127.0.0.1. Escape character is '^]'. # munin node at 127.0.0.1 list ←入力してエンターを押すと、取得可能な情報の一覧が表示されます。
ポート4949は、munin-node のデフォルト待ち受けポート番号です。もしconnection refuled になった場合は、munin-node が正常起動しているかどうかや、munin-node.cfg の allow 設定が適切かどうかを確認してください。うまくいかないときは、ログファイル /var/log/munin-node.log を参照する事も大切です。
※munin-node.cfg 設定ファイルを編集したあとは、munin-node デーモンを再起動するまで設定が有効にならないので注意が必要です。
◆munin 本体に、ノード情報を追加する
ノードの設定がおわった後は、munin 本体側で、どのノードを参照するかの設定を行います。設定ファイルを編集します。
# vi /etc/munin/munin.conf
ファイルを開いたら、次のような記述を追加します。
[AdministrtorNode;www] address 127.0.0.1
※この記述の意味するところは、「AdministratorNode」グループの「www」というホスト名のアドレスが127.0.0.1ですよ、と記述しています。グループ名は任意で指定できます。グループを設定しておくと、同一グループのリソース情報を一画面に並べることが出来るので便利です。
あとは、5分後画面を開いてみると、新しいノード情報がブラウザから確認できると思います。
以上、ちょっと大雑把なφ(..)メモメモ的なものになってしまいましたが、説明の至らない所、分かりづらい所がありましたら、コメント欄などでお訊ね下さい。