Ubuntu 16.04.1 に Munin をインストールする
作業端末を Ubuntu 16.04.1 で作り直す機会があったので、監視ツールである Munin をインストールしてみました。一台で「監視サーバ」と「監視対象」を兼務させました。Munin の Web 画面は BASIC 認証で保護しています。
インストール
標準リポジトリから簡単にインストール出来ます。
| sudo apt-get -y install munin munin-node
|
設定ファイルの種類
主な設定ファイルは以下の 3 種類です。
サーバ側の設定ファイル
対象 |
種類 |
パス |
サーバ側 |
監視サーバの設定ファイル |
/etc/munin/munin.conf |
サーバ側 |
Web サーバの設定ファイル |
/etc/apache2/conf-available/munin.conf |
クライアント側の設定ファイル
対象 |
種類 |
パス |
クライアント側 |
監視対象としての設定ファイル |
/etc/munin/munin-node.conf |
設定
/etc/munin/munin.conf
デフォルト
デフォルトでは以下のようになっていました。
| $ grep -v -e '^\s*#' -e '^\s*$' /etc/munin/munin.conf
includedir /etc/munin/munin-conf.d
[localhost.localdomain]
address 127.0.0.1
use_node_name yes
|
修正後
これを以下のように修正します。
| includedir /etc/munin/munin-conf.d
[HOSTNAME.DOMAIN]
address 127.0.0.1
use_node_name yes
|
/etc/apache2/conf-available/munin.conf
このファイルは /etc/munin/apache24.conf へのリンクになっています。
| $ ls -l /etc/apache2/conf-available/munin.conf
lrwxrwxrwx 1 root root 25 Sep 25 22:55 /etc/apache2/conf-available/munin.conf -> ../../munin/apache24.conf
|
デフォルト
デフォルトでは以下のようになっていました。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 | Alias /munin /var/cache/munin/www
<Directory /var/cache/munin/www>
Require local
Options None
</Directory>
ScriptAlias /munin-cgi/munin-cgi-graph /usr/lib/munin/cgi/munin-cgi-graph
<Location /munin-cgi/munin-cgi-graph>
Require local
<IfModule mod_fcgid.c>
SetHandler fcgid-script
</IfModule>
<IfModule !mod_fcgid.c>
SetHandler cgi-script
</IfModule>
</Location>
|
修正後
デフォルトでは認証等が無く、無差別に Munin の画面が公開されてしまいます。そこで、今回は BASIC 認証を設定しました。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 | $ cat /etc/apache2/conf-available/munin.conf
Alias /munin /var/cache/munin/www
<Directory /var/cache/munin/www>
AuthType Basic
AuthName "Munin"
AuthUserFile /etc/munin/munin-htpasswd
Require valid-user
</Directory>
ScriptAlias /munin-cgi/munin-cgi-graph /usr/lib/munin/cgi/munin-cgi-graph
<Location /munin-cgi/munin-cgi-graph>
Require all granted
<IfModule mod_fcgid.c>
SetHandler fcgid-script
</IfModule>
<IfModule !mod_fcgid.c>
SetHandler cgi-script
</IfModule>
</Location>
|
BASIC 認証のパスワードファイルとして /etc/munin/munin-htpasswd を指定しています。
| htpasswd -c /etc/munin/munin-htpasswd [USERNAME]
|
/etc/munin/munin-node.conf
デフォルト
デフォルトでは以下のようになっていました。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 | $ grep -v -e '^\s*#' -e '^\s*$' /etc/munin/munin-node.conf
log_level 4
log_file /var/log/munin/munin-node.log
pid_file /var/run/munin/munin-node.pid
background 1
setsid 1
user root
group root
ignore_file [\#~]$
ignore_file DEADJOE$
ignore_file \.bak$
ignore_file %$
ignore_file \.dpkg-(tmp|new|old|dist)$
ignore_file \.rpm(save|new)$
ignore_file \.pod$
allow ^127\.0\.0\.1$
allow ^::1$
host *
port 4949
|
修正後
最下行に FQDN を追記します。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 | log_level 4
log_file /var/log/munin/munin-node.log
pid_file /var/run/munin/munin-node.pid
background 1
setsid 1
user root
group root
ignore_file [\#~]$
ignore_file DEADJOE$
ignore_file \.bak$
ignore_file %$
ignore_file \.dpkg-(tmp|new|old|dist)$
ignore_file \.rpm(save|new)$
ignore_file \.pod$
allow ^127\.0\.0\.1$
allow ^::1$
host *
port 4949
host_name [FQDN]
|
設定後の状態
Munin-node
systemctl status で munin-node が起動していることが確認出来ます。
1
2
3
4
5
6
7
8
9
10
11
12 | $ sudo systemctl status munin-node.service
* munin-node.service - Munin Node
Loaded: loaded (/lib/systemd/system/munin-node.service; enabled; vendor preset: enabled)
Active: active (running) since Sun 2016-09-25 22:55:56 JST; 11min ago
Docs: man:munin-node(1)
http://munin.readthedocs.org/en/stable-2.0/reference/munin-node.html
Main PID: 3750 (munin-node)
CGroup: /system.slice/munin-node.service
`-3750 /usr/bin/perl -wT /usr/sbin/munin-node
Sep 25 22:55:56 sig9.org systemd[1]: Starting Munin Node...
Sep 25 22:55:56 sig9.org systemd[1]: Started Munin Node.
|
詳しいメカニズムは追いかけていませんが、cron にも登録されているようです。
1
2
3
4
5
6
7
8
9
10
11
12 | $ cat /etc/cron.d/munin-node
#
# cron-jobs for munin-node
#
MAILTO=root
# If the APT plugin is enabled, update packages databases approx. once
# an hour (12 invokations an hour, 1 in 12 chance that the update will
# happen), but ensure that there will never be more than two hour (7200
# seconds) interval between updates..
*/5 * * * * root if [ -x /etc/munin/plugins/apt_all ]; then /etc/munin/plugins/apt_all update 7200 12 >/dev/null; elif [ -x /etc/munin/plugins/apt ]; then /etc/munin/plugins/apt update 7200 12 >/dev/null; fi
|
Munin
Munin 自体は masked 状態になっています(起動していません)。
| $ sudo systemctl status munin.service
* munin.service
Loaded: masked (/dev/null; bad)
Active: inactive (dead)
|
cron には登録されていました。
| $ cat /etc/cron.d/munin
#
# cron-jobs for munin
#
MAILTO=root
*/5 * * * * munin if [ -x /usr/bin/munin-cron ]; then /usr/bin/munin-cron; fi
14 10 * * * munin if [ -x /usr/share/munin/munin-limits ]; then /usr/share/munin/munin-limits --force --contact nagios --contact old-nagios; fi
|
Apache の再起動
最後に Apache を再起動して設定変更を反映します。
| systemctl restart apache2.service
|
「http:// 〜 /munin/」にアクセスして Munin の画面が表示されれば OK です。