[munin] munin 2.0.6 on squeeze で、unbound を監視してみた [debian]

Pocket

波に乗ってMuninで監視や自動実行対象を増やしていますが、標準のプラグインに入っていないものがまた出てきました。
次は、unboundです。bind からの脱却と言うことで、UNbound [I]bind の分詞形 ということのようです。unboundは、name server のキャッシング部分を担当してます。nsd3 + unbound ≒ bind と考えて良さそうですよ、奥さん。

で、munin の plugin には、unbound も含まれていないので、どこかから入手しましょう、ということなのですが実は思いがけないところにあります。
通常の deiban ユーザーであれば入手可能なので、それを再利用しましょう。

目次

1. munin 用 unbound plugin ファイルを入手する

答えから言うと、unbound のソースパッケージに含まれています。バイナリパッケージには入っていませんので、ソースパッケージだけダウンロードしてきて、必要な plugin だけ抽出すればオッケーです。

sources.list は大丈夫ですか? squeeze をインストールしてhogehogeしてると次のようになってると思います。赤字部分があればOKです。
/etc/apt/sources.list

deb http://ftp.jp.debian.org/debian/ squeeze main
deb-src http://ftp.jp.debian.org/debian/ squeeze main

deb http://security.debian.org/ squeeze/updates main
deb-src http://security.debian.org/ squeeze/updates main

# squeeze-updates, previously known as ‘volatile’
deb http://ftp.jp.debian.org/debian/ squeeze-updates main
deb-src http://ftp.jp.debian.org/debian/ squeeze-updates main

では、apt-get source でダウンロードしておきましょう。

$ sudo apt-get source unbound
Reading package lists… Done
Building dependency tree
Reading state information… Done
Need to get 4394 kB of source archives.
Get:1 http://ftp.jp.debian.org/debian/ squeeze/main unbound 1.4.6-1+squeeze2 (dsc) [1577 B]
Get:2 http://ftp.jp.debian.org/debian/ squeeze/main unbound 1.4.6-1+squeeze2 (tar) [4384 kB]
Get:3 http://ftp.jp.debian.org/debian/ squeeze/main unbound 1.4.6-1+squeeze2 (diff) [8258 B]
Fetched 4394 kB in 2s (1944 kB/s)

さて、その中で、必要なファイルだけ抽出して、ファイルを配置しつつ、実行権限をつけときます。次のようにやれば良いでしょう。unbound のパッケージを download したフォルダで進めますね。

1
2
3
4
5
$ sudo tar -xvzf /tmp/unbound_1.4.6.orig.tar.gz unbound-1.4.6/contrib/unbound_munin_
unbound-1.4.6/contrib/unbound_munin_
$ sudo mv unbound-1.4.6/contrib/unbound_munin_ /usr/share/munin/plugins/
$ sudo chown root.root /usr/share/munin/plugins/unbound_munin_
$ sudo chmod 755 /usr/share/munin/plugins/unbound_munin_

2. unbound.conf ファイルを修正する

munin の設定を弄りたいところですが、まず、unbound.conf を少し修正します。

unbound-control stats を使用できるように有効化します。unbound.conf の statistics に関わる部分を次のように修正します。

/etc/unbound/unbound.conf

# enable extended statistics.
server:
statistics-interval: 0
extended-statistics: yes
# set to yes if graphing tool needs it
statistics-cumulative: no

もし、unbound-control を使えるようにしていない場合ですと、次の設定も有効化して、通信用の鍵を作成する必要があります。

2-1. unbound.conf で unbound-control を有効化する設定変更

/etc/unbound/unbound.conf

remote-control:
control-enable: yes
control-interface: 127.0.0.1

2-2. unbound-control で通信用に利用する鍵の作成

