2011.09.20
【サーバー】Muninをインストールする
だいぶ苦労したのでまとめておく。
まずここからソースをダウンロード。
今回入れたのが1.4.6になる。
Link:Munin - Trac
MuninはPerlで動いている。
Perl内でいろいろとやる関係で参照するライブラリも大量になる。
yumとcpanで必要だったのが以下の通り
$ cpan install Time:HiRes $ cpan install Storable $ cpan install Digest::MD5 $ cpan install Text::Balanced $ cpan install Log::Log4perl $ cpan install HTML::Template $ cpan install Net::Server::Fork $ cpan install LWP::UserAgen # yum install cairo-devel # yum install glib2-devel # yum install pango-devel
そのほかにも明示的に必要とされているのでRRDtoolというのが必要らしい。
Link:RRDtool - About RRDtool
Perlで使用するのでライブラリの作成も行う。
$ ./configure --enable-perl-site-instal
オプションをしてすることで必要なデータは作成してくれるだけなので手動でPerlへコピーが必要となる。
$prefix/lib/perl にデータがあるのでそれを現在使ってるPerlのライブラリにコピーする。
次はMuninの実体作成。
いつも通りtarを解凍する。
何も考えずにmake。
$ make
次にインストールだけどデータを統合するサーバーと情報を取得するノードを作成する。
今回はサーバーもノードも同じところへ入れる。
サーバーのインストールはこんな感じ
# make install
ノードのインストールはこんな感じ
# make install-common-prime install-node-prime install-plugins-prime
次にサーバー側の設定を変更
# vi /etc/opt/munin/munin.conf
まず保存先や出力先を決定
#データ保存先? dbdir /var/opt/munin #html出力先 htmldir /opt/munin/www/docs #ログ出力先? logdir /opt/munin/log/munin #これは何? rundir /var/run/munin
複数のサーバーを監視するではあればその下へノード設定を入れる。
次にノード側の設定を変更
# vi /etc/opt/munin/munin-node.conf
サーバーからのアクセスが許可が取れているかを確認する。
ノードで監視するものを選別する。
/etc/opt/munin/plugins/ にプラグインを配置すると監視対象となる。
標準のプラグインは /opt/munin/lib/plugins/ に入っているのでそのファイルを
シンボリックリンクを貼るのがよいらしい。
メモリ監視の例
# ln -s '/opt/munin/lib/plugins/memory' '/etc/opt/munin/plugins/memory'
これだけだと動くかわからないので動作するかを単体で確認する。
# /opt/munin/lib/plugins/apache_processes autoconf
結果でyesと返ってきたら動作するということになる。
こんなことをひとつひとつやるのは大変なので一括チェックのコマンドがある。
# /opt/munin/sbin/munin-node-configure -suggest
結果のSuggestions列でyesとなったものを入れることができる。
yesのものをすべて加えたいときには以下のようにするとlnコマンドを実行してくれる。
# /opt/munin/sbin/munin-node-configure -shell
今回apache_processesをmunin-node-configureで入れようした際なぜかうまくいかない。
まず、Apacheがserver-statusを返せるようになっていないといけない。
ホストも固定っぽいので以下のコマンドでちゃんと取れないとyesにならない。
$ wget http://127.0.0.1/server-status?auto
apache_processesをautoconfで確認したところperlのpw処理でWarningが出てる関係でうまくいかなかったらしい。
なので手動でシンボリックリンクをを通すことで対応しています。
Muninをコンパイルしたディレクトリの dists/redhat/munin-node.rc を動くように修正して
適度な名前に変更してchkconfigへ登録する。
これで起動させることでノードの準備は完成です。
muninサーバーは munin:muninでないと実行できないようなのでユーザー作成。
# groupadd munin
# useradd -g munin munin
Muninサーバーが動作するか確認する
# sudo -u munin /opt/munin/bin/munin-cron
何も出ていなければ、munin.confのhtmldirへ結果が出ているはずなので
Apacheから見れるようにすれば確認できます。
これをcronで5分おきにすることでhtmldirが更新され状況が定期的に出力されるようになります。
$ crontab -u munin -e */5 * * * * /opt/munin/bin/munin-cron 2>&1
こんなことをいろいろ調べてたら1日終わってました。
いや~つかれた。
まあ、思い通りできてよかったとしましょう。
関連記事