序章

Muninは、Webブラウザを介してグラフで情報を提供するシステム、ネットワーク、およびインフラストラクチャの監視アプリケーションです。 クライアントサーバーアーキテクチャを中心に設計されており、インストールされているマシン(Muninマスター)と、Muninの用語でMuninノードと呼ばれる任意の数のクライアントマシンを監視するように構成できます。

この記事では、Muninをインストールして構成し、インストール先のサーバーと1つのノードを監視します。 Muninを複数のノードにインストールするには、各システムにノードを作成するための指示に従ってください。

前提条件

  • 2つのUbuntu14.04ドロップレット。 サーバーの1つはMuninマスターになります。 もう1つはMuninノードになります。
  • ドロップレットごとに、sudo権限を持つroot以外のユーザー

このチュートリアルのすべてのコマンドは、root以外のユーザーとして実行する必要があります。 コマンドにrootアクセスが必要な場合は、その前にsudoが付きます。 Ubuntu 14.04を使用したサーバーの初期設定では、ユーザーを追加してsudoアクセスを許可する方法について説明しています。

ステップ1—必要なパッケージのインストール

まずは無人マスターの作業を始めます。 Muninをインストールする前に、いくつかの依存関係をインストールする必要があります。

Muninは、NginxやLighttpdなどの最も一般的なWebサーバーで機能できますが、デフォルトでは、ApacheWebサーバーで機能するように設計されています。 したがって、ApacheがMuninマスターにインストールおよび構成されていることを確認してください。 まだインストールされていない場合は、次を使用してインストールします。

  1. sudo apt-get update
  2. sudo apt-get install -y apache2 apache2-utils

生成されたグラフの拡大を担当するダイナゾーム機能がクリック時に正しく機能することを確認するには、次をインストールします。

  1. sudo apt-get install -y libcgi-fast-perl libapache2-mod-fcgid

これら2つのパッケージをインストールした後、fcgidモジュールを有効にする必要があります。 再確認するには、次のように入力します。

  1. /usr/sbin/apachectl -M | grep -i cgi

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

fcgid_module (shared)

出力が空白の場合、有効になっていません。 次に、以下を使用して有効にすることができます。

  1. sudo a2enmod fcgid

apachectlコマンドを実行する場合、次の警告は無視してかまいません。

Could not reliably determine the server's fully qualified domain name ...

Apacheは、この警告とともにMuninと引き続き連携します。

グラフのズームを適切に機能させる残りの構成については、ステップ3で説明します。

ステップ2—MuninマスターにMuninをインストールする

Muninのインストールパッケージは公式のUbuntuリポジトリで入手できるため、ディストリビューションのパッケージマネージャーを使用してインストールできます。 このステップでは、Muninマスターパッケージをインストールします。 リポジトリ内のバージョンは、最新の安定したリリースです。

インストール先のサーバーを監視するためにインストールするには、次のように入力します。

  1. sudo apt-get install -y munin

ステップ3—Muninマスターの構成

Muninのメイン構成ファイルmunin.confおよびそれが機能するために必要なその他のファイルは、/etc/muninディレクトリとそのサブディレクトリにあります。 このステップでは、Muninマスターのメイン構成ファイルとそのApache構成apache.confを変更します。

メイン構成ファイルは、グローバルセクションと少なくとも1つのホストセクションの少なくとも2つのセクションで構成されています。 オプションで、groupセクションを含めることができます。 ホストセクションとグループセクションは、角かっこで囲まれたそれぞれの名前で始まります。 このファイルには、変数の定義、Muninがサーバーとサービスを監視する方法、および監視するサーバーを管理するディレクティブが含まれています。

まず、メインの構成ファイルを開きます。

  1. cd /etc/munin
  2. sudo nano munin.conf

これらの行を探してコメントを外します—それらの前にある記号を削除します。 dbdir は、実際の監視情報を含むすべてのrrdfileを格納します。 htmldirは画像とサイトファイルを保存します。 logdirはログを維持します。 rundirは状態ファイルを保持します。 tmpldir は、HTMLテンプレートの場所です。 htmldirを/var/cache/munin/wwwからWebディレクトリに変更してください。 この例では、/var/www/muninを使用します。

/etc/munin/munin.conf
dbdir     /var/lib/munin
htmldir   /var/www/munin
logdir    /var/log/munin
rundir    /var/run/munin

