Muninによるサーバ監視システムを構築する(CentOS 6.5)

Muninを用いたサーバー監視システムの構築

はじめに

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

前提条件

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

  1. サーバー要件

    サーバー要件は、次のとおりです。

    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サーバーに搭載するメモリ容量は多い方が良いでしょう。

  2. 導入するパッケージ

    導入するパッケージは、次のとおりです。

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

Muninサーバーの構築

下記の手順で構築します。

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

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

    $ sudo yum -y install munin --enablerepo=epel
    
    [vagrant@munin-server ~]$ sudo yum -y install munin --enablerepo=epel
    Loaded plugins: fastestmirror
    Loading mirror speeds from cached hostfile
    epel/metalink                                            | 6.5 kB     00:00
    Including mirror: www.ftp.ne.jp
    Including mirror: ftp.iij.ad.jp
    Including mirror: ftp.tsukuba.wide.ad.jp
    Including mirror: ftp.riken.jp
    Including mirror: mirror.fairway.ne.jp
    Including mirror: ftp.nara.wide.ad.jp
    Including mirror: ftp.jaist.ac.jp
     * base: www.ftp.ne.jp
    Including mirror: ftp.kddilabs.jp
    Including mirror: ftp.iij.ad.jp
    Including mirror: ftp.tsukuba.wide.ad.jp
    Including mirror: ftp.riken.jp
    Including mirror: ftp.jaist.ac.jp
     * epel: ftp.kddilabs.jp
    Including mirror: www.ftp.ne.jp
    Including mirror: ftp.iij.ad.jp
    Including mirror: ftp.tsukuba.wide.ad.jp
    Including mirror: ftp.riken.jp
    Including mirror: mirror.fairway.ne.jp
    Including mirror: ftp.nara.wide.ad.jp
    Including mirror: ftp.jaist.ac.jp
     * extras: www.ftp.ne.jp
    Including mirror: www.ftp.ne.jp
    Including mirror: ftp.iij.ad.jp
    Including mirror: ftp.tsukuba.wide.ad.jp
    Including mirror: ftp.riken.jp
    
      perl-Mail-Sendmail.noarch 0:0.79-12.el6
      perl-MailTools.noarch 0:2.04-4.el6
      perl-Net-CIDR.noarch 0:0.14-1.el6
      perl-Net-DNS.i686 0:0.65-5.el6
      perl-Net-SNMP.noarch 0:5.2.0-4.el6
      perl-Net-SSLeay.i686 0:1.35-9.el6
      perl-Net-Server.noarch 0:0.97-7.el6
      perl-Params-Validate.i686 0:0.92-3.el6
      perl-Socket6.i686 0:0.23-4.el6
      perl-String-CRC32.i686 0:1.4-9.el6
      perl-Taint-Runtime.i686 0:0.03-9.el6
      perl-Time-HiRes.i686 4:1.9721-136.el6
      perl-TimeDate.noarch 1:1.16-11.1.el6
      perl-URI.noarch 0:1.40-2.el6
      perl-XML-DOM.noarch 0:1.44-7.el6
      perl-XML-LibXML.i686 1:1.70-5.el6
      perl-XML-NamespaceSupport.noarch 0:1.10-3.el6
      perl-XML-Parser.i686 0:2.36-7.el6
      perl-XML-RegExp.noarch 0:0.03-7.el6
      perl-XML-SAX.noarch 0:0.96-7.el6
      perl-YAML-Syck.i686 0:1.07-4.el6
      perl-libwww-perl.noarch 0:5.833-2.el6
      pixman.i686 0:0.26.2-5.1.el6_5
      postgresql-libs.i686 0:8.4.18-1.el6_4
      rrdtool.i686 0:1.3.8-6.el6
      rrdtool-perl.i686 0:1.3.8-6.el6
      sysstat.i686 0:9.0.4-22.el6
    
    Complete!
    
  2. 管理ページへのユーザー認証設定

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

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

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

  3. Apacheの再起動

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

    $ sudo service httpd restart
    
    4002-04
  4. munin-nodeの起動と自動起動設定

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

    $ sudo service munin-node start
    $ sudo chkconfig munin-node on
    
    4002-05
  5. 動作確認

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

    http://192.168.0.50/munin/
    

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

    4002-06

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

    4002-07

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

    4002-08

監視項目の追加

