munin 2.0.12 環境構築メモ(munin-master側)

自作の munin plugin 使って OracleDatabase のリソースグラフ化する時のメモ。ここでは Munin-Master 環境。
といっても、基本 Node と変わらずで入れる Perl Module の違いくらいです。


Perl
Nodeと一緒です。5.16.3 使いました。

./Configure -des -Dprefix=/home/oracle/local/munin
make -j 4
make test
make install

Perl-Module
cpanm で入れます。
Mail::Sendmail のテストが固まりますが入力待ちなのでリターン2回くらい入れればそのうちタイムアウトで通って入ります。
IO::Socket::INET6 は ipv6 環境作ってないとテストがエラーになるので、強制インストール。テストスキップでも良いと思います。

export PATH=/home/oracle/local/munin/bin:$PATH
curl -LOk http://xrl.us/cpanm
chmod 755 cpanm
mv cpanm /home/oracle/local/munin/bin/
sudo yum install openssl-devel
sudo yum install db4-devel
cpanm --mirror http://ftp.nara.wide.ad.jp/pub/CPAN Alien::RRDtool
cpanm --mirror http://ftp.nara.wide.ad.jp/pub/CPAN Storable
cpanm --mirror http://ftp.nara.wide.ad.jp/pub/CPAN Digest::MD5
cpanm --mirror http://ftp.nara.wide.ad.jp/pub/CPAN HTML::Template
cpanm --mirror http://ftp.nara.wide.ad.jp/pub/CPAN Params::Validate
cpanm --mirror http://ftp.nara.wide.ad.jp/pub/CPAN Date::Parse
cpanm --mirror http://ftp.nara.wide.ad.jp/pub/CPAN Net::SSLeay
cpanm --mirror http://ftp.nara.wide.ad.jp/pub/CPAN File::Copy::Recursive
cpanm -f --mirror http://ftp.nara.wide.ad.jp/pub/CPAN IO::Socket::INET6
cpanm --mirror http://ftp.nara.wide.ad.jp/pub/CPAN Log::Log4perl
cpanm --mirror http://ftp.nara.wide.ad.jp/pub/CPAN IPC::Shareable
cpanm --mirror http://ftp.nara.wide.ad.jp/pub/CPAN Log::Dispatch
cpanm --mirror http://ftp.nara.wide.ad.jp/pub/CPAN Log::Dispatch::FileRotate
cpanm --mirror http://ftp.nara.wide.ad.jp/pub/CPAN MIME::Lite
cpanm --mirror http://ftp.nara.wide.ad.jp/pub/CPAN Mail::Sender
cpanm --mirror http://ftp.nara.wide.ad.jp/pub/CPAN Mail::Sendmail

■Munin-Master
Node と一緒。PATH 関係はここで全部設定します。perl 部分を絶対 PATH にしたり。内容は作る人のお好みで。

vi Makefile.config

install で丸ごと入れます。後 Node と一緒で、oracle でもう全部動かすことにするので、chown で がっつり oracle にオーナ・パーミッションを変えます。この辺の考え方は好み次第。

make
su
--
make install
cp -pr contrib /home/oracle/local/munin/
ls -l /home/oracle/local/munin/
chown -R oracle:oinstall /home/oracle/local/munin/*
ls -l /home/oracle/local/munin/
exit
--

Makefile.config の設定の仕方が多分マズイために起きているんだと思いますが、一部のソースの perl PATH が変わってくれないので手で直します。

cd /home/oracle/local/munin/sbin
vi munin-node
vi munin-node-configure
vi munin-run
vi munin-sched
===
#!/home/oracle/local/munin/bin/perl
===

cd /home/oracle/local/munin/contrib
vi dump_storable
vi import_db
vi dump_db
vi epoch2localtime
===
#!/home/oracle/local/munin/bin/perl
===

UpdateWorker にパッチあてときます。(前の記事の件です http://nsrzakki.hateblo.jp/entry/2013/04/24/015415

cd /home/oracle/local/munin/lib/perl5/site_perl/5.16.3/Munin/Node/
cp -p UpdateWorker.pm /tmp/UpdateWorker.pm
patch < /home/oracle/local/src/Munin/UpdateWorker.pm.patch


■Munin-Master設定
監視ホストを登録します。
asyncd を使うので、ssh アクセスになります。鍵作って監視先ホストに設定して、sshするようにします。サンプル。

※鍵作る
ssh-keygen -t rsa -b 2048

※監視先ノードで authorized_keys に鍵登録
command="/home/oracle/local/munin/lib/munin-async --spoolfetch",no-pty,from="192.168.xxx.xxx" ssh-rsa xxxxxxxxxx== oracle@hogemaster

※munin.conf に設定
[hogenode]
    address ssh://oracle@hogenode
    use_node_name yes


■実行

※一番最初は手動実行して動作チェック
/home/oracle/local/munin/bin/munin-cron

※上手くいきそうならcron設定
*/5 * * * * /home/oracle/local/munin/bin/munin-cron >/dev/null 2>&1