Symfoware

Symfowareについての考察blog

複数サーバーのSupervisordプロセスを一括監視する「supervisord-monitor」

Supervisorの状態をWebインターフェースで表示してみました。
SupervisorのWebインターフェースを有効にする

これ、サーバーが増えたら大変だなと思いつつ
Supervisorのページを見ていると

http://supervisord.org/plugins.html#dashboards-and-tools-for-multiple-supervisor-instances

Supervisord-Monitorという便利そうなツールを見つけました。
https://github.com/mlazarov/supervisord-monitor

早速インストールしてみます。


2015/3/8追記

Python製のクローン「py-supervisord-monitor」
複数のSupervisordを一括監視する「py-supervisord-monitor」

こちらのほうが設置がお手軽だと思います。




apache2 + php5



apache2やphp5のインストール。
rewriteモジュールの有効化はここと同じ手順です。
beanstalkdのweb管理画面「phpBeanstalkdAdmin」をインストールする


ざっと手順だけ。


# apt-get install apache2 libapache2-mod-php5
# a2enmod rewrite
# vi /etc/apache2/sites-enabled/000-default



000-defaultのAllowOverrideを「None」から「All」に変更

<VirtualHost *:80>
        ServerAdmin webmaster@localhost

        DocumentRoot /var/www
        <Directory />
                Options FollowSymLinks
                AllowOverride None
        </Directory>
        <Directory /var/www/>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride All
                Order allow,deny
                allow from all
        </Directory>




apacheをリスタート。


# /etc/init.d/apache2 restart







Supervisorの設定



inet_http_serverの設定が有効になっていれば良いようです。
SupervisorのWebインターフェースを有効にする






supervisord-monitorのインストール



/optにgitでチェックアウト。
リンクを貼ることにしました。


# apt-get install git
# cd /opt
# git clone https://github.com/mlazarov/supervisord-monitor.git
# chown -R www-data:www-data supervisord-monitor




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


# vi supervisord-monitor/application/config/supervisor.php



元はこんな感じ。


  1. <?php
  2. $config['supervisor_servers'] = array(
  3.         'server01' => array(
  4.                 'url' => 'http://server01.app/RPC2',
  5.                 'port' => '9001',
  6.                 'username' => 'yourusername',
  7.                 'password' => 'yourpass'
  8.         ),
  9.         'server02' => array(
  10.                 'url' => 'http://server02.app/RPC2',
  11.                 'port' => '9001'
  12.         ),
  13.         'server03' => array(
  14.                 'url' => 'http://server03.app/RPC2',
  15.                 'port' => '9001'
  16.         ),
  17. );
  18. $config['refresh'] = 10;
  19. ?>




環境に合わせて変更します。


  1. <?php
  2. $config['supervisor_servers'] = array(
  3.         'server01' => array(
  4.                 'url' => 'http://192.168.1.11/RPC2',
  5.                 'port' => '9001',
  6.                 'username' => 'user',
  7.                 'password' => '123'
  8.         ),
  9. );
  10. $config['refresh'] = 10;
  11. ?>




リンクを設定。


# ln -s /opt/supervisord-monitor/public_html /var/www/supervisord-monitor




サブディレクトリで動かしたかったので、public_html/.htaccessを編集。


RewriteEngine On
RewriteBase /supervisord-monitor

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?$1 [L]





どうも、サブディレクトリで動かすことが想定されていないようで、
application/view/welcome.phpを多少編集しました。

45行目

  1. -<li><a href="/">Refresh <b id="refresh">(<?php echo $this->config->item('refresh');?>)</b>  </a></li>
  2. +<li><a href="/supervisord-monitor">Refresh <b id="refresh">(<?php echo $this->config->item('refresh');?>)</b>  </a></li>




193行目

  1. -location.href="/";
  2. +location.href="/supervisord-monitor";




ジョブの停止とかまではまだ対応できていませんが、
とりあえずの動作は確認できました。

465_01.png

多分、ルートで公開すればちゃんと動いてくれると思います。
関連記事

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

  1. 2014/08/31(日) 23:17:08|
  2. 備忘録
  3. | トラックバック:0
  4. | コメント:0
  5. | 編集
次のページ