「Munin」の版間の差分

提供: ArchWiki
ナビゲーションに移動 検索に移動
(校正(でき・出来))
 
(4人の利用者による、間の6版が非表示)
1行目: 1行目:
[[Category:状態監視と通知]]
+
[[Category:システムモニタ]]
 
[[en:Munin]]
 
[[en:Munin]]
  +
[http://munin-monitoring.org/ プロジェクトウェブページ] より:
'''''[http://munin-monitoring.org/ Munin]''' はそこら中のコンピュータに何があったのか調べる事ができるモニタリングツールです。調べた全ての情報をウェブインターフェースを介して表示する事ができます。インストールが完了した後は、沢山のモニタリングプラグインたちがあなたに代わって仕事をしてくれる事でしょう。''
 
   
  +
:''Munin'' はコンピュータに何があったのか調べる事ができるモニタリングツールです。調べた全ての情報をウェブインターフェースを介して表示する事ができます。インストールが完了した後は、沢山のモニタリングプラグインたちがあなたに代わって仕事をしてくれる事でしょう。
''Munin を使えばネットワーク、SAN、アプリケーション、気象状況等による計算機の性能評価が簡単になります。性能の問題について「おや、この日は何が違ったのかな?」とか簡単に分かるようになります。リソース毎の過不足を簡単に判断できるようになるでしょう。''
 
   
  +
:Munin を使えばネットワーク、SAN、アプリケーション、気象状況等による計算機の性能評価が簡単になります。性能の問題について「おや、この日は何が違ったのかな?」とか簡単に分かるようになります。リソース毎の過不足を簡単に判断できるようになるでしょう。
''Munin は優れた [http://oss.oetiker.ch/rrdtool/ RRDTool] (著 Tobi Oetiker) と Perl で書かれたフレームワーク、それと様々な言語で書かれたプラグインたちによって構成されています。Munin は マスター/ノード アーキテクチャー を採っていて、マスターが全てのノードに対し定期的にデータ収集を行います。データは RRDファイル に記録され、必要に応じてグラフを更新します。とりあえずの目標としてプラグイン(グラフ)を自在に扱える様になりましょう。'' [http://munin-monitoring.org/]
 
  +
  +
:Munin は優れた [http://oss.oetiker.ch/rrdtool/ RRDTool] (著 Tobi Oetiker) と Perl で書かれたフレームワーク、それと様々な言語で書かれたプラグインたちによって構成されています。Munin は マスター/ノード アーキテクチャー を採っていて、マスターが全てのノードに対し定期的にデータ収集を行います。データは RRDファイル に記録され、必要に応じてグラフを更新します。とりあえずの目標としてプラグイン(グラフ)を自在に扱える様になりましょう。
   
 
と、いうわけで、 Munin はシステムの統計を採りグラフに図示してくれるものです。詳しくはオスロ大学の [http://munin.ping.uio.no/ Munin install] など見ると良いでしょう。
 
と、いうわけで、 Munin はシステムの統計を採りグラフに図示してくれるものです。詳しくはオスロ大学の [http://munin.ping.uio.no/ Munin install] など見ると良いでしょう。
13行目: 15行目:
 
Munin はクライアント−サーバーモデルです。クライアントを munin-node 、サーバーを munin と称します(ドキュメントでは "munin-master"となっていたりもするけど)。
 
Munin はクライアント−サーバーモデルです。クライアントを munin-node 、サーバーを munin と称します(ドキュメントでは "munin-master"となっていたりもするけど)。
   
munin-master は1台のマシンにインストールし、 munin-node は監視した全てのマシンにインストールします。ここでは、とりあえず1台のマシンについてのみインストールする事を考えてみるとしましょう。より詳しく知りたいのならば [http://munin-monitoring.org/wiki/Documentation Munin documentation wiki] を見ましょうね。
+
munin-master は1台のマシンにインストールし、 munin-node は監視した全てのマシンにインストールします。ここでは、とりあえず1台のマシンについてのみインストールする事を考えてみるとしましょう。より詳しく知りたいのならば [http://munin-monitoring.org/wiki/Documentation Munin documentation wiki] を見ましょうね。
   
 
=== munin と munin-node について ===
 
=== munin と munin-node について ===
34行目: 36行目:
 
=== ウェブサーバーの必要性について ===
 
=== ウェブサーバーの必要性について ===
   
このガイドでは Munin で静的な HTML とグラフ画像を設定されたディレクトリへ出力する様にセットアップを行います。生成されたファイルはローカルのブラウザからならそのまま見ることも出来るでしょう。しかし、もしリモートのマシンから見たいのならば適当なウェブサーバーを予めセットアップしておく必要があります。例えば、
+
このガイドでは Munin で静的な HTML とグラフ画像を設定されたディレクトリへ出力する様にセットアップを行います。生成されたファイルはローカルのブラウザからならそのまま見ることもできるでしょう。しかし、もしリモートのマシンから見たいのならば適当なウェブサーバーを予めセットアップしておく必要があります。例えば、
   
 
*[[LAMP|Apache]]
 
*[[LAMP|Apache]]
*[[Lighttpd|Lighttpd]]
+
*[[Lighttpd]]
*[[Nginx|Nginx]]
+
*[[Nginx]]
   
 
などなど。他にサーバーについては詳しく知りたければ[[:Category:ウェブサーバー|ウェブサーバーカテゴリ]]も参考になるかもしれません。
 
などなど。他にサーバーについては詳しく知りたければ[[:Category:ウェブサーバー|ウェブサーバーカテゴリ]]も参考になるかもしれません。
44行目: 46行目:
 
=== IPv6 ===
 
=== IPv6 ===
   
munin-node で IPv6 をサポートするには (/etc/munin/munin-node.conf で ''host :::1'' を使う) 以下のパッケージをインストールする必要があります:
+
munin-node で IPv6 をサポートするには ({{ic|/etc/munin/munin-node.conf}}{{ic|host :::1}} を使う) 以下のパッケージをインストールする必要があります:
   
*perl-socket6
+
*{{Pkg|perl-socket6}}
*perl-io-socket-inet6
+
*{{Pkg|perl-io-socket-inet6}}
   
 
== 設定 ==
 
== 設定 ==
55行目: 57行目:
 
デーモンを追加して
 
デーモンを追加して
   
systemctl enable munin-node
+
# systemctl enable munin-node
   
 
起動して置きましょう
 
起動して置きましょう
   
systemctl start munin-node
+
# systemctl start munin-node
   
詳しくは[[Daemons|デーモン]]を見て下さい。
+
詳しくは[[デーモン]]を見て下さい。
   
 
=== プラグイン ===
 
=== プラグイン ===
   
munin-node-configure を実行しましょう。 --suggest オプションを付けると、インストールしたマシンで使えそうなプラグインのお勧めリストが表示されます:
+
{{ic|munin-node-configure}} を実行しましょう。{{ic|--suggest}} オプションを付けると、インストールしたマシンで使えそうなプラグインのお勧めリストが表示されます:
   
 
# munin-node-configure --suggest
 
# munin-node-configure --suggest
   
使用したいプラグインがあれば、もう一度コマンドを実行します。 --shell オプションを付けると munin-node-configure によってお勧めされたプラグインが設定されるでしょう:
+
使用したいプラグインがあれば、もう一度コマンドを実行します。{{ic|--shell}} オプションを付けると {{ic|munin-node-configure}} によってお勧めされたプラグインが設定されるでしょう:
   
 
# munin-node-configure --shell | sh
 
# munin-node-configure --shell | sh
87行目: 89行目:
 
munin-master がHTMLやグラフ画像を生成する為のディレクトリを設定し、作成して於きましょう。
 
munin-master がHTMLやグラフ画像を生成する為のディレクトリを設定し、作成して於きましょう。
   
/etc/munin/munin.conf の以下の htmldir のコメントを外します:
+
{{ic|/etc/munin/munin.conf}} の以下の {{ic|htmldir}} のコメントを外します:
   
 
htmldir /srv/http/munin
 
htmldir /srv/http/munin
   
これで /srv/http/munin へ出力が設定されます。
+
これで {{ic|/srv/http/munin}} へ出力が設定されます。
   
 
ディレクトリについては作成するだけでなく、ユーザー munin がこのディレクトリへの書き込み権限を満たす様にするのも忘れないようにしましょう。
 
ディレクトリについては作成するだけでなく、ユーザー munin がこのディレクトリへの書き込み権限を満たす様にするのも忘れないようにしましょう。
98行目: 100行目:
 
# chown munin:munin /srv/http/munin
 
# chown munin:munin /srv/http/munin
   
適当なウェブサーバーが標準設定のまま(ドキュメントルートが/srv/http)で稼働していれば、このディレクトリを [http://localhost/munin/ http://localhost/munin/] で表示する事が出来るでしょう。
+
適当なウェブサーバーが標準設定のまま (ドキュメントルートが {{ic|/srv/http}})で稼働していれば、このディレクトリを [http://localhost/munin/ http://localhost/munin/] で表示する事ができるでしょう。
  +
  +
nginx-1.18.0-1 の場合は、ドキュメントルートの初期値が /usr/share/nginx/html
  +
となっているので以下のように変更します。
  +
  +
location / {
  +
root /srv/http;
  +
index index.html index.htm;
  +
}
   
 
=== ホスト名 ===
 
=== ホスト名 ===
   
munin を実行する前に、システムのホスト名を設定しておくと良いでしょう。/etc/munin/munin.conf で標準では"myhostname"となっている筈です。お好みの名前を付けてあげて下さいね。ホスト名は /var/lib/munin の .rrdファイル、HTMLやグラフ画像のグループ化に適用されます。
+
munin を実行する前に、システムのホスト名を設定しておくと良いでしょう。{{ic|/etc/munin/munin.conf}} で標準では {{ic|myhostname}} となっている筈です。お好みの名前を付けてあげて下さいね。ホスト名は {{ic|/var/lib/munin}} の .rrdファイル、HTML やグラフ画像のグループ化に適用されます。
   
 
=== Cron ===
 
=== Cron ===
   
次の設定で5分措きにmuninがデータを更新し、HTMLとグラフ画像を生成します:
+
次の設定で5分措きに munin がデータを更新し、HTMLとグラフ画像を生成します:
   
 
# crontab /etc/munin/munin-cron-entry -u munin
 
# crontab /etc/munin/munin-cron-entry -u munin
   
ユーザー munin へのメール配送のエイリアスも設定して措くと良いでしょう。もしも postfix を使っているのならば /etc/postfix/aliases に次のように設定し、
+
ユーザー munin へのメール配送のエイリアスも設定して措くと良いでしょう。もしも postfix を使っているのならば {{ic|/etc/postfix/aliases}} に次のように設定し、
   
 
munin: root
 
munin: root
116行目: 126行目:
 
それから
 
それから
   
newaliases
+
# newaliases
   
 
とかコマンドを実行すると良いでしょう。
 
とかコマンドを実行すると良いでしょう。
126行目: 136行目:
 
タイマーにはサービスユニットの設定が必要です:
 
タイマーにはサービスユニットの設定が必要です:
   
# /etc/systemd/system/munin-cron.service
+
{{hc|/etc/systemd/system/munin-cron.service|2=
  +
[Unit]
 
  +
Description=Survey monitored computers
[Unit]
 
  +
After=network.target
Description=Survey monitored computers
 
  +
After=network.target
 
  +
[Service]
 
  +
User=munin
[Service]
 
User=munin
+
ExecStart=/usr/bin/munin-cron
  +
}}
ExecStart=/usr/bin/munin-cron
 
   
 
タイマーユニットの設定:
 
タイマーユニットの設定:
   
# /etc/systemd/system/munin-cron.timer
+
{{hc|/etc/systemd/system/munin-cron.timer|2=
  +
[Unit]
 
  +
Description=Survey monitored computers every five minutes
[Unit]
 
  +
Description=Survey monitored computers every five minutes
 
  +
[Timer]
 
  +
OnCalendar=*-*-* *:00/5:00
[Timer]
 
  +
OnCalendar=*-*-* *:00/5:00
 
  +
[Install]
 
  +
WantedBy=multi-user.target
[Install]
 
  +
}}
WantedBy=multi-user.target
 
  +
  +
systemd の設定を[[systemd#ユニットを使う|リロード]]して、{{ic|munin-cron.timer}} を[[起動]]し、問題が発生しないことを確認してください:
   
  +
$ journalctl --unit munin-cron.service
全て問題なかったら、munin-cron.timer を有効にしてください:
 
  +
$ less /var/log/munin/munin-update.log
   
  +
最後に、{{ic|munin-cron.timer}} を有効化してください。
# reload systemd configuration
 
systemctl daemon-reload
 
 
systemctl start munin-cron.timer
 
 
# check logs
 
journalctl --unit munin-cron.service
 
less /var/log/munin/munin-update.log
 
 
systemctl enable munin-cron.timer
 
   
 
=== ユーザー munin へのアクセス権の設定 ===
 
=== ユーザー munin へのアクセス権の設定 ===
170行目: 174行目:
 
== テスト ==
 
== テスト ==
   
Munin は既に使える状態になっています。さあ、 munin-node を稼働させましょう:
+
Munin は既に使える状態になっています。さあ、{{ic|munin-node}} を稼働させましょう:
   
 
# systemctl start munin-node
 
# systemctl start munin-node
   
もしも手作業でHTMLとグラフ画像を生成したいのならば、
+
もしも手作業で HTML とグラフ画像を生成したいのならば、
   
# su - munin --shell=/bin/bash
+
# munin --shell=/bin/bash
 
$ munin-cron
 
$ munin-cron
   
191行目: 195行目:
 
基本的には全てのプラグインはマナーに則って追加されるよ(いやまあ勿論、例外はあるからプラグイン毎によく確認してね!):
 
基本的には全てのプラグインはマナーに則って追加されるよ(いやまあ勿論、例外はあるからプラグイン毎によく確認してね!):
   
先ずはプラグインをダウンロードするなどして、それを /usr/lib/munin/plugins に複製なり移動なりしよう。
+
先ずはプラグインをダウンロードするなどして、それを {{ic|/usr/lib/munin/plugins}} に複製なり移動なりしよう。
   
 
# cp <plugin> /usr/lib/munin/plugins/
 
# cp <plugin> /usr/lib/munin/plugins/
   
そして /etc/munin/plugins にシンボリックリンクを張るんだ:
+
そして {{ic|/etc/munin/plugins}} にシンボリックリンクを張るんだ:
   
 
# ln -s /usr/lib/munin/plugins/<plugin> /etc/munin/plugins/<plugin>
 
# ln -s /usr/lib/munin/plugins/<plugin> /etc/munin/plugins/<plugin>
   
{{Note|ワイルドカードプラグインと云われる幾つかのプラグインについては… - 別々の名前でリンクを張る事で複数のデバイスを扱えたりもするよ。こんな様なプラグインたちはプラグインの末尾がアンダースコアで終わっていて、 <plugin>_<device> とかリンクを張る事で <device> に対応する様に動作するんだ。例としては if_ プラグインとかを見るといいよ。}}
+
{{Note|ワイルドカードプラグインと云われる幾つかのプラグインについては… - 別々の名前でリンクを張る事で複数のデバイスを扱えたりもするよ。こんな様なプラグインたちはプラグインの末尾がアンダースコアで終わっていて、{{ic|<plugin>_<device>}} とかリンクを張る事で {{ic|<device>}} に対応する様に動作するんだ。例としては {{ic|if_}} プラグインとかを見るといいよ。}}
   
 
さあ、プラグインをテストしよう。プラグインのフルパスを入れる必要は無いよ、次にように munin-run を実行しよう:
 
さあ、プラグインをテストしよう。プラグインのフルパスを入れる必要は無いよ、次にように munin-run を実行しよう:
213行目: 217行目:
 
=== 削除 ===
 
=== 削除 ===
   
プラグインを削除したいのなら、 /etc/munin/plugins のシンボリックリンクを削除すればいい。 - /usr/lib/munin/plugins から削除する必要は無いよ。
+
プラグインを削除したいのなら、{{ic|/etc/munin/plugins}} のシンボリックリンクを削除すればいい。{{ic|/usr/lib/munin/plugins}} から削除する必要は無いよ。
   
 
# rm /etc/munin/plugins/<plugin>
 
# rm /etc/munin/plugins/<plugin>
219行目: 223行目:
 
=== デバッグ作業 ===
 
=== デバッグ作業 ===
   
思惑通りに動いてくれないプラグイン(何も出力されてないっぽいとか)に出会してしまったなら、そのプラグインを直接実行して見るというのも良いかもしれません。例えば、 "apache_accesses" プラグインを直接実行するには、
+
思惑通りに動いてくれないプラグイン(何も出力されてないっぽいとか)に出会してしまったなら、そのプラグインを直接実行して見るというのも良いかもしれません。例えば、{{ic|apache_accesses}} プラグインを直接実行するには、
   
 
# munin-run apache_accesses
 
# munin-run apache_accesses
225行目: 229行目:
 
とかします。
 
とかします。
   
エラーがあれば、例えば "LWP::UserAgent not found at /etc/munin/plugins/apache_accesses line 86." だとか出力されるかもしれません。ちなみにこの場合は、Perlの関数が見つからないという問題で、 不足しているライブラリ "perl-libwww" をインストールしてあげると良いかもしれません。
+
エラーがあれば、例えば "LWP::UserAgent not found at /etc/munin/plugins/apache_accesses line 86." だとか出力されるかもしれません。ちなみにこの場合は、Perlの関数が見つからないという問題で、不足しているライブラリ {{Pkg|perl-libwww}} をインストールしてあげると良いかもしれません。
  +
  +
==ヒントとテクニック‎==
  +
  +
===MySQL===
  +
  +
MySQL プラグインは AUR のパッケージに依存しています: {{Pkg|perl-dbi}}, {{AUR|perl-cache-cache}}, {{AUR|perl-ipc-sharelite}}
  +
  +
また、データベースにアクセスするときは専用の [[MySQL]] ユーザーを使うことが推奨されています。ユーザーを作成するには以下の MySQL コマンドを実行:
  +
{{bc|<nowiki>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;</nowiki> }}
  +
  +
この新しいユーザーを使うように Munin を設定するには、以下を作成:
  +
  +
{{hc|/etc/munin/plugin-conf.d/mysql_|<nowiki>[mysql_*]
  +
env.mysqlconnection DBI:mysql:mysql;host=127.0.0.1;port=3306
  +
env.mysqluser muninuser
  +
env.mysqlpassword muninpassword</nowiki>}}
  +
  +
===S.M.A.R.T.===
  +
  +
S.M.A.R.T. データの監視を有効にするには {{Pkg|smartmontools}} パッケージをインストールして、以下を使用:
  +
  +
{{hc|/etc/munin/plugin-conf.d/munin-node|[smart_*]
  +
user root
  +
group disk}}
  +
  +
そして監視するディスクのシンボリックリンクを適切に作成してください。{{ic|sda}} の場合: {{bc|# ln -s /usr/lib/munin/plugins/smart_ /etc/munin/plugins/smart_'''sda'''}}
  +
  +
===lm_sensors===
  +
  +
{{Pkg|lm_sensors}} をインストールして [[Lm sensors#lm_sensors の設定]] に従って設定を行って下さい。それが全て終わったら、シンボリックリンクを作成:
  +
{{bc|# 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}}

2024年7月10日 (水) 21:00時点における最新版

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

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 を使う) 以下のパッケージをインストールする必要があります:

設定

デーモン

デーモンを追加して

# systemctl enable munin-node

起動して置きましょう

# systemctl start munin-node

詳しくはデーモンを見て下さい。

プラグイン

munin-node-configure を実行しましょう。--suggest オプションを付けると、インストールしたマシンで使えそうなプラグインのお勧めリストが表示されます:

# munin-node-configure --suggest

使用したいプラグインがあれば、もう一度コマンドを実行します。--shell オプションを付けると 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やグラフ画像を生成する為のディレクトリを設定し、作成して於きましょう。

/etc/munin/munin.conf の以下の htmldir のコメントを外します:

htmldir /srv/http/munin

これで /srv/http/munin へ出力が設定されます。

ディレクトリについては作成するだけでなく、ユーザー munin がこのディレクトリへの書き込み権限を満たす様にするのも忘れないようにしましょう。

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

適当なウェブサーバーが標準設定のまま (ドキュメントルートが /srv/http)で稼働していれば、このディレクトリを http://localhost/munin/ で表示する事ができるでしょう。

nginx-1.18.0-1 の場合は、ドキュメントルートの初期値が /usr/share/nginx/html となっているので以下のように変更します。

location / {

    root /srv/http;
    index  index.html  index.htm;

}

ホスト名

munin を実行する前に、システムのホスト名を設定しておくと良いでしょう。/etc/munin/munin.conf で標準では myhostname となっている筈です。お好みの名前を付けてあげて下さいね。ホスト名は /var/lib/munin の .rrdファイル、HTML やグラフ画像のグループ化に適用されます。

Cron

次の設定で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 を有効化してください。

ユーザー munin へのアクセス権の設定

多くのプラグインがログファイルを読もうとします。そう云う訳でユーザー munin を log グループに追加して措きましょう:

# usermod -aG 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