サーバーモニタリングツールMuninをインストールする

2014年02月04日 22時37分

201402042237OMUC00.png

はじめに

Muninは、2004年7月にバージョン1.0.0がリリースされた比較的新しいサーバー監視ツールです。Muninは、サーバー監視ツールとしてサーバーの現在の状況だけで無く、過去の状況もグラフを用いた視覚的によって、把握しやすくなっています。今回は、Muninを用いたサーバー監視システムの構築方法を解説します。

前提条件

構築に必要なサーバー要件および、導入パッケージは下記のとおりです。

  1. 作業環境
    OSWindows 7 Ultimate 32bit
    CygwinSetup Version 2.831
    VirtualBox4.3.6 r91406
    Vagrant1.4.1
  2. サーバ要件
    Muninサーバーホスト名munin-server
    IPアドレス192.168.0.50
    OSCentOS 6.5 i386
    Apache2.2.15
    サードパーティリポジトリEPEL
    Muninクライアントホスト名munin-client
    IPアドレス192.168.0.20
    OSCentOS 6.5 i386
    Apache2.2.15
    MySQL5.5.35
    サードパーティリポジトリEPEL

    なお、Muninサーバーは、毎時0分/5分/10分など5分単位で閲覧用のウエブページとグラフを作成します。
    公式サイトでは、ハードウェアスペックについて言及されていませんが、メモリ不足はサーバーのパフォーマンスに影響を及ぼしますので、Muninサーバーに搭載するメモリ容量は多い方が良いでしょう。

  3. 導入するパッケージ
    サーバーパッケージ名バージョン
    Muninサーバーmunin2.0.19
    Muninクライアントmunin-node2.0.19

Muninサーバーの構築

  1. Muninパッケージのインストール

    EPELリポジトリから、Muninパッケージをインストールします。

    $ sudo yum -y install munin --enablerepo=epel
    
    201402042237OMUC01.png
    201402042237OMUC02.png
  2. 管理ページへのユーザー認証設定

    Muninをインストールすると、Muninの管理ページがインストールされますので、管理ページへのアクセス制御を行うために、ユーザー認証情報を設定します、

    $ sudo htpasswd -b /etc/munin/munin-htpasswd munin admin
    

    ここでは、ユーザー名にmunin、パスワードにadminを指定しています。

    201402042237OMUC03.png
  3. Apacheの再起動

    Apacheを再起動し、変更を有効にします。

    $ sudo service httpd restart
    
    201402042237OMUC04.png
  4. サービス起動と自動起動設定

    Muninをインストールすると、監視エージェントのmunin-nodeもインストールされますので、エージェントの起動と自動起動設定を行います。

    $ sudo service munin-node start
    $ sudo chkconfig munin-node on
    
    201402042237OMUC05.png
  5. 動作確認

    Muninを起動すると、ディスク使用量やメモリ使用量などの監視データの収集が開始され、収集されたデータを元に管理ページが5分おきに作成されます。
    このため、動作確認の際には5分以上待ってから下記のページにアクセスします。

    http://192.168.0.50/munin/
    

    Muninが作成するコンテンツは、デフォルトの/var/html/www/munin下に作成されるため、HTMLファイルが生成されたら、ウエブサイトにアクセスします。

    201402042237OMUC06.png

    初めて管理ページにアクセスすると、ユーザー認証画面が表示されますので、手順2で指定したID、パスワードを入力します。

    認証に成功すると、Muninのトップページが表示され、監視中のサーバーが表示されます。

    201402042237OMUC07.png
    201402042237OMUC08.png

監視項目の追加

