サーバー監視 · 2 min read · Oct 15, 2025

Debian 8 (Jessie) における Munin と Monit を使用したサーバー監視

この記事では、Debian 8 (Jessie) サーバーを Munin と Monit で監視する方法について説明します。munin は、サーバーのほぼすべての側面(負荷平均、メモリ使用量、CPU 使用量、MySQL スループット、eth0 トラフィックなど)に関する素晴らしいグラフィックを、あまり設定をせずに生成します。一方、Monit は Apache、MySQL、Postfix などのサービスの可用性をチェックし、サービスが期待通りに動作していない場合は再起動などの適切なアクションを取ります。この二つの組み合わせにより、現在または今後の問題(「すぐにより大きなサーバーが必要です、負荷平均が急速に増加しています。」)を認識できるグラフィックと、監視されたサービスの可用性を確保する watchdog が得られます。

Munin は複数のサーバーを監視できますが、ここではインストールされているシステムの監視についてのみ説明します。

このチュートリアルは Debian 8 (Jessie) 用に書かれましたが、設定は Ubuntu などの他のディストリビューションにもほとんど変更なしで適用できるはずです。

まず最初に、これはそのようなシステムを設定する唯一の方法ではないことを言いたいです。この目標を達成する方法はたくさんありますが、これは私が取る方法です。これがあなたにとって機能することを保証するものではありません!

1 前提条件

私たちのシステムのホスト名は server1.example.com で、ドキュメントルート /var/www/www.example.com/web のウェブサイト www.example.com を持っています。

Munin をインストールする前にシステムが最新であることを確認してください。以下を実行します:

apt-get update  
apt-get upgrade

Apache は Munin ページを表示するために使用され、apache fcgid モジュールは Munin グラフのズーム機能に必要です。apt を使用して apache と fcgid モジュールをインストールします。

apt-get install apache2 libcgi-fast-perl libapache2-mod-fcgid

apache で fcgid モジュールを有効にします。

a2enmod fcgid

2 Munin のインストールと設定

Debian Jessie に Munin をインストールするには、以下を実行します:

apt-get install munin munin-node munin-plugins-extra 

サーバーが MySQL または MariaDB を実行している場合は、MySQL を監視するためにいくつかの追加の Munin プラグインを有効にします:

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

次に、Munin 設定ファイル /etc/munin/munin.conf を編集する必要があります。dbdir、htmldir、logdir、rundir、tmpldir の行のコメントを外します(デフォルト値は問題ありません)。HTML 出力で localhost.localdomain の代わりに server1.example.com を使用するように、シンプルホストツリーセクションで localhost.localdomain を server1.example.com に置き換えます。コメントを外した後、変更されたファイルは次のようになります:

nano /etc/munin/munin.conf
# Munin の例の設定ファイル、'make build' によって生成されました
  
# 次の三つの変数は RRD データベース、HTML 出力、ログ、およびロック/pid ファイルの場所を指定します。これらはすべて、munin-cron を実行しているユーザーが書き込み可能でなければなりません。すべてデフォルト値はここに表示されている値に設定されています。
#  
dbdir /var/lib/munin
htmldir /var/cache/munin/www
logdir /var/log/munin
rundir /var/run/munin  
  
# HTML テンプレートを探す場所
#  
tmpldir /etc/munin/templates  
  
# 静的 www ファイルを探す場所
#  
#staticdir /etc/munin/static  
  
# 一時的な cgi ファイルはここにあります。cgi ユーザー(通常は nobody または httpd)が書き込み可能である必要があります。
#  
# cgitmpdir /var/lib/munin/cgi-tmp

# (正確に一つ)すべてのファイルを含むディレクトリ。
includedir /etc/munin/munin-conf.d
[...]  
# シンプルホストツリー  
[server1.example.com]  
 address 127.0.0.1  
 use_node_name yes
[...]  