エージェントが監視するデフォルトの監視項目(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
    
    4002-10
  2. httpd.confの設定

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

    LoadModule status_module modules/mod_status.so
    ExtendedStatus On
    
    4002-11 4002-12

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

    $ sudo service httpd restart
    
    4002-13
  3. Apacheプラグインの動作確認

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

    $ munin-run apache_accesses
    $ munin-run apache_processes
    $ munin-run apache_volume
    
    4002-14
  4. munin-nodeの再起動

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

    $ sudo service munin-node restart
    
    4002-15
  5. 動作確認

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

    4002-16 4002-17

Muninクライアントの構築

下記の手順で構築します。
ここでは、Apacheおよび、MySQL Sensorを追加します。

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

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

    $ sudo yum -y install munin-node --enablerepo=epel
    
    [vagrant@munin-client ~]$ sudo yum -y install munin-node --enablerepo=epel
    Loaded plugins: fastestmirror
    Loading mirror speeds from cached hostfile
    epel/metalink                                            | 6.5 kB     00:00
    Including mirror: www.ftp.ne.jp
    Including mirror: ftp.riken.jp
    Including mirror: ftp.iij.ad.jp
    Including mirror: ftp.tsukuba.wide.ad.jp
    Including mirror: ftp.nara.wide.ad.jp
    Including mirror: ftp.jaist.ac.jp
    Including mirror: mirror.fairway.ne.jp
     * base: www.ftp.ne.jp
    Including mirror: ftp.kddilabs.jp
    Including mirror: ftp.riken.jp
    Including mirror: ftp.iij.ad.jp
    Including mirror: ftp.tsukuba.wide.ad.jp
    Including mirror: ftp.jaist.ac.jp
     * epel: ftp.kddilabs.jp
    Including mirror: www.ftp.ne.jp
    Including mirror: ftp.riken.jp
    Including mirror: ftp.iij.ad.jp
    Including mirror: ftp.tsukuba.wide.ad.jp
    Including mirror: ftp.nara.wide.ad.jp
    Including mirror: ftp.jaist.ac.jp
    Including mirror: mirror.fairway.ne.jp
     * extras: www.ftp.ne.jp
    Including mirror: www.ftp.ne.jp
    Including mirror: ftp.riken.jp
    Including mirror: ftp.iij.ad.jp
    Including mirror: ftp.tsukuba.wide.ad.jp
    Including mirror: ftp.nara.wide.ad.jp
    Including mirror: ftp.jaist.ac.jp
    Including mirror: mirror.fairway.ne.jp
    
      hdparm.i686 0:9.43-4.el6
      munin-common.noarch 0:2.0.19-1.el6
      perl-Compress-Raw-Zlib.i686 1:2.021-136.el6
      perl-Compress-Zlib.i686 0:2.021-136.el6
      perl-Crypt-DES.i686 0:2.05-9.el6
      perl-DBD-Pg.i686 0:2.15.1-4.el6_3
      perl-Digest-HMAC.noarch 0:1.01-22.el6
      perl-Digest-SHA1.i686 0:2.12-2.el6
      perl-HTML-Parser.i686 0:3.64-2.el6
      perl-HTML-Tagset.noarch 0:3.20-4.el6
      perl-IO-Compress-Base.i686 0:2.021-136.el6
      perl-IO-Compress-Zlib.i686 0:2.021-136.el6
      perl-IO-Multiplex.noarch 0:1.13-1.el6
      perl-List-MoreUtils.i686 0:0.22-10.el6
      perl-Net-CIDR.noarch 0:0.14-1.el6
      perl-Net-DNS.i686 0:0.65-5.el6
      perl-Net-SNMP.noarch 0:5.2.0-4.el6
      perl-Net-Server.noarch 0:0.97-7.el6
      perl-Time-HiRes.i686 4:1.9721-136.el6
      perl-URI.noarch 0:1.40-2.el6
      perl-XML-LibXML.i686 1:1.70-5.el6
      perl-XML-NamespaceSupport.noarch 0:1.10-3.el6
      perl-XML-Parser.i686 0:2.36-7.el6
      perl-XML-SAX.noarch 0:0.96-7.el6
      perl-libwww-perl.noarch 0:5.833-2.el6
      postgresql-libs.i686 0:8.4.18-1.el6_4
      sysstat.i686 0:9.0.4-22.el6
    
    Complete!
    
  2. munin-node設定ファイルの編集

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

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

    前述の”監視項目の追加”の手順1から3までを実行して、Apache Sensorを追加します。

  4. MySQL Sensorの追加

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

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

    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
    
    4002-21 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
    
    4002-22
  5. munin-nodeの起動と自動起動設定

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

    $ sudo service munin-node start
    $ sudo chkconfig munin-node on
    
    [vagrant@munin-client ~]$ sudo service munin-node start
    Starting Munin Node:                                       [  OK  ]
    [vagrant@munin-client ~]$ sudo chkconfig munin-node on
    

監視対象サーバーの追加

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
    
    4002-24
  2. 動作確認

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

    4002-25 4002-26 4002-28

まとめ

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

Comments are closed.