tmpldir	/etc/munin/templates

htmldirは存在しないため、muninシステムユーザーが所有するようにchownを作成してみましょう。

  1. sudo mkdir /var/www/munin
  2. sudo chown munin:munin /var/www/munin

最後に、munin.confで、最初のホストツリーを探します。 ホストマシンにアクセスして監視する方法を定義します。 それは読むべきです:

/etc/munin/munin.conf
[localhost.localdomain]
    address 127.0.0.1
    use_node_name yes

そのツリーの名前を、サーバーを一意に識別する名前に変更します。 これは、MuninWebインターフェイスに表示される名前です。 この例では、 MuninMaster を使用しますが、サーバーのホスト名を使用することもできます。

/etc/munin/munin.conf
[MuninMaster]
    address 127.0.0.1
    use_node_name yes

設定ファイルは以上ですので、保存して閉じてください。

同じ/etc/muninディレクトリ内で、次に変更するファイルはapache.confで、これはMuninのApache構成ファイルです。 /etc/apache2/conf-available/munin.confに対称リンクされ、/etc/apache2/conf-enabled/munin.confに対称リンクされます。 変更を開始するには、nanoで開きます。

  1. sudo nano apache.conf

ファイルの最上部で、munin.confで指定して以前に作成したhtmldirパスを反映するように最初の行を変更します。 この記事で使用されているディレクトリパスに基づいて、次のようになります。これにより、サーバーでホストされているサーバーのIPアドレスまたはドメインに munin を追加して、MuninのWebインターフェイスにアクセスできるようになります。

/etc/munin/apache.conf
Alias /munin /var/www/munin

次に、 Directory セクションを探し、ディレクトリを/var/www/muninに変更します。 また、最初の4行をコメントアウト(または削除)してから、次のように2つの新しいディレクティブを追加します。

/etc/munin/apache.conf
<Directory /var/www/munin>
        #Order allow,deny
        #Allow from localhost 127.0.0.0/8 ::1
        #Allow from all
        #Options None

        Require all granted
        Options FollowSymLinks SymLinksIfOwnerMatch

        ...

        ...

</Directory>

最後から2番目の場所のセクションを探し、最初の2行をコメントアウトまたは削除し、次のように2つの新しい行を追加します。

/etc/munin/apache.conf
<Location /munin-cgi/munin-cgi-graph>
        #Order allow,deny
        #Allow from localhost 127.0.0.0/8 ::1

        Require all granted
        Options FollowSymLinks SymLinksIfOwnerMatch

        ...

        ...

</Location>

最後の場所のセクションにも同じことを行います。

/etc/munin/apache.conf
<Location /munin-cgi/munin-cgi-html>
        #Order allow,deny
        #Allow from localhost 127.0.0.0/8 ::1

        Require all granted
        Options FollowSymLinks SymLinksIfOwnerMatch

        ...

        ...

</Location>

ファイルを保存して閉じます。 次に、ApacheとMuninを再起動します。

sudo service apache2 restart
sudo service munin-node restart

ブラウザでserver-ip-address / muninを指定すると、MuninのWebインターフェイスにアクセスできるようになります。

Munin Web Interface

ステップ4—Muninマスターにノードを追加する

このステップでは、リモートサーバー(またはノード)をMuninマスターに追加して、同じWebインターフェイス内で監視できるようにする方法を示します。 これには、Muninマスターの構成ファイルを変更して、ノードのホストツリーを指定することが含まれます。 次に、Muninノードパッケージをノードにインストールし、Muninマスターが監視できるように構成ファイルを変更する必要があります。

作成した2番目のUbuntuドロップレットであるMuninノードから始めましょう。

Muninノードにログインし、パッケージデータベースを更新して、Muninノードパッケージをインストールします。

  1. sudo apt-get update
  2. sudo apt-get install -y munin-node

インストールが正常に完了すると、ノードの構成ファイルは/etc/muninディレクトリにあるはずです。 nanoで開きます。

  1. sudo nano /etc/munin/munin-node.conf

ファイルの途中で、 allow ^ 127.0.0.1 $ 行を探し、MuninマスターのIPアドレスを反映するように変更します。 IPアドレスは正規表現形式であることに注意してください。マスターサーバーのIPアドレスが123.46.78.100であると仮定すると、行は次のようになります。

