あらまし
ポケットの中にはビスケットが1つー…本当にビスケットがあるか確認したか?割れてないか?最後に確認したのはいつだ?異常増加していないか?ビスケットが(ry
統合監視ツールのUIバランスと学習コストの高さの不満から、ちょっと距離を置きたいなぁと思った。
Ubuntu 14.04になってaptパッケージでmunin2も入ることだし、1.4系からの移行ついでに再評価しようと思う。
で、ついでにAnsibleの丁度いいサンプルを探していたので、munin2なんか丁度いいじゃないか、ということですよ。
Muninはcronベースじゃなくて適宜グラフ描画をするCGIベースで作るます。
構成
トポロジ
|
|
両方ともこれ
|
|
Ansibleの準備
さっとこんな感じで
|
|
1.2.1からSSH鍵チェックがデフォルト有効になりました。
由緒正しく公開鍵認証をする場合は不要ですが、パスワード認証(-k, -K)を使用する場合は、以下の設定も入れます。
|
|
インストール
Ansible Playbookを書いたのであっさりインストールするよ!
Ansible, MuninノードのいずれもDHCPで適当にアドレスが振られているから、適当に調べて使います。
Ansibleノード側
|
|
すべてのノウハウはPlaybookに詰まっている(説明を端折るための横着)
git checkout
が実施されていますが、基本的には不要のはずです。で、この場合で言うと http://192.168.122.156/munin/
にアクセスすると、インストールされたmuninの画面を見ることができると思いますが…どうですかねぇ。
Ansibleで`mount –bind`を用いた別ディレクトリマウントを実行すると、複数回マウントされてしまう問題 https://github.com/ansible/ansible/issues/7121 を含んでいます。(2014/06/07時点でまたOpenです)
今回の例でも、ansible-playbookを2回実行してmountコマンドで確認すると、2回分マウントされてしまいますが、致命的と言うほどのものでもないし、他の手段が綺麗に決まらなかったので、とりあえず暫定利用しています。
外観
一応、このような感じでグラフの一覧が出ます。
グラフをクリックしていくと、Day/Week/Month/Yearのページに飛ぶのは相変わらずですが、更にクリックするとグラフの描画期間指定が出来るポップアップが出ます。
これだけでもmuninを導入する価値は十分ある。
閾値を超えたりすると表示できる画面もあるので、場合によっては入口はこっちの方が良いんじゃないかと思う。
ノードの追加とか
ノードの追加には /etc/munin/munin-conf.d
に適当な設定を置けばいい
|
|
残念ながらmunin自体のコンフィグレーションをするWebUIなるものは見つけられなかったので、そういった部分は適当にポチポチやるしかなさそうだ。
/24位の範囲なら、4949/TCPをポートスキャンしてDNSの逆引きをして設定ファイルを突っ込む位のことは出来るだろう。
こんな感じで
|
|
後は結果をシェルスクリプトに放り込めば出来そうじゃないか。面倒だからやらないけど。
雑感
とは言え、面倒なのはどちらかと言えばノード側だ。
セットアップ自体は良いのだが、最近はperlの導入が面倒なケースもあって、セットアップのついでにmuninを入れると言うのも気後れする。
今回のようにAnsibleを使ってmunin-nodeをインストール/設定するようなものを書いておけばいいのだが、プラグイン周りだけは逐一選択の必要がある。
muninはmunin-nodeが前提のAgent型で、以前FreeBSDでmunin-nodeを使っている時にperlのアップデートをしたらmunin-nodeたちが次々に死んでいって、それに対応するのが非常に面倒だった覚えがある。
自動的にノードを探索して設定する部分は普通に作れそうだから、適当なプラクティスを探すとして。
munin-nodeの設定とアップデートが面倒な件は保留。