エージェントが監視するデフォルトの監視項目(Sensor)は、disk/network/postfix/processes/systemの6項目となっていますので、サーバー上で稼働するApacheのSensor(監視項目)を追加します。

  1. Apacheプラグインの設定

    デフォルトのSensorは、プラグインの設定は不要ですが、デフォルト以外のSensorにはプラグインの設定が必要となります。

    $ sudo ln -s /usr/share/munin/plugins/apache_accesses /etc/munin/plugins/apache_accesses
    $ sudo ln -s /usr/share/munin/plugins/apache_processes /etc/munin/plugins/apache_processes
    $ sudo ln -s /usr/share/munin/plugins/apache_volume /etc/munin/plugins/apache_volume
    
    201402042237OMUC09.png
  2. httpd.confの設定

    /etc/httpd/conf/httpd.confを下記のとおり設定します。

    LoadModule status_module modules/mod_status.so
    ExtendedStatus On
    

    設定が終了したら、Apacheを再起動します。

    $ sudo service httpd restart
    
    201402042237OMUC10.png
    201402042237OMUC11.png
  3. Apacheプラグインの動作確認

    セットアップしたApache監視プラグインの動作を確認します。

    $ munin-run apache_accesses
    $ munin-run apache_processes
    $ munin-run apache_volume
    
    201402042237OMUC12.png
  4. munin-nodeの再起動

    エージェントの再起動を行います。

    $ sudo service munin-node restart
    
    201402042237OMUC13.png
  5. 動作確認

    追加したSensorが、トップページに表示されるか確認します。
    [disk]監視項目の左隣りに、[apache]が追加されています。

    201402042237OMUC14.png
    201402042237OMUC15.png

    以上で、Muninサーバーの構築は終了です。

Muninクライアントの構築

ここでは、Apacheおよび、MySQL Sensorの監視センサーを追加します。

  1. munin-nodeパッケージのインストール

    監視対象サーバーに、監視エージェントをインストールします。

    $ sudo yum -y install munin-node --enablerepo=epel
    
    201402042237OMUC16.png
    201402042237OMUC17.png
  2. munin-node設定ファイルの編集

    監視サーバーのIPアドレスを設定ファイルに追加します。

    sudo vi /etc/munin/munin-node.conf
    
    allow ^192\.168\.0\.50$
    
    201402042237OMUC18.png
  3. Apache Sensorの追加

    前述の監視項目の追加と同じ要領で、Apache Sensorを追加します。

  4. MySQL Sensorの追加

    MySQLを監視項目として追加します。

    1. プラグイン設定ファイルの編集

      MySQLのアクセスに必要な情報を、設定ファイルに追加します。
      env.mysqloptsには、mysqlコマンドに渡すコマンドライン引数を指定します。
      ここでは、MySQLのrootユーザーのパスワードを設定しています。

      $ sudo vi /etc/munin/plugin-conf.d/munin-node
      
      [mysql*]
      env.mysqlopts -u root -padmin
      env.mysqladmin /usr/bin/mysqladmin
      
      201402042237OMUC19.png
    2. MySQLプラグインの設定

      MySQLプラグインを設定します。

      $ for p in mysql_bytes mysql_innodb mysql_isam_space_ mysql_queries mysql_slowqueries mysql_threads; do sudo ln -s /usr/share/munin/plugins/$p /etc/munin/plugins/$p; done
      
      201402042237OMUC20.png
  5. munin-nodeの起動と自動起動設定

    エージェントの起動と自動起動設定を行います。

    $ sudo service munin-node start
    $ sudo chkconfig munin-node on
    
    201402042237OMUC21.png

    以上で、Muninクライアントの構築は終了です。

監視対象サーバーの追加

Muninクライアントの設定が終了したら、MuninサーバーにMuninクライアントを追加します。

  1. munin-node設定ファイルの編集

    MuninクライアントのIPアドレスを、設定ファイルに追加します。

    sudo vi /etc/munin/munin.conf
    
    [munin-client]
      address 192.168.0.20
      use_node_name yes
    
    201402042237OMUC22.png
  2. 動作確認

    追加したMuninクライアントとクライアントに追加したSensorが、トップページに表示されるか確認します。
    追加が成功すると、/var/www/html/munin下にmunin.conf内で指定した名前(ここでは、munin-client)のフォルダが作成され、エージェントから取得した監視データを元にHTMLファイルが作成されます。

    201402042237OMUC23.png
    201402042237OMUC24.png
    201402042237OMUC25.png
    201402042237OMUC26.png

まとめ

ここまで、Muninを用いたサーバー監視システムの構築方法を解説しました。Muninは、Nagiosと同様にサーバーの現在の状況を監視するだけでなく、監視結果を日次、週次、月次、年次単位でグラフ表示することもできます。
Nagiosと組み合わせて使用することで、緊急時のアラートをNagiosで実行し、運用状況をMuninで把握すると言った運用がお勧めです。