Symfoware

Symfowareについての考察blog

複数のSupervisordを一括監視する「py-supervisord-monitor」

以前、supervisord-monitorを動かしてみました。
複数サーバーのSupervisordプロセスを一括監視する「supervisord-monitor」

・ルートディレクトリで公開する必要あり
・phpが実行できるサーバーを準備する必要あり

と、自分の環境で動かすには若干敷居が高かったです。

Python + Bottleフレームワークで動作する「py-supervisord-monitor」を試してみます。



py-supervisord-monitor



py-supervisord-monitor

動作画面はこんな感じ。

584_01.png


Python製で、スタンドアロンで動作するため、
Supervisorが動いているサーバー自身で動作できそうです。





Supervisorの設定



SupervisorのデータをXML-RPC通信でデータを取得するので、
inet_http_serverの設定を有効にしておきます。


# vi /etc/supervisor/supervisord.conf




以下の項目を追加


[inet_http_server]
port = 0.0.0.0:9001
username = user102
password = P@ssw0rd102



※username、passwordはオプションです。指定しなくてもOKです。


設定を反映するため、Supervisorを再起動します。


# /etc/init.d/supervisor restart







インストール



サーバーの適当なフォルダにクローンします。


# apt-get install mercurial
# cd /opt/
# hg clone https://bitbucket.org/symfo/py-supervisord-monitor




設定ファイルを編集します。


# cd py-supervisord-monitor
# vi supervisor.conf




設定方法は以下の通り


[server:(サーバー名:表示用)]
url = http://(サーバーIP)/RPC2
port = (ポート)
username = (ユーザー名:オプション)
password = (パスワード:オプション)




具体的な設定例は以下のようになります。


[server:server01]
url = http://192.168.1.101/RPC2
port = 9001
username = user
password = P@ssw0rd


[server:server02]
url = http://192.168.1.102/RPC2
port = 9001




編集が終わったらサーバーを起動。


# python index.py




ブラウザで、http://[サーバーIP]:8080/を表示すれば、画面が表示されます。




supervisorで起動



このアプリ自身をsupervisorで起動してみます。

index.pyに実行権限を付与。


# chmod +x /opt/py-supervisord-monitor/index.py




Supervisorの設定ファイルを作成


# vi /etc/supervisor/conf.d/monitor.conf




内容は以下の通り。


[program:monitor]
command=/opt/py-supervisord-monitor/index.py
directory=/opt/py-supervisord-monitor
process_name=%(program_name)s
numprocs=1
autostart=true
autorestart=true




Supervisorを再起動。


# /etc/init.d/supervisor restart



これで起動してくれました。

584_02.png



アプリケーションの更新



hgコマンドで更新できます。


# cd /opt/py-supervisord-monitor
# hg pull
# hg update






関連記事

テーマ:サーバ - ジャンル:コンピュータ

  1. 2015/03/08(日) 14:59:53|
  2. Python
  3. | トラックバック:0
  4. | コメント:0
  5. | 編集
<<はじめてのアマゾンウェブサービス(AWS) アカウントの作成 | ホーム | Python getattrで取得したメソッドの引数に変数で値を渡す>>

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック

トラックバック URL
http://symfoware.blog68.fc2.com/tb.php/1677-12353810
この記事にトラックバックする(FC2ブログユーザー)