「Munin」の版間の差分

提供: ArchWiki
ナビゲーションに移動 検索に移動
(→‎設定: 同期)
53行目: 53行目:
 
== 設定 ==
 
== 設定 ==
   
=== デーモン ===
+
=== Munin master ===
   
  +
==== ディレクトリ ====
デーモンを追加して
 
 
# systemctl enable munin-node
 
 
起動して置きましょう
 
 
# systemctl start munin-node
 
 
詳しくは[[デーモン]]を見て下さい。
 
 
=== プラグイン ===
 
 
{{ic|munin-node-configure}} を実行しましょう。{{ic|--suggest}} オプションを付けると、インストールしたマシンで使えそうなプラグインのお勧めリストが表示されます:
 
 
# munin-node-configure --suggest
 
 
使用したいプラグインがあれば、もう一度コマンドを実行します。{{ic|--shell}} オプションを付けると {{ic|munin-node-configure}} によってお勧めされたプラグインが設定されるでしょう:
 
 
# munin-node-configure --shell | sh
 
 
==== SNMP について設定したい場合 ====
 
 
例えば SNMP サーバーが SERVER というホスト名で、 バージョン v2c 、 コミュニティ名 COMMUNITY で稼働している際は次の様にお勧めリストの確認を行います:
 
 
# munin-node-configure --suggest --snmp SERVER --snmpversion snmpv2c --snmpcommunity COMMUNITY
 
 
この結果をシェル用に出力し、その出力をシェルに渡すには次の様にします:
 
 
# munin-node-configure --shell --snmp SERVER --snmpversion snmpv2c --snmpcommunity COMMUNITY | sh
 
 
=== ディレクトリ ===
 
   
 
''munin-master'' が生成する HTML やグラフ画像を書き込むためのディレクトリを作成します。このディレクトリには、munin ユーザーが書き込み権限を持っている必要があります。
 
''munin-master'' が生成する HTML やグラフ画像を書き込むためのディレクトリを作成します。このディレクトリには、munin ユーザーが書き込み権限を持っている必要があります。
98行目: 68行目:
 
htmldir /srv/http/munin
 
htmldir /srv/http/munin
   
=== ホスト名 ===
+
==== Cron ====
   
  +
===== crontab =====
munin を実行する前に、システムのホスト名を設定しておくと良いでしょう。{{ic|/etc/munin/munin.conf}} で標準では {{ic|myhostname}} となっている筈です。お好みの名前を付けてあげて下さいね。ホスト名は {{ic|/var/lib/munin}} の .rrdファイル、HTML やグラフ画像のグループ化に適用されます。
 
 
=== Cron ===
 
   
 
次の設定で5分措きに munin がデータを更新し、HTMLとグラフ画像を生成します:
 
次の設定で5分措きに munin がデータを更新し、HTMLとグラフ画像を生成します:
118行目: 86行目:
 
とかコマンドを実行すると良いでしょう。
 
とかコマンドを実行すると良いでしょう。
   
=== systemd タイマー ===
+
===== systemd タイマー =====
   
 
cron ジョブではなく systemd のタイマーを使うこともできます。
 
cron ジョブではなく systemd のタイマーを使うこともできます。
154行目: 122行目:
 
最後に、{{ic|munin-cron.timer}} を有効化してください。
 
最後に、{{ic|munin-cron.timer}} を有効化してください。
   
  +
==== パーミッション ====
=== ユーザー munin へのアクセス権の設定 ===
 
  +
  +
{{ic|/etc/munin/munin.conf}} で {{ic|graph_strategy cgi}} が有効になっている場合、{{ic|/usr/share/munin/cgi/munin-cgi-graph}} スクリプトが PNG ファイルをこのディレクトリに書き込めるように、{{ic|/var/lib/munin/cgi-tmp}} ディレクトリの所有者とグループが {{ic|munin}} になっていることを確認してください。
  +
  +
