基本的な紹介
スーパーバイザーは、ユーザーがUNIXライクなオペレーティングシステム上の多くのプロセスを制御できるようにするクライアント/サーバーシステムです。これは、Python言語に基づいて開発されたプロセス管理ツールです。
スーパーバイザーのサーバー側はsupervisordと呼ばれ、主に、マネージドサブプロセスの起動時の開始、クライアントコマンドへの応答、クラッシュまたは終了するサブプロセスの再起動、サブプロセスstdoutおよびstderrの出力の記録、ライフの生成と処理を担当します。サブプロセスイベントのサイクル。構成ファイルで、Supervisord自体の状態や、Supervisordが管理する各サブプロセスの関連属性などの関連パラメーターを構成できます。構成ファイルは通常、/ etc /supervisord.confにあります。
スーパーバイザークライアントはsupervisorctlと呼ばれ、スーパーバイザーサーバーによって提供される機能を使用するためのシェルのようなインターフェイス(つまり、コマンドライン)を提供します。Supervisorctlを介して、ユーザーは監視対象サーバープロセスに接続し、サーバープロセスによって制御される子プロセスのステータスを取得し、子プロセスを開始および停止し、実行中のプロセスのリストを取得できます。クライアントはUnixドメインソケットまたはTCPソケットを介してサーバーと通信し、サーバーにはID資格情報認証メカニズムがあり、セキュリティを効果的に向上させることができます。クライアントとサーバーが同じマシン上にある場合、クライアントとサーバーは同じ構成ファイル/etc/supervisord.confを共有し、2つの構成は異なるラベルで区別されます。
スーパーバイザーは、プロセスのステータスを表示および管理するためのWebページも提供します。この機能はあまり使用されません。
公式サイト:http://supervisord.org
システム環境
[root @ nginx〜] #cat / etc / redhat-リリース
CentOS Linuxリリース7.4.1708(コア)
[root @ nginx〜] #uname -r
3.10.0-693.17.1.el7.x86_64
[root @ nginx〜] #python --version
Python 2.7.5
Python環境がインストールされていない場合は、yum install python-yを使用してインストールできます。
プラットフォームの要件
スーパーバイザーはほとんどのUnixシステムで実行できますが、Windowsシステムでの実行はサポートしていません。
スーパーバイザーにはPython2.4以降が必要ですが、Python3バージョンではサポートされていません。
スーパーバイザーサービスをインストールするeasy_installをインストールします
[root @ nginx〜] #yum install python-setuptools-devel -y
スーパーバイザーをインストールする
easy_installスーパーバイザー
スーパーバイザーがインストールされた後、3つの実行プログラムが生成されます。
スーパーバイザーtd
#supervisorのデーモンサービス(プロセス管理コマンドの受信に使用)
Supervisorctl
#Client(デーモンと通信し、管理プロセスの指示を送信するために使用されます)
echo_supervisord_conf
#初期構成ファイルプログラムを生成する
構成ファイルを作成する
通常、スーパーバイザーの初期化構成ファイルは、echo_supervisord_confプログラムを実行することで生成できます。
mkdir / etc / supervisor
echo_supervisord_conf> /etc/supervisor/supervisord.conf
[root @〜] #ll /etc/supervisor/supervisord.conf
-rw-r--r--1ルートルート97101月24日15:10 / etc / supervisor / supervisord.conf
構成ファイルパラメーターの紹介[unix_http_server]
file = /tmp/supervisor.sock; UNIXソケットファイル、supervisorctlは使用します
; chmod = 0700;ソケットファイルのモード。デフォルトは0700です。
; chown = nobody:nogroup;ソケットファイルの所有者、形式:uid:gid
; [inet_http_server]; HTTPサーバー、Web管理インターフェイスを提供
; port = 127.0.0.1:9001
; Web管理のバックグラウンドで実行されているIPとポート、パブリックネットワークに公開されている場合は、セキュリティに注意を払う必要があります
; username = user;管理バックグラウンドにログインするためのユーザー名
; password = 123;管理バックグラウンドにログインするためのパスワード
[監視対象]
logfile = /tmp/supervisord.log
;ログファイル。デフォルトは$ CWD /supervisord.logです。
logfile_maxbytes = 50MB
;ログファイルのサイズは、それを超えるとローテーションされます。デフォルトは50MBです。0に設定されている場合は、サイズが制限されていないことを意味します。
logfile_backups = 10;ログファイルのバックアップのデフォルト数は10で、0に設定するとバックアップがないことを意味します
loglevel = info;ログレベル、デフォルト情報、その他:debug、warn、trace
pidfile = /tmp/supervisord.pid;pid文件
nodaemon = false;フォアグラウンドで開始するかどうか、デフォルトはfalseです。つまり、デーモンモードで開始します。
minfds = 1024;開くことができるファイル記述子の最小値。デフォルトは1024です。
minprocs = 200;開くことができるプロセスの最小数、デフォルトは200です
[supervisorctl]
serverurl = unix:///tmp/supervisor.sock
; UNIXソケットを介して監視対象に接続します。パスは、unix_http_server部分のファイルと一致しています。
; serverurl = http://127.0.0.1:9001
; HTTP経由で監視対象を接続します
[プログラム:xx]
; [program:xx]は管理対象プロセスの構成パラメーター、xxはプロセスの名前です
command = / opt / tomcat / bin / catalina.sh run
;プログラム開始コマンド
autostart = true;監視対象が開始すると自動的に開始します
startsecs = 10;起動から10秒後に異常終了はありません。これは、プロセスが正常に開始されたことを意味します。デフォルトは1秒です。
autorestart = true;プログラムの終了後に自動的に再起動します。オプションの値:[unexpected、true、false]、デフォルトは予期しないものです。これは、プロセスが予期せず強制終了された後に再起動することを意味します。
startretries = 3;起動失敗後の自動再試行回数。デフォルトは3です。
user = tomcat;プロセスを開始するユーザー、デフォルトはrootです
priority = 999;プロセス開始優先度、デフォルトは999、値は小さく、優先度が開始されます
redirect_stderr = true; stderrをstdoutにリダイレクトし、デフォルトはfalse
stdout_logfile_maxbytes = 20MB; stdoutログファイルサイズ、デフォルトは50MB
stdout_logfile_backups = 20; stdoutログファイルのバックアップの数。デフォルトは10です。
; stdoutログファイル。指定されたディレクトリが存在しない場合、正常に起動できないため、ディレクトリを手動で作成する必要があることに注意してください(監視対象はログファイルを自動的に作成します)
stdout_logfile = / opt / apache-tomcat-8.0.35 / logs / catalina.out
stopasgroup = false
;デフォルトはfalseです。プロセスが強制終了されると、子プロセスを含むこのプロセスグループに停止信号を送信するかどうかが決まります。
killasgroup = false
;デフォルトはfalseで、子プロセスを含むプロセスグループにkillシグナルを送信します
[含める] ;他の構成ファイルを含める
ファイル= relative / directory/*。ini
; .iniで終わる1つ以上の構成ファイルを指定できます
注:構成ファイル内;コメントです
一般的に使用されるコマンドの概要Supervisordが正常に起動した後、supervisorctlクライアントを介してプロセスを制御し、開始、停止、および再起動できます。パラメータを追加せずにsupervisorctlコマンドを実行すると、スーパーバイザクライアントの対話型ターミナルに入り、現在管理されているすべてのプロセスが一覧表示されます。
[root @ java-test〜] #supervisorctl
スーパーバイザー>ヘルプ
デフォルトのコマンド(help <topic>と入力):
=====================================
追加クリアfgオープン終了削除再起動開始停止更新
avail exit maintail pid reload reread shutdown status tail version
ヘルプコマンドを使用して、関連するコマンドの使用法とパラメーターを表示できます。
構成管理プロセス以下は、Tomcatプロセスの構成例です。
[プログラム:tomcat]
command = / usr / local / tomcat / bin / catalina.sh run
stdout_logfile = /usr/local/tomcat/logs/catalina.out
autostart = true
autorestart = true
startsecs = 5
優先度= 1
stopasgroup = true
killasgroup = true
構成が完了したら、サービスを開始します
スーパーバイザー-c / etc / supervisor / supervisord.conf
起動後、以下の操作を行って設定ファイルを更新する必要があります
[root @〜] #supervisorctl update
[root @〜] #supervisorctl status
tomcat RUNNING pid 12223、稼働時間0:06:31
ターミナルコマンド
Supervisorctlステータス
Supervisorctl stop tomcat
Supervisorctl start tomcat
Supervisorctl restart tomcat
これまでのところ、関連するインストールと構成の紹介は終わりました。通常、実際の本番環境では、すべての構成を同じ構成ファイルに書き込むことはお勧めしませんが、個別に書き込むことはできます。