2007-04/26 Thu

_ munin

muninの話。 まとまったらどっかにまとめて転載する予定。

前提

  • Linux , rpm の知識はあるものとする。
  • Momonga Linux の環境を前提としている。その他の環境では読み替え必要かも。

muninとは何か

  • グラフ化ツール
  • RRDtoolを利用している

どんなグラフが描けるのか。サンプルは以下。

参考サイト

特色

  • 設定が簡単
  • RRDtoolの使用により柔軟なグラフが描ける。(主にMRTG比較)
  • MySQL/PostgreSQLなどのデータベースを使っていない (主にCacti比較)
  • かなり簡単に書けそうなプラグインでグラフの種類を増やせそう

Tags: Linux

_ インストール

以下では 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には含まれない、

  • fedora-usermgmt
  • perl-HTML-Template
  • perl-Net-Server

は自力作成が必要。

$ 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
  • fedora-usermgmt-0.8.91-2m.src.rpm
  • perl-HTML-Template-2.9-1m.nosrc.rpm
  • perl-Net-Server-0.96-1m.nosrc.rpm

をそれぞれ 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

_ munin パッケージの説明

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 パッケージ

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 である。

プラグインスクリプトのパラメータ変更はこのファイルで行なう。


_ Apacheの設定方法

/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:

  • date格納先
  • log格納先

«前の日記(2007-03/31 Sat) 最新 次の日記(2007-06/01 Fri)»