サーバーリソースの監視
サーバーリソース監視の必要性
サーバーへのアクセスが増えてくるとサーバーリソースが不足してきます。サーバーリソースを増強する手段として最も容易に思いつくのがサーバー自体を増強することです。VPSではサーバー増強が容易なので、サーバーリソースが不足してくるとすぐにVPSをもう1契約増やしたくなる気持ちは分からなくもありません。
しかし一口にサーバーリソースと言っても、CPU、メモリ、ディスクI/O、そしてネットワークといったハードウエアリソース要素があります。サーバーリソース全体が不足なように見えて実はメモリが不足しているだけなので、サーバー自体を増強せずともメモリだけ増やしてあげれば済むということは多いです。もしくは不良プログラムがハードウエアリソースを浪費させていたので、むしろプログラムを直した方がよい、ということもよく起こります。
このようにサーバーリソースの各要素を正確に把握できるようにしておくと、無駄にサーバーを増やす必要がなくなるため、何らかの手段でサーバーリソースを監視できるようにしておくことは大切です。そこで今回はサーバーリソースを監視できる様々なツールの中から、RRDToolを用いたperlベースのリソースモニタリングツール「Munin」をご紹介いたします。
→参照:Munin
Muninの最大の特徴は導入が容易ということです。同様の用途でよく使われるMRTGやCactiなどでは、ハードウエア利用状況を取得するためにSNMPというプロトコルを利用しますが、SNMPを利用するためにはサーバーやネットワークなどでいろいろな設定が必要となり手間がかかります。それに対してMuninではmunin-nodeというノード用デーモンを各監視対象サーバーに簡単な操作や設定で入れておくだけで、あとはノード用デーモンが監視サーバーに適時データを自動送信してグラフ化してくれるようになります。
図1:Muninの構成 |
Muninでグラフ化が行える対象としては先ほど挙げたCPU、メモリ、ディスクI/O、そしてネットワークといったハードウエアリソースの他に、apache・MySQLやPostgreSQL・sendmail・BINDなどがあります。さらにMuninではプラグインを追加すればありとあらゆる数値をグラフ化できるようになります。
Muninのインストール
それでは実際にMuninを入れてみましょう。
※今回も便宜上CentOSを前提とします。なお今回監視サーバーと監視対象サーバーが以下のような構成であると仮定します。
monsvr 10.0.0.1 # 監視サーバー host1 10.0.0.11 # 監視対象サーバー
最初に、監視サーバーと監視対象サーバーにそれぞれ必要なパッケージをインストールします。yumでMuninをインストールしようとする場合、標準のリポジトリには残念ながらMuninが存在しませんので、他のリポジトリを指定してからyumでインストールすることになります。
# rpm -Uvh http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-4.noarch.rpm # cat > /etc/yum.repos.d/dag.repo [dag] name=Dag RPM Repository for Red Hat Enterprise Linux baseurl=http://ftp.riken.jp/Linux/dag/redhat/el4/en/x86_64/dag/ <- 32bit OSの場合はx86_64の代わりにi386 gpgcheck=1 gpgkey=http://dag.wieers.com/rpm/packages/RPM-GPG-KEY.dag.txt enabled=1 ●監視サーバーの場合 # yum -y --enablerepo=dag install munin-node # yum -y --enablerepo=dag install munin # yum -y install httpd ●監視対象サーバーの場合 # yum -y --enablerepo=dag install munin-node # sed -i 's/enabled=1/enabled=0/' /etc/yum.repos.d/dag.repo