Apache 2.4 の Munin 設定ファイル /etc/munin/apache24.conf を見つける必要があります - これは、munin の HTML 出力ディレクトリ /var/cache/munin/www へのエイリアスを定義しており、これによりこのサーバー上のすべてのウェブサイトから相対パス /munin を使用して munin にアクセスできます(例:http://www.example.com/munin)。

apache の Munin 設定はデフォルトでは有効になっていません。これは DebianWheezy から Jessie に変更されました。新しい設定ディレクトリは /etc/apache2/conf-enabled であり、古いバージョン(Wheezy や Squeeze)で使用されていた /etc/apache2/conf.d ではありません。

以下のコマンドを実行して、設定を有効にし、apache に読み込ませます。

cd /etc/apache2/conf-enabled/  
ln -s /etc/munin/apache24.conf munin.conf  
service apache2 restart

Require local の行をコメントアウトし、代わりに Require all granted と Options FollowSymLinks SymLinksIfOwnerMatch を追加してください(そうしないと、localhost からのみ Munin 出力にアクセスできるようになります):

nano /etc/munin/apache24.conf
Alias /munin /var/cache/munin/www  
  
 # Require local  
 Require all granted  
 Options FollowSymLinks SymLinksIfOwnerMatch  
 Options None  
  
  
ScriptAlias /munin-cgi/munin-cgi-graph /usr/lib/munin/cgi/munin-cgi-graph  
  
 # Require local  
 Require all granted  
 Options FollowSymLinks SymLinksIfOwnerMatch  
   
 SetHandler fcgid-script  
   
   
 SetHandler cgi-script  
   

Apache を再起動します:

service apache2 restart

次に Munin を再起動します:

service munin-node restart

数分待って、Munin が最初の出力を生成できるようにし、その後ブラウザで http://www.example.com/munin/ にアクセスすると、最初の統計が表示されます:

Munin グラフ

(これは munin が生成する多くのグラフィックの小さな抜粋に過ぎません…)

3 Munin 出力ディレクトリのパスワード保護(オプションですが強く推奨)

今、すべての人がサーバーに関するすべての小さな統計を見られるようにしたくない場合は、munin 出力ディレクトリをパスワード保護することが良いアイデアです。

これを行うには、パスワードファイル /etc/munin/munin-htpasswd を作成する必要があります。ユーザー名 admin でログインしたいので、以下を実行します:

htpasswd -c /etc/munin/munin-htpasswd admin

admin のパスワードを入力します。その後、再度 /etc/munin/apache24.conf を開きます…

nano /etc/munin/apache24.conf

… “Require all granted” の行をコメントアウトし、私が赤でマークした行を追加します:

Alias /munin /var/cache/munin/www  
  
 # Require local  
 # Require all granted  
 AuthUserFile /etc/munin/munin-htpasswd  
 AuthName "Munin"  
 AuthType Basic  
 Require valid-user  
 Options None  
  
  
ScriptAlias /munin-cgi/munin-cgi-graph /usr/lib/munin/cgi/munin-cgi-graph  
  
 # Require local  
 # Require all granted  
 AuthUserFile /etc/munin/munin-htpasswd  
 AuthName "Munin"  
 AuthType Basic  
 Require valid-user  
   
 SetHandler fcgid-script  
   
   
 SetHandler cgi-script  
   

その後、Apache を再起動します:

service apache2 restart

4 Munin での追加モジュールの有効化

Munin コマンド “munin-node-configure –suggest” を使用して、サーバーで有効にできる追加の Munin モジュールの推奨を取得できます。以下を実行します:

munin-node-configure --suggest

出力は次のようになります:

Munin ノード設定状況

「used」列はモジュールが有効かどうかを示し、「Suggestions」列はサーバーがこのモジュールで監視できるサービスを実行しているかどうかを示します。モジュールを有効にするために /etc/munin/plugins にシンボリックリンクを作成します。

ここでは、apache_* モジュールを有効にします:

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

新しい設定を読み込むために Munin を再起動します。

service munin-node restart
Share: X/Twitter LinkedIn

新しい投稿を受信箱で受け取る

スパムはありません。いつでも購読を解除できます。