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

自作の munin plugin 使って OracleDatabase のリソースグラフ化する時のメモ。ここでは Munin-Node 環境を作るまで。

oracle plugin はシェルベースで、sqlplus を使ってインスタンスへアクセスします。またリスナ依存を排除するため、ローカル接続を行います。アクセスのしやすさを優先して、munin-node は oracle ユーザで動かすことにしています。
同じ OS 構成ベースであればディレクトリ固めて展開できるように、perl とかも全部1ディレクトリに放り込みます。


Perl
5.16.3 使いました

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

Perl-Module
cpanm で入れます。
Net::SSLeay のために openssl-devel が、DB_File のために db4-devel が必要です。
munin-node において、DB_File は asyncd を使わない場合は(多分)不要なはずです。今回は asyncd 使うので必須。

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 Net::Server
cpanm --mirror http://ftp.nara.wide.ad.jp/pub/CPAN Net::SNMP
cpanm --mirror http://ftp.nara.wide.ad.jp/pub/CPAN Crypt::DES
cpanm --mirror http://ftp.nara.wide.ad.jp/pub/CPAN Digest::SHA1
cpanm --mirror http://ftp.nara.wide.ad.jp/pub/CPAN Digest::HMAC
cpanm --mirror http://ftp.nara.wide.ad.jp/pub/CPAN Net::SSLeay
cpanm --mirror http://ftp.nara.wide.ad.jp/pub/CPAN DB_File

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

vi Makefile.config

munin-async を使うので async-prime も必要です。後 oracle でもう全部動かすことにするので、chown で がっつり oracle にオーナ・パーミッションを変えます。この辺の考え方は好み次第。

make
su
--
make install-common-prime install-node-prime install-plugins-prime install-async-prime
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
===

SpoolReader にパッチあてときます。(前の記事の件です 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 SpoolReader.pm /tmp/SpoolReader.pm
patch < /home/oracle/local/src/Munin/SpoolReader.pm.patch


■Munin-Node設定
asyncd を同じノードに立てるので、アクセス元を localhost だけにしておきます。
あとは必要な default_plugin 関係を追記。

cd /home/oracle/local/munin/etc/
vi munin-node.conf
- add default_plugin_user oracle
- add default_plugin_group oinstall
- mod user oracle
- mod group oinstall
- mod #host *
- mod host 127.0.0.1


■プラグイン設定
山ほどサンプルがあるので、お好きなように設定しましょう。
oracleプラグイン部分は別に書く。


■起動
こんな感じ。実運用時向けに起動スクリプトも作ってあるけど、こんなん別に誰でもかけるしな。。
プロセスダウン検知どうしよう・・・というのが実はあるんですが、本当にどうしよう。munin-limit側で考えるか。

/home/oracle/local/munin/sbin/munin-node
/home/oracle/local/munin/lib/munin-asyncd &

とりあえずここまで。