Muninで監視する(Munin 1.4.5の場合)

サーバの稼働状態を監視したいと思い、sysstat/sarでデータ取得を行っていますが、sarコマンドでチェックすると言っても、数字の羅列を見るよりは次のような要件を満たす方法の方が何かと便利です。

  • グラフ化
  • 自動化
  • Webインターフェース

これらを手軽にできるツールがMuninです。
sarの収集データをgnuplotするなどを考えていましたが、基本的に同じデータを元にするのであれば、Muninを使ってみようと思い、導入しました。

さて、前置きは別記事『Muninで監視する(Munin 1.2.5の場合)』と同じなのですが、バージョンの違いにより、インストールで作成されるディレクトリとファイルに違いがありますので、改めてまとめておきたいと思います。

実際に実行した結果、作成されるグラフ例です。これはCPU使用率を示しています。「Mon 00:00」少し前にバージョン1.2.5からバージョン1.4.5にアップデートしたために、測定できていない時間帯があります。

CPU使用率

CPU使用率

インストール時点では、次のようなデータのグラフが生成され、Webブラウザで参照できるようになります。

localhost
    disk
        Disk usage in percent
        Inode usage in percent
    network
        Firewall Throughput
        HTTP loadtime of a page
        Netstat
        venet0 errors
        venet0 traffic
    postfix
        Postfix bytes throughput
        Postfix Mailqueue
    processes
        Fork rate
        Number of threads
        Processes
        Processes priority
        VMstat
    system
        Available entropy
        CPU usage
        File table usage
        Inode table usage
        Interrupts and context switches
        Load average
        Logged in users
        Memory usage
        Swap in/out
        Uptime

以下に、インストール手順を整理しておきます。

1.Muninのインストール

Muninは、収集されたデータを集約してグラフ化する役割を持つ Munin(Munin master)と、データを収集するエージェントの役割を持つ Munin node からなり、ここではローカルサーバでローカルサーバの監視を行う単純な構成を構築しますので、Munin、Munin node の両方をインストールします。
ただし、投稿時点で公開されているバイナリインストールパッケージはバージョン1.4.5です。『Munin – Trac』を参照して確認してください。
なお、i386の場合には、EPELリポジトリを強制的に参照させ、Rpmforgeを参照しないようにすることで、バージョン1.4.5をスムースにインストールすることができます。

[root ~]# yum --enablerepo=epel --disablerepo=rpmforge install munin munin-node
(略)
Installed:
  munin.noarch 0:1.4.5-5.el5          munin-node.noarch 0:1.4.5-5.el5

Dependency Installed:
  hdparm.i386 0:6.6-2
  libart_lgpl.i386 0:2.3.17-4
  munin-common.noarch 0:1.4.5-5.el5
  perl-Crypt-DES.i386 0:2.05-3.el5
  perl-DateManip.noarch 0:5.44-1.2.1
  perl-Digest-HMAC.noarch 0:1.01-15
  perl-Digest-SHA1.i386 0:2.11-1.2.1
  perl-HTML-Template.noarch 0:2.9-1.el5.2
  perl-IO-Multiplex.noarch 0:1.08-5.el5
  perl-IPC-Shareable.noarch 0:0.60-3.el5
  perl-Log-Dispatch.noarch 0:2.20-1.el5
  perl-Log-Dispatch-FileRotate.noarch 0:1.16-1.el5
  perl-Log-Log4perl.noarch 0:1.13-2.el5
  perl-MIME-Lite.noarch 0:3.01-5.el5
  perl-Mail-Sender.noarch 0:0.8.13-2.el5.1
  perl-Mail-Sendmail.noarch 0:0.79-9.el5.1
  perl-MailTools.noarch 0:1.77-1.el5.centos
  perl-Net-SNMP.noarch 0:5.2.0-1.el5.1
  perl-Net-Server.noarch 0:0.96-2.el5
  perl-Params-Validate.i386 0:0.88-3.el5
  perl-TimeDate.noarch 1:1.16-5.el5
  perl-XML-DOM.noarch 0:1.44-2.el5
  perl-XML-Parser.i386 0:2.34-6.1.2.2.1
  perl-XML-RegExp.noarch 0:0.03-2.el5
  rrdtool.i386 0:1.2.27-3.el5
  rrdtool-perl.i386 0:1.2.27-3.el5

