レビュー

Muninをカスタマイズして表示されるグラフの種類を増やしてみる


以前にGIGAZINEで紹介した「Munin」はMRTGに比べて劇的にインストールが簡単、なおかつシステムを監視していろいろな値を取得してグラフ化してくれるわけですが、今回はMuninで有効化されていないプラグインを有効にする方法と、有効化されているのにグラフが全く表示されない場合の対処方法、それから追加でプラグインを使う方法です。

というのも、どういうわけかGIGAZINEを新サーバにした途端にMySQLのグラフが消えてしまったため。どうやらMySQLプラグインへのシンボリックリンクがなくなっているだけでなく、値が正常に取得できていないため、RPMによるインストール時に最初から外されてしまった模様。同様にApache関連のMuninプラグインも有効化されていないようです。

というわけで以下、Muninにグラフを追加する方法あれこれ。
◆Muninのインストール
まずはおさらい。今回はRed Hat Enterprise Linux ES4(RHEL4)にMuninをインストールする手順。最初にmunin-nodeをインストール。依存関係が発生するため、事前にいくつかインストールしておかないとだめだったので結果的には以下のファイルをそろえてインストールすることになりました。

rpm -ivh sysstat-5.0.5-11.rhel4.i386.rpm
rpm -ivh perl-Net-Server-0.90-1.2.el4.rf.noarch.rpm
rpm -ivh perl-Crypt-DES-2.05-3.2.el4.rf.i386.rpm
rpm -ivh perl-Net-SNMP-4.1.2-0.2.el4.rf.noarch.rpm
rpm -ivh munin-node-1.2.5-1rhel4.noarch.rpm

次はmunin自体のインストール。これも事前にいくつかインストールしておかないとダメだったので以下のようになりました。rrdtoolはあんまりバージョンが上だとMuninで動作しない場合がある模様。

rpm -ivh perl-HTML-Template-2.7-1.2.el4.rf.noarch.rpm
rpm -ivh perl-DateManip-5.42a-3.noarch.rpm
rpm -ivh rrdtool-1.0.50-3.el4.rf.i386.rpm
rpm -ivh perl-rrdtool-1.0.50-1.2.el4.rf.i386.rpm
rpm -ivh munin-1.2.5-1rhel4.noarch.rpm

その他の詳細は以下の記事を参考に。

MRTGよりお手軽に負荷やトラフィックをグラフ化できる「Munin」 - GIGAZINE

あとはマシンの再起動時に自動起動するように「ntsysv」コマンドで設定しておけばOK。前回はコレを忘れていたのでマシン再起動時にグラフが描画されていない時間が発生してしまいました……しくしく。

◆Muninのプラグインで無効になっているものを有効にしてグラフを追加する
Muninのグラフの種類はプラグインを追加することで増えます。今回はデフォルトで用意されているMySQL関連のグラフを追加してみましょう。

まずMuninのプラグイン本体は以下の場所にあります。

/usr/share/munin/plugins/

そしてシンボリックリンクが以下の場所に張られています。

/etc/munin/plugins/

つまり、「ln -s」でシンボリックリンクを張ればグラフの種類が増えるというわけ。lnコマンドは以下のような感じ。

ln -s リンク元ファイル名フルパス リンク先ファイル名フルパス

というわけで、MySQL関連のグラフは以下のようにしてシンボリックリンクを張ればよいわけです。

ln -s /usr/share/munin/plugins/mysql_bytes /etc/munin/plugins/mysql_bytes
ln -s /usr/share/munin/plugins/mysql_isam_space_ /etc/munin/plugins/mysql_isam_space_
ln -s /usr/share/munin/plugins/mysql_queries /etc/munin/plugins/mysql_queries
ln -s /usr/share/munin/plugins/mysql_slowqueries /etc/munin/plugins/mysql_slowqueries
ln -s /usr/share/munin/plugins/mysql_threads /etc/munin/plugins/mysql_threads

ただし、初期インストール時にMySQLのグラフが表示されていないということは、これだけでは動作しないということです。さらに以下の設定が必要です。

Q: Why are the graphs for the MySQL plugin blank?

グラフが表示されない原因は「mysqladmin」の場所が特定できていないためです。そのため、設定ファイルで場所を明示して指定すれば動作するというわけ。まずは以下のコマンドを実行して「mysqladmin」の場所を探しましょう。

which mysqladmin

大体、以下の場所にあります。

/usr/bin/mysqladmin

