muninの話。 まとまったらどっかにまとめて転載する予定。
前提
muninとは何か
どんなグラフが描けるのか。サンプルは以下。
参考サイト
特色
以下では Mo3 にinstallする話を説明する。
2006年4月26日現在のMomonga svn trunkには入っているので、Mo4からは yum install 可能。 さくっと、
sudo yum install munin munin-node
で終了する。
Mo3ではパッケージが存在しないため、ソースパッケージからバイナリパッケージ作成するところから始める。
ソースパッケージは Momonga trunk から持ってくることにする。
調べた限り、Requires/BuildRequires の書き換えは不要だった。
つまり spec を変更する必要は無いということ。
tarballからの野良ビルドはアホらしい推奨しないので説明しない。
以下のように、src.rpm を取得してビルドする。
$ wget ftp://dist.momonga-linux.org/pub/momonga/development/SRPMS/munin-1.2.5-2m.nosrc.rpm $ wget ftp://dist.momonga-linux.org/pub/momonga/development/SOURCES/munin_1.2.5.tar.gz $ mv munin_1.2.5.tar.gz ~/rpm/SOURCES $ rpmbuild --rebuild --target=i686 munin-1.2.5-2m.nosrc.rpm 2>&1 |tee log-munin-01.txt
ちなみに、 ~/.rpmmacros は以下。
%_topdir %(echo $HOME)/rpm %_specoptdir %(echo $HOME)/rpm/specopt
以下のパッケージが作成される。
~/rpm/RPMS/noarch/munin-node-1.2.5-2m.noarch.rpm ~/rpm/RPMS/noarch/munin-1.2.5-2m.noarch.rpm
munin-node パッケージには、 munin-node コマンドと プラグイン が入っている。
munin パッケージには、munin-cron コマンドと perl のモジュール Munin.pm、 グラフ作成のためのバイナリ、munin-graph , munin-update などが付属している。
インストールする。
sudo rpm -ivh ~/rpm/RPMS/noarch/munin-node-1.2.5-2m.noarch.rpm sudo rpm -ivh ~/rpm/RPMS/noarch/munin-1.2.5-2m.noarch.rpm
しかしパッケージの依存関係で失敗する。
$ sudo rpm -ivh ~/rpm/RPMS/noarch/munin-1.2.5-2m.noarch.rpm error: Failed dependencies: fedora-usermgmt >= 0.7 is needed by munin-1.2.5-2m.noarch perl(Date::Manip) is needed by munin-1.2.5-2m.noarch perl(HTML::Template) is needed by munin-1.2.5-2m.noarch perl(RRDs) is needed by munin-1.2.5-2m.noarch perl-HTML-Template is needed by munin-1.2.5-2m.noarch perl-Net-SNMP is needed by munin-1.2.5-2m.noarch perl-Net-Server is needed by munin-1.2.5-2m.noarch rrdtool is needed by munin-1.2.5-2m.noarch [4] 28334 exit 1 sudo rpm -ivh ~/rpm/RPMS/noarch/munin-1.2.5-2m.noarch.rpm $
yumでパッケージをインストールする。 まず Mo3 であるやつから片付ける。
$ sudo yum install rrdtool rrdtool-perl $ sudo yum install perl-DateManip $ sudo yum install perl-Net-SNMP
ちなみに何のパッケージに入っているか分からない場合は、以下のように調べる。
$ yum whatprovides 'perl(HTML::Template)' perl-HTML-Template.noarch 2.9-1m development
だとわかる。(trunk環境の場合)
ベタな調べ方としては、
$ rpm -qa | grep perl | grep HTML
みたいにして、目視で調べる。
Mo3には含まれない、
は自力作成が必要。
$ wget ftp://dist.momonga-linux.org/pub/momonga/development/SRPMS/fedora-usermgmt-0.8.91-2m.src.rpm $ wget ftp://dist.momonga-linux.org/pub/momonga/development/SRPMS/perl-HTML-Template-2.9-1m.nosrc.rpm $ wget ftp://dist.momonga-linux.org/pub/momonga/development/SRPMS/perl-Net-Server-0.96-1m.nosrc.rpm $ wget ftp://dist.momonga-linux.org/pub/momonga/development/SOURCES/HTML-Template-2.9.tar.gz $ wget ftp://dist.momonga-linux.org/pub/momonga/development/SOURCES/Net-Server-0.96.tar.gz
をそれぞれ rpmbuild する。
$ rpmbuild --rebuild --target=i686 fedora-usermgmt-0.8.91-2m.src.rpm $ rpmbuild --rebuild --target=i686 perl-HTML-Template-2.9-1m.nosrc.rpm $ rpmbuild --rebuild --target=i686 perl-Net-Server-0.96-1m.nosrc.rpm
作成したパッケージをインストール
$ sudo rpm -ivh ~/rpm/RPMS/noarch/fedora-usermgmt* $ sudo rpm -ivh ~/rpm/RPMS/noarch/perl-HTML-Template-2.9-1m.noarch.rpm $ sudo rpm -ivh ~/rpm/RPMS/noarch/perl-Net-Server-0.96-1m.noarch.rpm $ sudo rpm -ivh ~/rpm/RPMS/noarch/munin-1.2.5-2m.noarch.rpm
次に munin-node のインストール
$ sudo rpm -ivh ~/rpm/RPMS/noarch/munin-node-1.2.5-2m.noarch.rpm error: Failed dependencies: perl(LWP::Simple) is needed by munin-node-1.2.5-2m.noarch sysstat is needed by munin-node-1.2.5-2m.noarch [4] 29070 exit 1 sudo rpm -ivh ~/rpm/RPMS/noarch/munin-node-1.2.5-2m.noarch.rpm $
$ sudo yum install sysstat $ sudo yum install perl-libwww-perl
再度 munin-node を install
$ sudo rpm -ivh ~/rpm/RPMS/noarch/munin-node-1.2.5-2m.noarch.rpm
mininパッケージ
munin パッケージでは /etc/cron.d/munin が読み込まれ、 cron によって /usr/bin/munin-cron コマンドが実行される。(MRTG と同じ5分間隔)
/usr/bin/munin-cron では、 /usr/share/munin/munin-update 、/usr/share/munin/munin-limits 、 /usr/share/munin/munin-graph 、 /usr/share/munin/munin-html コマンドが順次実行される。
minin-node パッケージでは、/etc/init.d/munin-node にあるとおり、 munin-node コマンドを常時起動させる。
chkconfig を使って起動させるようにしておく。
$ chkconfig --list |grep munin munin-node 0:off 1:off 2:off 3:off 4:off 5:off 6:off $ sudo chkconfig --level 345 munin-node on $ sudo sh /etc/init.d/munin-node start Starting Munin Node: [ OK ] $
プラグイン
プラグインは /usr/share/munin/plugins 以下に入っている。
インストール時に自動検出されたプラグインが
/etc/munin/plugins/hoge -> /usr/share/munin/plugins/hoge
のようにシンボリックリンクを張られている。
対象ホスト名などを引数に取るスクリプトは、
ntp_ntp1_jst_mfeed_ad_jp -> /usr/share/munin/plugins/ntp_
このように、元のファイル名の_(アンダーバー) の後ろにホスト名が付加される。
手動でシンボリックリンクを張るときも同様の手法を使用することになる。
muninの設定ファイルは /etc/munin/munin.conf である。 ここで、
dbdir /var/lib/munin htmldir /var/www/html/munin logdir /var/log/munin rundir /var/run/munin
このように設定することで、
http://サーバの名前/munin/
以下で munin の結果が見えるようにする。 そこにファイルを置けない場合は、 httpd.conf で Alias すればいい。
munin-node の設定ファイルは /etc/munin/munin-node.conf である。
内容の setseid は typo みたいだが。 設定変更後は、munin-node の restart を忘れないこと。
また、プラグインの設定ファイルは、 /etc/munin/plugins.conf である。
プラグインスクリプトのパラメータ変更はこのファイルで行なう。
/etc/httpd/conf/httpd.conf を変更する。
-#ExtendedStatus On +ExtendedStatus On
-#<Location /server-status> -# SetHandler server-status -# Order deny,allow -# Deny from all -# Allow from .example.com -#</Location> +<Location /server-status> + SetHandler server-status + Order deny,allow + Deny from all + Allow from 127.0.0.1 +</Location>
TODO: