[an error occurred while processing this directive]
【凡ミス連発】muninをインストールして動かしてみました

第325日目:【凡ミス連発】muninをインストールして動かしてみました

【追記2 2012/08/09 12:10】
ども、ども、▲('A`)/です。
えーと、FreeBSD本家で何か動きがあるかな?と久しぶりにcvsupを使って
ソースを取ってきて、カーネル再構築してみたら・・・あれ?
FreeBSD 9.1-PRERELEASEって出てくるなあ。
root@w44:/root # uname -a
FreeBSD w44.maido3.cc 9.1-PRERELEASE FreeBSD 9.1-PRERELEASE #1 r239148M:
 Thu Aug  9 02:57:43 JST 2012     root@w44.maido3.cc:/usr/obj/usr/src/sys/GENERIC  amd64
root@w44:/root # 

もうじき9.1-RC1が出てくるのかなあ?
うーん、来週はお盆休みにはいるんだけど・・・ブツブツ。
しばらく様子を見ますね。

それでは、また!▲('A`)/

【追記 2012/08/03 14:00】
ども、ども、▲('A`)/です。
えーと、この日記の出張所みたいなところを「びんたん」に作ってみました。

▲(‘A`)の縁側日記

こちらの日記は不定期更新の予定です。
なんでまたこんなのを作ったの?と言うと、root兄(・∀・)に誘われまして・・・
双方向で皆さんとやり取りできそうなので、ちょっと試してみようと、
作ってみました。
まだ、どんな日記にしようか、考え中です。

それでは、また!▲('A`)/

↓ 本編はこちらです。

(2012/08/01 16:10)
ども、ども、▲('A`)/です。
えーと、今日は前回の日記の追記でも書いたようにmuninのインストールについて書きます。
今回は凡ミスの連発で、「muninが動かないよ〜」と1週間のたうちまわっていました。

muninはシステム監視ソフトと言われていますが、▲('A`)が見た限りはモニタリングに
特化しているなあ、と思います。
以前この日記の第288日目で紹介したnagiosと比べるとそう感じてしまうのです。

で、muninに似たようなソフトとしてcactiというソフトがあります。
実は先週こちらの方を先にインストールできたのですが、(MySQL等の)データベースが
必須だったので、データベースを必要としないmuninのインストールを頑張って
取り組んでいました。

では、インストール方法を説明します。
munin本家サイト(munin-monitoring.org)からソースのtarボールを取得してインストールしても
良いのですが、最新版を求めなければportsからもインストールできます。

ちなみに今回はS-Bananaサーバ(FreeBSD 8.2R amd64)の環境下で実施しました。

必要となるものは以下の通りです。

[munin本体]
munin-master (監視サーバとして動く)
munin-node (監視クライアントとして動く)
[その他ソフト]
rrdtool (データの蓄積&グラフの描画を行なう)
あとはPerlモジュールが以下の様に幾つか

p5-Crypt-CBC
p5-Crypt-DES
p5-DateTime-HiRes
p5-Digest-HMAC
p5-Digest-SHA1
p5-Getopt-Long
p5-HTML-Template
p5-IO-Multiplex
p5-Log-Log4perl
p5-Net-SNMP
p5-Net-Server
p5-Storable
p5-Storable-AMF
p5-Text-Balanced
p5-Time-HiRes
p5-XML-Parser
p5-YAML-Tiny

それとpango、cairo、libiconv、png、gamin、bisonなどが
関連付けられたソフトとして、前もってインストールされて
いなければ、このタイミングでインストールされます。

まあ、いつもの如くpkg_add コマンドでバイナリをインストール
するのですけど、ね。
(ちなみにインストールされるmuninのバージョンは1.4.5です。)
munin本家で公開されているものは8/1時点で2.0.3というのがありますが
これに手を出すのは、人柱になる覚悟がいるでしょう。
FreeBSD本家のportsに収録されている最新バージョンは1.4.7です。

pkg_add ftp://ftp.freebsd.org/pub/FreeBSD/ports/amd64/packages-8.2-release/Latest/munin-master.tbz
pkg_add ftp://ftp.freebsd.org/pub/FreeBSD/ports/amd64/packages-8.2-release/Latest/munin-node.tbz

ここで、munin-nodeをインストールする時に途中で以下のメッセージが
表示されます。
done.
Cannot 'start' munin_node. Set munin_node_enable to YES in /etc/rc.conf
 or use 'onestart' instead of 'start'.
Would you like me to set up log rotation [y]?
[y]? の後でyと入力してください。

ちょっと1つ書きますね。
munin-masterをインストールした時に、muninを動かす為の実行ユーザ
として munin というユーザと同名のグループが作られます。

# cat /etc/passwd
munin:*:842:842:Munin:/var/munin:/usr/sbin/nologin

# cat /etc/group
munin:*:842:

それと同時に munin-cron というスクリプトを5分毎に実行するcronが
登録されます。

# crontab -u munin -l
#BEGIN_MUNIN_MAIN
MAILTO=root

*/5 * * * *     /usr/local/bin/munin-cron
#END_MUNIN_MAIN
# 

munin-cron というスクリプトの中から、以下の4つのスクリプトが
呼び出され、実行されます。

munin-update (データの収集)
munin-limits (データの評価・判定)
munin-graph (グラフの作成)
munin-html (HTMLページの作成)

muninが監視ソフトと言われる所以はmunin-limitsがあるからです。
このスクリプトが /usr/local/etc/munin/munin.conf という設定ファイルに
設定された監視条件や連絡先メールアドレスを読み込んで、監視条件に
合致したら、お知らせメールを送るという事をします。
(今回はそこら辺の設定は省いていますので、あしからず・・・)

で、ここからがちょっと気をつけないといけません。

1) 必要となるディレクトリの作成とパーミッション&所有者の変更
muninの仕組みでは4つのディレクトリを使用します。

/var/munin 各種計測データの保管場所
/var/log/munin muninが使うログデータの格納場所
/var/run/munin muninが使うPIDファイルの格納場所
/usr/local/www/munin グラフページの格納場所

ports(pkg_add コマンドで入れたバイナリ版)だと、muninが稼働中に
使用するディレクトリの1つ /var/run/munin が作られません。
これが無いとマシン再起動時にmunin-node起動でエラーになりますので、
作っておきます。

mkdir /var/run/munin

念のため、各ディレクトリの所有者をmuninの実行ユーザ muninに
変更しておきましょう。 グループも munin というのが本体インストール時に作られています。
※ちなみに /var/munin は所有者&グループ共にmuninになっています。

chown -R munin:munin /var/run/munin
chown -R munin:munin /var/log/munin
chown -R munin:munin /usr/local/www/munin

後は気をつけないと行けないのが、上位ディレクトリのパーミッションです。
ちょっと基本の話になりますが、パーミッションは
 オーナー、グループメンバ、その他で構成されています。
前回の日記の追記で書いた様に/var/log(所有者&グループがroot:wheel)を
770なんていう風にしていると、ユーザmunin はその他になるので、
弾かれるのです。
なので、こういう場合には775(rwxr-xr-x)みたいにしましょう。
「えっ?4(r)じゃダメなの?」と思うかもしれませんね。
該当の/var/logはディレクトリです。/var/log/muninはディレクトリの中の
下位ディレクトリとなるので、そこに移動できる様にするのに実行(x)が
必要なのです。なので5(r-x)になるのです。

なので、今回はこんな風にしました。

chmod 755 /var/log
chmod 755 /var/run

それと、muninの定義ファイルはデフォルトのパーミッションが
444(r--r--r--)になっています。
これでは編集できないので、こちらもパーミッション変更です。

chmod 644 /usr/local/etc/munin/munin-node.conf
chmod 644 /usr/local/etc/munin/munin.conf

2) munin.conf の編集
今回は自ホスト(127.0.0.1)のみを監視する、という設定で説明します。

/usr/local/etc/munin/munin.confを編集します。
まずは、以下の記述の所を探す。
# a simple host tree
[jail-3428]
    address 127.0.0.1
    use_node_name yes
見つけたらホスト名の箇所(jail-3428)を変更します。
今回はw44.maido3.ccと変更しました。

# a simple host tree
[w44.maido3.cc]
    address 127.0.0.1
    use_node_name yes

で、use_node_name yes の下にプラグインの記述を追加します。
今回はこんな風にしました。

df.graph_title          df
vmstat.graph_title      vmstat
cpu.graph_title        cpu
memory.graph_title    memory
load.graph_title        load
netstat.graph_title     netstat
process.graph_title    process
swap.graph_title    swap
memory.graph_title    memory
if_em0.graph_title    em0
apache_processes.graph_title    apache_processes

で、セーブします。

※赤文字の部分は各自のマシンの環境に合わせてください。
今回はdokuo号を使っているのでem0となっています。

3) プラグインの設定と、rc.confの修正
以下のコマンドを実行し、プラグインを使える様にする。

ln -s /usr/local/share/munin/plugins/df /usr/local/etc/munin/plugins/df
ln -s /usr/local/share/munin/plugins/vmstat
/usr/local/etc/munin/plugins/vmstat
ln -s /usr/local/share/munin/plugins/apache_processes
/usr/local/etc/munin/plugins/apache_processes
ln -s /usr/local/share/munin/plugins/cpu /usr/local/etc/munin/plugins/cpu
ln -s /usr/local/share/munin/plugins/load /usr/local/etc/munin/plugins/load
ln -s /usr/local/share/munin/plugins/process
/usr/local/etc/munin/plugins/process
ln -s /usr/local/share/munin/plugins/netstat
/usr/local/etc/munin/plugins/netstat
ln -s /usr/local/share/munin/plugins/memory
/usr/local/etc/munin/plugins/memory
ln -s /usr/local/share/munin/plugins/swap /usr/local/etc/munin/plugins/swap
ln -s /usr/local/share/munin/plugins/if_ /usr/local/etc/munin/plugins/if_em0

※赤文字の部分は各自のマシンの環境に合わせてください。
今回はdokuo号を使っているのでem0となっています。

次にmunin-nodeを動かす為に、/etc/rc.conf に以下の1行を追加します。

munin_node_enable="YES"

※ちなみに起動用のスクリプトは/usr/local/etc/rc.dの中に
munin-node として格納されています。
この起動スクリプトの中身はこんな感じです。

【/usr/local/etc/rc.d/munin-node】

#!/bin/sh
#

# PROVIDE: munin-node
# REQUIRE: DAEMON
# BEFORE:  cron

#
# Add the following lines to /etc/rc.conf to enable munin-node:
# munin_node_enable (bool):      Set to "NO" by default.
#                                Set it to "YES" to enable munin-node
# munin_node_config (path):      Set to "/usr/local/etc/munin/munin-node.conf" by default.
#

. /etc/rc.subr

name="munin_node"
rcvar=`set_rcvar`

[ -z "$munin_node_enable" ] && munin_node_enable="NO"
[ -z "$munin_node_config" ] && munin_node_config="/usr/local/etc/munin/munin-node.conf"

command="/usr/local/sbin/munin-node"
pidfile=`awk '$1 == "pid_file" { print $2 }' $munin_node_config`

load_rc_config $name
run_rc_command "$1"

4) Apacheの定義の修正
Apacheの定義 httpd.confを修正します。

Aliasを定義している箇所があったら、以下の記述を追加してください。
(今回はmuninのグラフページの格納場所が、Apacheのホームディレクトリ
配下では無いところにできているので、公開ポイントとして指定できないので
ちょっと小細工しています。)

Alias /munin/ [公開ポイント]

(今回のdokuo号の例)
※Apacheのホームディレクトリは /var/www です。dokuo号ではココを
http://w44.maido3.cc/ で指定するとホームディレクトリを表示する様に
設定しています。なので、今回muninの公開ポイントを /var/www/munin と
しました。つまり、http://w44.maido3.cc/munin/ でアクセスすると、
muninのグラフページが表示される、という訳です。

Alias /munin/ /var/www/munin/

で、ディレクトリ部の定義の箇所に以下の行を追加します。

<Directory /var/www/munin/>
        Options none
        Order Deny,Allow
        Allow from all
</Directory>

で、ココで小細工です。
Apacheのホームディレクトリからmuninのグラフページの格納場所に
スタティックリンクを張ります。

ln -s /usr/local/www/munin /var/www/munin

そうだ、大事な事を一つ書きます。

実はmuninのグラフページが設置されるディレクトリ(/usr/local/www/munin)に.htaccessが
作られるのですが、そのファイルの中にApacheのモジュール(mod_expires)のパラメータが
記述されているのです。
つまりキャッシュを利用して負荷軽減が図られています。
なので、後述しますが、mod_expiresを使わない(使えない)場合にはこの
記述部分をコメントにしてください。
それと、BASIC認証の記述箇所がありますが、/usr/local/etc/munin/munin-htpasswd
というパスワードファイルは作られていません。
なので、自分で設置するか、コメントにしておいてください。

念の為、/usr/local/www/munin/.htaccess の内容を以下で掲載します。
青い文字がBASIC認証の記述部分、赤い文字がmod_expiresのパラメータ部分です。

# This file can be used as a .htaccess file, or a part of your apache
# config file.
#
# For the .htaccess file option to work the munin www directory
# (/usr/local/www/munin) must have "AllowOverride all" or something close
# to that set.
#
# As a config file enclose it in  like so:
# 
# 

AuthUserFile /usr/local/etc/munin/munin-htpasswd
AuthName "Munin"
AuthType Basic
require valid-user

# This next part requires mod_expires to be enabled.
#
# We could use  around here, but I want it to be
# as evident as possible that you either have to load mod_expires _or_
# you coment out/remove these lines.

# Set the default expiery time for files 5 minutes 10 seconds from
# their creation (modification) time.  There are probably new files by
# that time.

ExpiresActive On
ExpiresDefault M310

# 

で、ここまできたら、マシンを一度再起動するか、munin-nodeを
起動スクリプトから起動するかしてください。

/usr/local/etc/rc.d/munin-node start

muninがちゃんと動いているかの確認方法は以下の通りです。

・munin-node のプロセスが動いているか?
以下の様にmunin-node のプロセスが動いていれば、起動はされていると
いう事です。
# ps ax | grep munin
  910  ??  Ss     0:00.22 /usr/local/sbin/munin-node (perl5.10.1)
10008   0  S+     0:00.00 grep munin
# 
・munin関連のログは出力されているか?
これ、結構大事です。
ここを見て動いているか、ちゃんと計測データ取れているかを見ます。
特に最初の方で説明した munin-updateのログが無いとデータが取れていない、
munin-graphのログが無いとグラフが生成されていない、という風に判定します。

まあ、たいていはmunin-node.logしか無いという事態に出くわすと思います。
その場合には、/var/log/munin のパーミッションとか所有者をチェックすると良いです。

# ls -l /var/log/munin
total 74
-rw-r--r--  1 munin  munin  31519 Jul 31 22:30 munin-graph.log
-rw-r--r--  1 munin  munin  12048 Jul 31 22:30 munin-html.log
-rw-r--r--  1 munin  munin   8448 Jul 31 22:30 munin-limits.log
-rw-r--r--  1 root   munin   3614 Jul 31 22:30 munin-node.log
-rw-r--r--  1 munin  munin  15832 Jul 31 22:30 munin-update.log
#

例えばちゃんと動いているっぽい時のログはこんな風に出力されているものです。

# cat /var/log/munin/munin-graph.log
2012/07/31 18:50:10 Opened log file
2012/07/31 18:50:10 Starting munin-graph
2012/07/31 18:50:10 Munin-graph finished (0.00 sec)
2012/07/31 19:00:02 Opened log file
2012/07/31 19:00:02 Starting munin-graph
2012/07/31 19:00:02 Graphed service : process (0.03 sec * 4)
2012/07/31 19:00:02 Graphed service : if_em0 (0.12 sec * 4)
2012/07/31 19:00:02 Graphed service : cpu (0.16 sec * 4)
2012/07/31 19:00:02 Graphed service : apache_processes (0.19 sec * 4)
2012/07/31 19:00:02 Graphed service : df (0.19 sec * 4)
2012/07/31 19:00:02 Munin-graph finished (0.20 sec)
# 

それでは、muninのページはどう表示されるかを見てみましょう。
グラフやページが生成されるまではインストール&設定が全て正常に終わってから
だいたい10分見ておいたら良いでしょう。
まずはトップページです。



では、次に自ホスト(w44.maido3.cc)の状況を見てみましょう。
トップページのホスト名(w44.maido3.cc)をクリックすると、グラフのページが表示されます。
     
  

お気づきだと思いますが、日本語表示にはなっていないのです。
こればっかりは仕方が無いです、ハイ。

えーと、最近はS-Banana上で動かせるお役に立ちそうなソフトウェアを
色々試しているところでして、つい先日も「baserCMS」というソフトを
ご紹介させて頂きました。
他にもBIG-serverで利用できるソフトウェアはこちらをご覧頂けると判ります。

最後になりますが、今年も日本各地で厳しい夏になっています。
札幌も例外ではなく、今日は雨が降っていても暑いです。
今年の夏はなぜか湿度が高いのです。それでなおさら暑く感じて
いるのかもしれません・・・
いずれにしても、体調には気をつけてくださいね。

今日はここまで。
それでは、また!▲('A`)/

324日目に戻る。   326日目に続く。

目次に戻る
1日目 2日目 3日目 4日目 5日目 6日目 7日目
8日目 9日目 10日目 11日目 12日目 13日目 14日目
15日目 16日目 17日目 18日目 19日目 20日目 21日目
22日目 23日目 24日目 25日目 26日目 27日目 28日目
29日目 30日目 31日目 32日目 33日目 34日目 35日目
36日目 37日目 38日目 39日目 40日目 41日目 42日目
43日目 44日目 45日目 46日目 47日目 48日目 49日目
50日目 51日目 52日目 53日目 54日目 55日目 56日目
57日目 58日目 59日目 60日目 61日目 62日目 63日目
64日目 65日目 66日目 67日目 68日目 69日目 70日目
71日目 72日目 73日目 74日目 75日目 76日目 77日目
78日目 79日目 80日目 81日目 82日目 83日目 84日目
85日目 86日目 87日目 88日目 89日目 90日目 91日目
92日目 93日目 94日目 95日目 96日目 97日目 98日目
99日目 100日目 101日目 102日目 103日目 104日目 105日目
106日目 107日目 108日目 109日目 110日目 111日目 112日目
113日目 114日目 115日目 116日目 117日目 118日目 119日目
120日目 121日目 122日目 123日目 124日目 125日目 126日目
127日目 128日目 129日目 130日目 131日目 132日目 133日目
134日目 135日目 136日目 137日目 138日目 139日目 140日目
141日目 142日目 143日目 144日目 145日目 146日目 147日目
148日目 149日目 150日目 151日目 152日目 153日目 154日目
155日目 156日目 157日目 158日目 159日目 160日目 161日目
162日目 163日目 164日目 165日目 166日目 167日目 168日目
169日目 170日目 171日目 172日目 173日目 174日目 175日目
176日目 177日目 178日目 179日目 180日目 181日目 182日目
183日目 184日目 185日目 186日目 187日目 188日目 189日目
190日目 191日目 192日目 193日目 194日目 195日目 196日目
197日目 198日目 199日目 200日目 201日目 202日目 203日目
204日目 205日目 206日目 207日目 208日目 209日目 210日目
211日目 212日目 213日目 214日目 215日目 216日目 217日目
218日目 219日目 220日目 221日目 222日目 223日目 224日目
225日目 226日目 227日目 228日目 229日目 230日目 231日目
232日目 233日目 234日目 235日目 236日目 237日目 238日目
239日目 240日目 241日目 242日目 243日目 244日目 245日目
246日目 247日目 248日目 249日目 250日目 251日目 252日目
253日目 254日目 255日目 256日目 257日目 258日目 259日目
260日目 261日目 262日目 263日目 264日目 265日目 266日目
267日目 268日目 269日目 270日目 271日目 272日目 273日目
274日目 275日目 276日目 277日目 278日目 279日目 280日目
281日目 282日目 283日目 284日目 285日目 286日目 287日目
288日目 289日目 290日目 291日目 292日目 293日目 294日目
295日目 296日目 297日目 298日目 299日目 300日目 301日目
302日目 303日目 304日目 305日目 306日目 307日目 308日目
309日目 310日目 311日目 312日目 313日目 314日目 315日目
316日目 317日目 318日目 319日目 320日目 321日目 322日目
323日目 324日目 325日目 326日目 327日目 328日目 329日目
330日目 331日目 332日目 333日目 334日目 335日目 336日目
337日目 338日目 339日目 340日目 341日目 342日目 343日目
344日目 345日目 346日目 347日目 348日目 349日目 350日目
351日目 352日目 353日目 354日目 355日目 356日目 357日目
358日目 359日目 360日目 361日目 362日目 363日目 364日目

いま一番お得なページ! 解析
[an error occurred while processing this directive]