次に「/etc/munin/plugin-conf.d/munin-node」を開きます。それから以下の行を追加して保存。

env.mysqladmin /usr/bin/mysqladmin

あとは「/etc/init.d/munin-node restart」として、munin-nodeを再起動させれば完了。5分ごとに実行されるので、5分後にちゃんとグラフが表示されているのを確認しておきましょう。

◆Apache関連のグラフを表示させる
まずはシンボリックリンクを張りましょう。

ln -s /usr/share/munin/plugins/apache_accesses /etc/munin/plugins/apache_accesses
ln -s /usr/share/munin/plugins/apache_processes /etc/munin/plugins/apache_processes
ln -s /usr/share/munin/plugins/apache_volume /etc/munin/plugins/apache_volume

それからhttpd.confを開き、以下の行があることを確認。コメントアウトしていたら戻しておきましょう。サーバの活動状況と性能に関する情報を提供する「mod_status」がオフだとプラグインが動作できません。

LoadModule status_module modules/mod_status.so

次にStatusを使用可能にするため、以下のコードを追加、あるいはコメントアウトから戻して変更します。ポイントは「Allow from」のあとにローカルホストから閲覧できるように設定しておくこと。これを設定していないと値が取得できません。127.0.0.1とかlocalhostとかあるいはIPアドレスを割り振っているならばローカルから参照できるIPアドレスを指定しましょう。

<Location /server-status>
SetHandler server-status
Order Deny,Allow
Deny from all
Allow from 127.0.0.1
Allow from localhost
</Location>

それから、ExtendedStatusを「On」にしておきましょう。

ExtendedStatus On

あとは「/etc/init.d/munin-node restart」として、munin-nodeを再起動させれば完了。5分ごとに実行されるので、5分後にちゃんとグラフが表示されているのを確認しておきましょう。ただし一部のグラフはある程度の値がないとなかなか表示されないので、気長に待ちましょう。

◆プラグインをダウンロードして追加する
Muninにはデフォルトでもかなり多くのプラグインがありますが、以下のサイトにさらに多くのプラグインが用意されています。

MuninExchange
http://muninexchange.projects.linpro.no/

「Search」をクリックして「ALL CATEGORIES」を選べば全プラグインを見ることができます。プラグイン名をクリックすれば実際のグラフの画像とコメント、コードを見ることができ、「Download」をクリックすればダウンロード可能です。

今回追加でインストールしたのは以下の4本。
apache_activity:KeepaliveとかClosingとか通常のStatusモジュールで確認できる内容をグラフ化
processes:topコマンドで表示されるsleepingとかzombieとかの値をまとめてグラフ化
mysql_qcache:MySQL4以降で追加されたクエリキャッシュ(query_cache)の数をグラフ化
mysql_qcache_mem:MySQL4以降で追加されたクエリキャッシュ(query_cache)のサイズをグラフ化

ダウンロードしたファイルを「/usr/share/munin/plugins/」以下にアップロードし、以下のコマンドを実行。

ln -s /usr/share/munin/plugins/apache_activity /etc/munin/plugins/apache_activity
ln -s /usr/share/munin/plugins/processes /etc/munin/plugins/processes
ln -s /usr/share/munin/plugins/mysql_qcache /etc/munin/plugins/mysql_qcache
ln -s /usr/share/munin/plugins/mysql_qcache_mem /etc/munin/plugins/mysql_qcache_mem

あとは「/etc/init.d/munin-node restart」として、munin-nodeを再起動させれば完了。5分ごとに実行されるので、5分後にちゃんとグラフが表示されているのを確認しておきましょう。

その他のプラグインで面白そうなのは以下の通り。

apcupsd_ww:UPSの値をグラフ化
cpuload_:特定のプロセス名に限定してCPU負荷をグラフ化。ApacheのみとかMySQLのみとかが可能。
temperatures:weather.noaa.govから取得した気温をグラフ化
xen:Xenで動作する仮想マシンの状況をグラフ化

この記事のタイトルとURLをコピーする

・関連記事
複数のサーバをモニタリングするソフトウェア群「BixData」 - GIGAZINE

Windowsで動作するオープンソースなシステム監視「HealthMonitor」 - GIGAZINE

フリーのサーバ、ネットワークなどの総合監視ソフト「ZABBIX」日本語版 - GIGAZINE

in レビュー,   ソフトウェア,   ネットサービス, Posted by darkhorse

You can read the machine translated English article here.