# chown munin: /var/lib/munin/cgi-tmp
  +
  +
==== テスト ====
  +
  +
{{ic|munin-cron}} が実行されるように設定されると、Munin はグラフの生成を開始できるようになります。すべてのノードで {{ic|munin-node.service}} が実行中であることを確認してください。ノードが稼働してからこのセクションに戻るには、先に [[#Munin node]] セクションに進むと良いでしょう。
  +
  +
{{ic|munin}} ユーザーとして手動で {{ic|munin-cron}} コマンドを実行すると、次の cron 実行を待たずに HTML とグラフ画像の生成を即座にトリガーできます:
  +
  +
[munin]$ munin-cron
  +
  +
Munin のログ出力が設定されている場合、ログは通常 {{ic|/var/log/munin/}} にあります。別のターミナルで {{ic|munin-cron}} 実行後に {{ic|munin-update.log}} を監視することで、問題の診断に役立つ場合があります:
  +
  +
# tail -f /var/log/munin/munin-update.log
  +
  +
=== Munin node ===
  +
  +
==== デーモン ====
  +
  +
ノード側では、{{ic|munin-node.service}} を[[起動/有効化]]します。
  +
  +
==== IPv6 ====
  +
  +
''munin-node'' で IPv6 をサポートするには、以下のように設定します:
  +
  +
{{hc|/etc/munin/munin-node.conf|
  +
host :::1
  +
}}
  +
  +
以下をインストールしてください:
  +
  +
*{{Pkg|perl-socket6}}
  +
*{{Pkg|perl-io-socket-inet6}}
  +
  +
==== カスタマイズ ====
  +
  +
Munin を実行する前に、システムのホスト名を設定しておくと良いでしょう。{{ic|/etc/munin/munin.conf}} では、デフォルトのホスト名は {{ic|myhostname}} になっています。これを任意のホスト名に変更可能です。ホスト名は、{{ic|/var/lib/munin}} 内の {{ic|.rrd}} ファイルのグループ化や命名に使用され、さらに指定された ''munin-master'' のディレクトリ内で HTML ファイルやグラフをグループ化するのにも使用されます。
  +
  +
==== プラグイン ====
  +
  +
{{ic|munin-node-configure}} を {{ic|--suggest}} オプション付きで実行すると、Munin が現在の環境に適していると思われるプラグインを提案してくれます:
  +
  +
# munin-node-configure --suggest
  +
  +
使用したいプラグインが提案された場合は、その提案に従い、再度コマンドを実行します。{{ic|munin-node-configure}} による提案に満足したら、{{ic|--shell}} オプションを使ってプラグインを設定できます:
  +
  +
# munin-node-configure --shell | sh
  +
  +
===== 追加方法 =====
  +
  +
基本的に、すべてのプラグインは以下の手順で追加できます(例外もあるため、それぞれのプラグインのドキュメントを確認してください):
  +
  +
プラグインをダウンロードし、{{ic|/usr/lib/munin/plugins}} にコピーまたは移動します:
  +
  +
# cp ''plugin'' /usr/lib/munin/plugins/
  +
  +
次に、プラグインを {{ic|/etc/munin/plugins}} にリンクします:
  +
  +
# ln -s /usr/lib/munin/plugins/''plugin'' /etc/munin/plugins/
  +
  +
{{Note|一部のプラグイン(ワイルドカードプラグイン)は、複数のデバイスで同時に使用できます。これらは末尾がアンダースコア()で終わり、{{ic|<plugin><device>}} の形式でリンクして使用します。例としては {{ic|if_}} プラグインがあります。}}
  +
  +
次にプラグインをテストします。プラグインのフルパスを使う必要はありません。{{ic|munin-run}} が自動で認識してくれます:
  +
  +
# munin-run ''plugin''
  +
  +
そして {{ic|munin-node.service}} を[[ヘルプ:読み方#systemd ユニットのコントロール|再起動]]し、Webページを更新してください。
  +
  +
===== 追加プラグイン =====
  +
  +
Munin にはまだまだたくさんのプラグインが存在します。インストールして使える状態になっています。[http://muninexchange.projects.linpro.no/ MuninExchange] は探し始めるのに最適な場所です。また、必要なプラグインが見つからない場合は、自分で作成するのも簡単です。Munin のドキュメント Wiki の [http://guide.munin-monitoring.org/en/latest/develop/plugins/ Developing Plugins] を参照してください。
  +
  +
===== 削除方法 =====
  +
  +
プラグインを削除したい場合は、{{ic|/etc/munin/plugins}} にあるリンクファイルを削除するだけで OK です。{{ic|/usr/lib/munin/plugins}} からプラグイン本体を削除する必要はありません。
  +
  +
# rm /etc/munin/plugins/''plugin''
  +
  +
===== デバッグ =====
  +
  +
期待通りに動作しないプラグイン(出力が全く無いなど)がある場合は、直接実行してみると良いでしょう。例えば、ここまでの手順に従っていると、{{ic|apache_accesses}} プラグインが有効になっていても全く出力されないことに気づくかもしれません。このプラグインを直接実行するには:
  +
  +
# munin-run apache_accesses
  +
  +
次のようなエラーが表示されることがあります:
  +
  +
LWP::UserAgent not found at /etc/munin/plugins/apache_accesses line 86.
  +
  +
これは、Perl の関数が見つからないことを意味しています。この場合、不足しているライブラリ (ここでは {{Pkg|perl-libwww}}) を[[インストール]]することで問題を解決できます。
  +
  +
==== パーミッション ====
   
多くのプラグインがログファイルを読もうとします。そう云う訳でユーザー munin を log グループに追加して措きましょう:
+
多くのプラグインがログファイルを読み込むため、{{ic|munin}} ユーザーを {{ic|log}} グループに[[ユーザーとグループ#ユーザーを追加する例|追加]]すると便利です:
   
# usermod -aG log munin
+
# usermod -a -G log munin
   
 
== テスト ==
 
== テスト ==

2025年4月18日 (金) 19:54時点における版

プロジェクトウェブページ より:

Munin はコンピュータに何があったのか調べる事ができるモニタリングツールです。調べた全ての情報をウェブインターフェースを介して表示する事ができます。インストールが完了した後は、沢山のモニタリングプラグインたちがあなたに代わって仕事をしてくれる事でしょう。
Munin を使えばネットワーク、SAN、アプリケーション、気象状況等による計算機の性能評価が簡単になります。性能の問題について「おや、この日は何が違ったのかな?」とか簡単に分かるようになります。リソース毎の過不足を簡単に判断できるようになるでしょう。
Munin は優れた RRDTool (著 Tobi Oetiker) と Perl で書かれたフレームワーク、それと様々な言語で書かれたプラグインたちによって構成されています。Munin は マスター/ノード アーキテクチャー を採っていて、マスターが全てのノードに対し定期的にデータ収集を行います。データは RRDファイル に記録され、必要に応じてグラフを更新します。とりあえずの目標としてプラグイン(グラフ)を自在に扱える様になりましょう。

と、いうわけで、 Munin はシステムの統計を採りグラフに図示してくれるものです。詳しくはオスロ大学の Munin install など見ると良いでしょう。

インストール作業

Munin はクライアント−サーバーモデルです。クライアントを munin-node 、サーバーを munin と称します(ドキュメントでは "munin-master"となっていたりもするけど)。

munin-master は1台のマシンにインストールし、 munin-node は監視したい全てのマシンにインストールします。ここでは、とりあえず1台のマシンについてのみインストールする事を考えてみるとしましょう。より詳しく知りたいのならば Munin documentation wiki を見ましょうね。

munin と munin-node について

執筆現在に於いて munin (munin-master) と munin-node は extra リポジトリにパッケージがあります。

パッケージの確認

# pacman -Ss munin
extra/munin 1.4.6-2
    A distributed monitoring/graphing tool
extra/munin-node 1.4.6-2
    A distributed monitoring/graphing tool

インストール

# pacman -S munin munin-node

ウェブサーバーの必要性について

このガイドでは Munin で静的な HTML とグラフ画像を設定されたディレクトリへ出力する様にセットアップを行います。生成されたファイルはローカルのブラウザからならそのまま見ることもできるでしょう。しかし、もしリモートのマシンから見たいのならば適当なウェブサーバーを予めセットアップしておく必要があります。例えば、

などなど。他にサーバーについては詳しく知りたければウェブサーバーカテゴリも参考になるかもしれません。

IPv6

munin-node で IPv6 をサポートするには (/etc/munin/munin-node.confhost :::1 を使う) 以下のパッケージをインストールする必要があります:

設定

Munin master

ディレクトリ

munin-master が生成する HTML やグラフ画像を書き込むためのディレクトリを作成します。このディレクトリには、munin ユーザーが書き込み権限を持っている必要があります。

以下の例では /srv/http/munin を使用しています。Webサーバーがインストールされて起動していれば、生成された出力は http://localhost/munin/ で閲覧できます:

# mkdir /srv/http/munin
# chown munin:munin /srv/http/munin

/etc/munin/munin.confhtmldir エントリのコメントを外し、前のステップで作成したディレクトリに変更します:

htmldir /srv/http/munin

Cron

crontab

次の設定で5分措きに munin がデータを更新し、HTMLとグラフ画像を生成します:

# crontab /etc/munin/munin-cron-entry -u munin

ユーザー munin へのメール配送のエイリアスも設定して措くと良いでしょう。もしも postfix を使っているのならば /etc/postfix/aliases に次のように設定し、

 munin:    root

それから

# newaliases

とかコマンドを実行すると良いでしょう。

systemd タイマー

cron ジョブではなく systemd のタイマーを使うこともできます。

タイマーにはサービスユニットの設定が必要です:

/etc/systemd/system/munin-cron.service
[Unit]
Description=Survey monitored computers
After=network.target

[Service]
User=munin
ExecStart=/usr/bin/munin-cron

タイマーユニットの設定:

/etc/systemd/system/munin-cron.timer
[Unit]
Description=Survey monitored computers every five minutes

[Timer]
OnCalendar=*-*-* *:00/5:00

[Install]
WantedBy=multi-user.target

systemd の設定をリロードして、munin-cron.timer起動し、問題が発生しないことを確認してください:

$ journalctl --unit munin-cron.service
$ less /var/log/munin/munin-update.log

最後に、munin-cron.timer を有効化してください。

パーミッション

/etc/munin/munin.confgraph_strategy cgi が有効になっている場合、/usr/share/munin/cgi/munin-cgi-graph スクリプトが PNG ファイルをこのディレクトリに書き込めるように、/var/lib/munin/cgi-tmp ディレクトリの所有者とグループが munin になっていることを確認してください。

# chown munin: /var/lib/munin/cgi-tmp

テスト

munin-cron が実行されるように設定されると、Munin はグラフの生成を開始できるようになります。すべてのノードで munin-node.service が実行中であることを確認してください。ノードが稼働してからこのセクションに戻るには、先に #Munin node セクションに進むと良いでしょう。

munin ユーザーとして手動で munin-cron コマンドを実行すると、次の cron 実行を待たずに HTML とグラフ画像の生成を即座にトリガーできます:

[munin]$ munin-cron

Munin のログ出力が設定されている場合、ログは通常 /var/log/munin/ にあります。別のターミナルで munin-cron 実行後に munin-update.log を監視することで、問題の診断に役立つ場合があります:

# tail -f /var/log/munin/munin-update.log

Munin node

デーモン

ノード側では、munin-node.service起動/有効化します。

IPv6

munin-node で IPv6 をサポートするには、以下のように設定します:

/etc/munin/munin-node.conf
host :::1

以下をインストールしてください:

カスタマイズ

Munin を実行する前に、システムのホスト名を設定しておくと良いでしょう。/etc/munin/munin.conf では、デフォルトのホスト名は myhostname になっています。これを任意のホスト名に変更可能です。ホスト名は、/var/lib/munin 内の .rrd ファイルのグループ化や命名に使用され、さらに指定された munin-master のディレクトリ内で HTML ファイルやグラフをグループ化するのにも使用されます。

プラグイン

munin-node-configure--suggest オプション付きで実行すると、Munin が現在の環境に適していると思われるプラグインを提案してくれます:

# munin-node-configure --suggest

使用したいプラグインが提案された場合は、その提案に従い、再度コマンドを実行します。munin-node-configure による提案に満足したら、--shell オプションを使ってプラグインを設定できます:

# munin-node-configure --shell | sh
追加方法

基本的に、すべてのプラグインは以下の手順で追加できます(例外もあるため、それぞれのプラグインのドキュメントを確認してください):

プラグインをダウンロードし、/usr/lib/munin/plugins にコピーまたは移動します:

# cp plugin /usr/lib/munin/plugins/

次に、プラグインを /etc/munin/plugins にリンクします:

# ln -s /usr/lib/munin/plugins/plugin /etc/munin/plugins/
ノート: 一部のプラグイン(ワイルドカードプラグイン)は、複数のデバイスで同時に使用できます。これらは末尾がアンダースコア()で終わり、<plugin><device> の形式でリンクして使用します。例としては if_ プラグインがあります。

次にプラグインをテストします。プラグインのフルパスを使う必要はありません。munin-run が自動で認識してくれます:

# munin-run plugin

そして munin-node.service再起動し、Webページを更新してください。

追加プラグイン

Munin にはまだまだたくさんのプラグインが存在します。インストールして使える状態になっています。MuninExchange は探し始めるのに最適な場所です。また、必要なプラグインが見つからない場合は、自分で作成するのも簡単です。Munin のドキュメント Wiki の Developing Plugins を参照してください。

削除方法

プラグインを削除したい場合は、/etc/munin/plugins にあるリンクファイルを削除するだけで OK です。/usr/lib/munin/plugins からプラグイン本体を削除する必要はありません。

# rm /etc/munin/plugins/plugin
デバッグ

期待通りに動作しないプラグイン(出力が全く無いなど)がある場合は、直接実行してみると良いでしょう。例えば、ここまでの手順に従っていると、apache_accesses プラグインが有効になっていても全く出力されないことに気づくかもしれません。このプラグインを直接実行するには:

# munin-run apache_accesses

次のようなエラーが表示されることがあります:

LWP::UserAgent not found at /etc/munin/plugins/apache_accesses line 86.

これは、Perl の関数が見つからないことを意味しています。この場合、不足しているライブラリ (ここでは perl-libwww) をインストールすることで問題を解決できます。

パーミッション

多くのプラグインがログファイルを読み込むため、munin ユーザーを log グループに追加すると便利です:

# usermod -a -G log munin

テスト

Munin は既に使える状態になっています。さあ、munin-node を稼働させましょう:

# systemctl start munin-node

もしも手作業で HTML とグラフ画像を生成したいのならば、

# munin --shell=/bin/bash
$ munin-cron

とかすると良いでしょう。後はブラウザで出力ディレクトリ或いは http://localhost/munin/ を表示する等してインターフェースをテストしましょう。

ノート: グラフにデータが集まりだすのには時間がかかるので30分くらい待って見ましょうね。

プラグイン

Munin には沢山のプラグインがあってキミにインストールされるのを待っているよ!手始めに MuninExchange を見るといいよ、素敵だろ?まあ、時にはお目当てのプラグインを見付けられない事もあるだろうけど…そんな時は自分で書けばいいよ!簡単だから HowToWritePlugins を見ながらやってみるといいよ。

追加

基本的には全てのプラグインはマナーに則って追加されるよ(いやまあ勿論、例外はあるからプラグイン毎によく確認してね!):

先ずはプラグインをダウンロードするなどして、それを /usr/lib/munin/plugins に複製なり移動なりしよう。

# cp <plugin> /usr/lib/munin/plugins/

そして /etc/munin/plugins にシンボリックリンクを張るんだ:

# ln -s /usr/lib/munin/plugins/<plugin> /etc/munin/plugins/<plugin>
ノート: ワイルドカードプラグインと云われる幾つかのプラグインについては… - 別々の名前でリンクを張る事で複数のデバイスを扱えたりもするよ。こんな様なプラグインたちはプラグインの末尾がアンダースコアで終わっていて、<plugin>_<device> とかリンクを張る事で <device> に対応する様に動作するんだ。例としては if_ プラグインとかを見るといいよ。

さあ、プラグインをテストしよう。プラグインのフルパスを入れる必要は無いよ、次にように munin-run を実行しよう:

# munin-run <plugin>

それから munin-node を 再起動するんだ:

# systemctl restart munin-node

後はウェブページが更新されれば完了さ。

削除

プラグインを削除したいのなら、/etc/munin/plugins のシンボリックリンクを削除すればいい。/usr/lib/munin/plugins から削除する必要は無いよ。

# rm /etc/munin/plugins/<plugin>

デバッグ作業

思惑通りに動いてくれないプラグイン(何も出力されてないっぽいとか)に出会してしまったなら、そのプラグインを直接実行して見るというのも良いかもしれません。例えば、apache_accesses プラグインを直接実行するには、

# munin-run apache_accesses

とかします。

エラーがあれば、例えば "LWP::UserAgent not found at /etc/munin/plugins/apache_accesses line 86." だとか出力されるかもしれません。ちなみにこの場合は、Perlの関数が見つからないという問題で、不足しているライブラリ perl-libwww をインストールしてあげると良いかもしれません。

ヒントとテクニック‎

MySQL

MySQL プラグインは AUR のパッケージに依存しています: perl-dbi, perl-cache-cacheAUR, perl-ipc-shareliteAUR

また、データベースにアクセスするときは専用の MySQL ユーザーを使うことが推奨されています。ユーザーを作成するには以下の MySQL コマンドを実行:

MariaDB> CREATE USER 'muninuser'@'localhost' IDENTIFIED BY 'muninpassword';
MariaDB> GRANT SUPER,PROCESS ON *.* TO 'muninuser'@'localhost';
MariaDB> GRANT SELECT ON mysql.* TO 'muninuser'@'localhost';
MariaDB> FLUSH PRIVILEGES; 

この新しいユーザーを使うように Munin を設定するには、以下を作成:

/etc/munin/plugin-conf.d/mysql_
[mysql_*]
     env.mysqlconnection DBI:mysql:mysql;host=127.0.0.1;port=3306
     env.mysqluser muninuser
     env.mysqlpassword muninpassword

S.M.A.R.T.

S.M.A.R.T. データの監視を有効にするには smartmontools パッケージをインストールして、以下を使用:

/etc/munin/plugin-conf.d/munin-node
[smart_*]
    user root
    group disk

そして監視するディスクのシンボリックリンクを適切に作成してください。sda の場合:

# ln -s /usr/lib/munin/plugins/smart_ /etc/munin/plugins/smart_sda

lm_sensors

lm_sensors をインストールして Lm sensors#lm_sensors の設定 に従って設定を行って下さい。それが全て終わったら、シンボリックリンクを作成:

# ln -s /usr/lib/munin/plugins/sensors_ /etc/munin/plugins/sensors_fan 
# ln -s /usr/lib/munin/plugins/sensors_ /etc/munin/plugins/sensors_temp
# ln -s /usr/lib/munin/plugins/sensors_ /etc/munin/plugins/sensors_volt