serf-muninでmunin-nodeの監視自動追加/削除

serf-muninでmunin-nodeの監視自動追加/削除 はてなブックマーク - serf-muninでmunin-nodeの監視自動追加/削除


https://github.com/zembutsu/serf-munin

Github 上に、オーケストレーションツール Serf の、イベントハンドラ用スクリプトを公開しました。機能は、serf のメンバに存在するとき(join時)、munin-node の監視設定ファイルを自動設置します。メンバから外れた時(leave/failed時)は自動的に設定ファイルを削除します。

想定利用環境は、テスト環境上における監視設定の省力化です。必要な時に、必要な環境のみ監視に加えます。

 

■設置方法

Munin マスタ(監視元)のサーバに、このファイルを設置します。

$ wget https://raw.github.com/zembutsu/serf-munin/master/serf-munin.sh
# mkdir /opt/serf-munin-node/
# mv ./serf-munin.sh /opt/serf-munin-node/
# chmod 755 /opt/serf-munin-node/serf-muni.sh

Serf agent を起動します。

$ serf agent -event-handler=”/opt/serf-munin-node/serf-munin.sh” -role=munin-server -log-level=debug

この中で必須なのは「-event-hander=」の箇所です。もし設置パスを変えた場合は、書き換えて下さい。

■必要条件

Munin 2.0 以上

設定ファイルを /etc/munin/conf.d/ に書き出します。serf 実行時のユーザ権限で /etc/munin/conf.d/ を編集できるように調整しておいてください。

■動作内容

・イベントハンドラ member-join 時( agent: Received event: member-join)

ノード名とIPアドレスの情報を元に、/etc/munin/conf.d/node-<IPアドレス>.conf ファイルを作成します。

[node;<ホスト名>]
    address <IPアドレス>
    use_node_name yes

グループ名は “node” 固定です。将来的には、role に応じてグループ分けができるようにしたいと考えています。

・イベントハンドラ leave (  agent: Received event: member-leave )

/etc/munin/conf.d/node-<IPアドレス>.conf ファイルを削除します。

■今後の展開とか

Serf の動作テストも兼ねて、とりあえず作ってみました。テスト環境に監視設定を入れるのは面倒になりがちですが、、Serf を入れて、agent 立ち上げて、join させるけで簡単に監視設定が有効になります。

想定活躍シーンは、Munin マスタ管理の省力化です。特に、大量の検証環境があるときでしょう。たとえば、仮想ホストを立ち上げて Chef/Puppet 等で munin-node のセットアップを済ませておくとします。あとは Serf 側の設定をするだけで、すぐに監視も有効になります。

また、要らなくなったら仮想マシンを落とすだけで Munin の設定も消えます。これらの作業を、Munin マスタサーバにログインすること無く行えます。

さて、Serf そのものについては、改めてエントリを書こうと思います。

今は、前田氏のエントリが分かりやすいのではないかと。。勉強になりますm(__)m 以下参考 URL

Serf+HAProxyで作るAutomatic Load Balancer – Glide Note – グライドノート
http://blog.glidenote.com/blog/2013/10/30/serf-haproxy/

One thought on “serf-muninでmunin-nodeの監視自動追加/削除

  1. Pingback: natインスタンスの冗長化 | DEVLAB