Complete!

実はこれだけでは依存関係でインストールされたパッケージに古いものが含まれているようですので、アップデートを行いました。

[root ~]# yum update
(略)
Installed:
  perl-Date-Manip.noarch 0:5.56-1.el5.rf   perl-rrdtool.i386 0:1.4.4-1.el5.rf

Dependency Installed:
  libdbi.i386 0:0.8.1-2.1
  lua.i386 0:5.1.4-2.el5.rf
  perl-Email-Date-Format.noarch 0:1.002-1.el5.rf
  perl-Socket6.i386 0:0.19-3.fc6
  ruby.i386 0:1.8.5-19.el5_6.1
  ruby-libs.i386 0:1.8.5-19.el5_6.1
  xorg-x11-fonts-Type1.noarch 0:7.1-2.1.el5

Updated:
  perl-Crypt-DES.i386 0:2.05-3.2.el5.rf
  perl-IO-Multiplex.noarch 0:1.10-1.el5.rf
  perl-Log-Dispatch.noarch 0:2.26-1.el5.rf
  perl-Log-Dispatch-FileRotate.noarch 0:1.19-1.el5.rf
  perl-Log-Log4perl.noarch 0:1.26-1.el5.rf
  perl-MIME-Lite.noarch 0:3.028-1.el5.rf
  perl-Mail-Sender.noarch 0:0.8.16-1.el5.rf
  perl-Net-SNMP.noarch 0:5.2.0-1.2.el5.rf
  perl-Net-Server.noarch 0:0.99-1.el5.rf
  perl-Params-Validate.i386 0:0.95-1.el5.rf
  perl-XML-DOM.noarch 0:1.44-2.el5.rf
  rrdtool.i386 0:1.4.4-1.el5.rf

Replaced:
  perl-DateManip.noarch 0:5.44-1.2.1      rrdtool-perl.i386 0:1.2.27-3.el5

Complete!
2./var/lib/muninのパーミッション変更

インストールされた状態では、ユーザ、グループが102,103などに設定されてしまうディレクトリ、ファイルが存在しますので、次のように変更します。

[root ~]# chown munin:munin -R /var/lib/munin
3.munin-nodeの起動

munin-nodeを起動するだけで、データの収集を5分間隔で行うようになります。

[root ~]# service munin-node start
Starting Munin Node:                                       [  OK  ]
4.LISTENポートの確認

TCPポート4949dLISTENしていることを確認します。

[root ~]# netstat -ln --tcp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address               Foreign Address             State
tcp        0      0 0.0.0.0:4949                0.0.0.0:*                   LISTEN
5.munin-nodeの自動起動の設定
[root ~]# chkconfig --list munin-node
munin-node      0:off   1:off   2:off   3:off   4:off   5:off   6:off
[root ~]# chkconfig munin-node on
[root ~]# chkconfig --list munin-node
munin-node      0:off   1:off   2:on    3:on    4:on    5:on    6:off
6.httpdの設定

バージョン1.2.5では作成されていた /etc/httpd/conf.d/munin.conf は作成されません。
httpdの設定では、次のようにWebドキュメントパスを設定します。

ScriptAlias /munin/cgi/ /var/www/html/munin/cgi/
<Directory /var/www/html/munin/cgi/>
    Options ExecCGI
    Order deny,allow
    Allow from all
</Directory>
Alias /munin/ /var/www/html/munin/
<Directory /var/www/html/munin/>
    Options -Indexes FollowSymLinks
    Order deny,allow
    Allow from all
</Directory>
7.httpdへの設定反映
[root ~]# service httpd reload
httpd を再読み込み中:                                      [  OK  ]

これで、設定はすべて完了です。
すでにmunin-nodeがデータ収集をしているかと思いますので、Webブラウザからグラフを参照できるようになっているはずです。

Comments are closed.