[label  /etc/munin/munin-node.conf}
allow ^123\.456\.78\.100$

ファイルを保存して閉じます。 次に、Muninを再起動します。

  1. sudo service munin-node restart

Munin master に戻り、メインの構成ファイルを開きます。

  1. sudo nano /etc/munin/munin.conf

このファイルで行う必要があるのは、(リモート)ノードのホストツリーを挿入することだけです。 これに対する最も簡単なアプローチは、マスターのホストツリーをコピーして変更することです。 node-ip-address は、追加するノードのIPアドレスに必ず置き換えてください。

/etc/munin/munin.conf
[MuninNode]
	address node-ip-address
	use_node_name yes

ファイルを保存して閉じます。 次に、Apacheを再起動します。

  1. sudo service apache2 restart

Muninは5分ごとに新しいノードをチェックします。 数分待ってから、MuninマスターのWebインターフェイスをリロードします。 ノードのエントリが表示されます。 まだ表示されていない場合は、5分後にもう一度お試しください。 この方法を使用すると、監視する必要がある数のノードを追加できます。

Munin Node Added

ステップ5—追加のプラグインを有効にする

Muninは、プラグインスクリプトを使用してシステムを監視します。デフォルトでは、約12セットのプラグインがインストールされてアクティブになっています。 利用可能なプラグインの完全なリストは、/usr/share/munin/pluginsディレクトリにあります。 システムで使用できるプラグインを確認するために、Muninは次のコマンドを提供します。

  1. sudo munin-node-configure --suggest

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

Plugin                     | Used | Suggestions
------                     | ---- | -----------
cps_                       | no   | no
cpu                        | yes  | yes
cpuspeed                   | no   | no [missing /sys/devices/system/cpu/cpu0/cpufreq/stats/time_in_state]
cupsys_pages               | no   | no [could not find logdir]
df                         | yes  | yes
df_inode                   | yes  | yes
fail2ban                   | no   | yes
ip_                        | no   | yes

Used列にyesが含まれるプラグインはそれが示すものを意味し、Suggestions列にyesが含まれるプラグインはそれを意味しますに使える。 両方の列にnoが付いているものは、使用されておらず、システムで使用できないことを意味します。 最後に、プラグインのUsed列にnoがあり、 Suggestionsyes がある場合、プラグインは使用されていませんが、システムで有効にして使用できます。

Muninマスターとノードでは、/etc/munin/pluginsディレクトリにインストールされているプラグインのリストも表示されます。

Muninをインストールしたときに、munin-plugins-extraパッケージがインストールされているはずです。 そうでない場合は、を使用して行います。

  1. sudo apt-get install munin-plugins-extra

現在使用されていない使用可能なプラグインを有効にするには、/usr/share/munin/pluginsディレクトリから/etc/munin/pluginディレクトリへのシンボリックリンクを作成します。

たとえば、Fail2banプラグインを有効にするには、最初にFail2banをインストールします。

  1. sudo apt-get install fail2ban

次に、Muninプラグインを有効にするシンボリックリンクを作成します。

  1. sudo ln -s /usr/share/munin/plugins/fail2ban /etc/munin/plugins

Muninを再起動します。

  1. sudo service munin-node restart

数分待って、Webインターフェイスをリロードすると、Muninマスターのnetworkカテゴリの下にあるHostsがfail2banによってブラックリストに登録されたタイトルの下にFail2banのグラフが表示されます。

トラブルシューティング

Muninマスター、Muninノードの構成、またはマスターにノードを表示させるのに問題がある場合は、ログファイルでエラーメッセージを確認してください。

  • ムーニンマスター:/var/log/munin/munin-update.log
  • ムニンノード:/var/log/munin/munin-node.log

プロジェクトのページで、トラブルシューティングのヒントを確認することもできます。

結論

Muninは、インストールされているシステムを監視するように構成できます。 監視対象システムへのリモートサーバーの追加は、munin-nodeパッケージをリモートサーバー(またはノード)にインストールしてから、サーバーとノードの構成ファイルを変更して他のIPアドレスを指すようにするだけです。

Muninはプラグインを使用して機能しますが、すべてがすぐに有効になるわけではありません。 プラグインに関する情報は、プロジェクトのページで入手できます。