次のコマンドを実行すると、unbound-controlに必要な鍵を一片に作ってくれます。便利(*´Д`)/ヽァ/ヽァ

$ sudo /usr/sbin/unbound-control-setup
setup in directory /etc/unbound/
generating unbound_server.key
Generating RSA private key, 1024 bit long modulus
…………………………..++++++
……….++++++
e is 65537 (0x10001)
generating unbound_control.key
Generating RSA private key, 1024 bit long modulus
……………..++++++
………++++++
e is 65537 (0x10001)
create unbound_server.pem (self signed certificate)
create unbound_control.pem (signed client certificate)
Signature ok
subject=/CN=unbound-control
Getting CA Private Key
Setup success. Certificates created. Enable in unbound.conf file to use

3. munin-node へ監視対象として組み込む

さぁ、munin の構成変更といきましょう。手順は二つです。

3-1. unbound plugin 設定の追加

プラグイン登録の前に、unbound plugin 用の設定だけ済ませておきましょう。対象ファイルは /etc/munin/plugin-conf.d/munin-node になります。
このファイルに、次の 7行をテキトーに追加してください。なぜかディレクトリが微妙にちがうので、default のディレクトリへ変更しておきます。

/etc/munin/plugin-conf.d/munin-node

[unbound*]
user root
env.statefile /var/lib/munin-node/plugin-state/munin/unbound-state
env.unbound_conf /etc/unbound/unbound.conf
env.unbound_control /usr/sbin/unbound-control
env.spoof_warn 1000
env.spoof_crit 100000

3-2. munin-node へ unbound plugin を登録する

さて、ここまでくれば設定は完了です。後は munin-node へ plugin を登録して munin-node を再起動すれば OK ですヽ(´ー`)ノ

まず、次のコマンドで plugin を登録します。

1
2
3
4
5
6
7
8
9
$ sudo ln -s /usr/share/munin/plugins/unbound_munin_ /etc/munin/plugins/unbound_munin_by_class
$ sudo ln -s /usr/share/munin/plugins/unbound_munin_ /etc/munin/plugins/unbound_munin_by_flags
$ sudo ln -s /usr/share/munin/plugins/unbound_munin_ /etc/munin/plugins/unbound_munin_by_opcode
$ sudo ln -s /usr/share/munin/plugins/unbound_munin_ /etc/munin/plugins/unbound_munin_by_rcode
$ sudo ln -s /usr/share/munin/plugins/unbound_munin_ /etc/munin/plugins/unbound_munin_by_type
$ sudo ln -s /usr/share/munin/plugins/unbound_munin_ /etc/munin/plugins/unbound_munin_histogram
$ sudo ln -s /usr/share/munin/plugins/unbound_munin_ /etc/munin/plugins/unbound_munin_hits
$ sudo ln -s /usr/share/munin/plugins/unbound_munin_ /etc/munin/plugins/unbound_munin_memory
$ sudo ln -s /usr/share/munin/plugins/unbound_munin_ /etc/munin/plugins/unbound_munin_queue

そして、一応、munin-run コマンドで正しく実行できているかどうか、確認します。次のように、各パラメータに数値が入ってきていれば問題ありません。”U“の時は正常に取得できていないので、要確認です(´・ω・`) [II]例として unbound-munin-queue を実行しています

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
$ sudo /usr/sbin/munin-run --debug unbound_munin_queue
# Processing plugin configuration from /etc/munin/plugin-conf.d/munin-node
# Setting /rgid/ruid/ to /109/0/
# Setting /egid/euid/ to /109 109/0/
# Setting up environment
# Environment unbound_conf = /etc/unbound/unbound.conf
# Environment unbound_control = /usr/sbin/unbound-control
# Environment spoof_warn = 1000
# Environment spoof_crit = 100000
# Environment statefile = /var/lib/munin-node/plugin-state/munin/unbound-state
# About to run '/etc/munin/plugins/unbound_munin_queue'
t_ql_avg.value 0.133333
t_ql_max.value 1
t_ql_overwritten.value 0
t_ql_exceeded.value 0

さて、ここまでくれば、後は munin-node を restart して、次回のクロール後に Webアクセスして確認です!

4. ブラウザでアクセスしてみる

では、クロール後、どんな感じで表示されるでしょうか。
次のような画面があるはずですよ( ´ー`)y-~~ “dns” と言う項目ができてるはずです。

[tmkm-amazon]4873113997[/tmkm-amazon]

References

References
I bind の分詞形
II 例として unbound-munin-queue を実行しています

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください