CentOS 7-supervisor設置配置実戦


紹介する
Supervisorはプロセス制御システムです.C/Sシステムであり、サービス側はsupervisordプロセスであり、制御側はsupervisorctlを使用して制御起動プロセスを行う.同時に、プロセスの制御とログ情報の表示を容易にするためのwebインタフェースも提供されています.
supervisordとsupervisorctlはcentos 7のsystemdとsystemctlの関係に似ていますが、systemdとは違って、あなたのNginx、Tomcat、memcache、Redis...崩壊しますか?自分で書いたサーバー監視スクリプトは?よし、もう悩まないで、スーパービジョンに任せよう!それはあなたにこれらを維持することができて、たとえそれらがうっかり崩れても、Supervisorはあなたにそれらを見て、それらを維持して、それらを再起動することができます.
一、据付
インストール環境:CentOS 7.3
yum install python-setuptools
easy_install supervisor
#   
pip install supervisor

supervisorのインストールが完了すると、supervisortd、supervisorctl、echoの3つの実行プログラムが生成されます.supervisord_confは、supervisorのデーモン・プロセス・サービス(プロセス管理コマンドを受信するため)、クライアント(デーモン・プロセスと通信し、管理プロセスを送信するための命令)、初期プロファイル・プログラムを生成する.
二、配置
出力supervisor構成は、echo_supervisord_confを使用してファイルにリダイレクトし、構成項目を変更できます.supervisordサービスを実行する場合は、supervisorプロファイルを指定する必要があります.指定が表示されていない場合は、デフォルトでは次のディレクトリで検索されます.
###$CWD    supervisord     。
$CWD/supervisord.conf 
$CWD/etc/supervisord.conf
/etc/supervisord.conf
/etc/supervisor/supervisord.conf (since Supervisor 3.3.0)
../etc/supervisord.conf (Relative to the executable)
../supervisord.conf (Relative to the executable)

/etc/ディレクトリの下にリダイレクトします
mkdir /etc/supervisor
echo_supervisord_conf > /etc/supervisor/supervisord.conf

1、プロファイルパラメータの説明
supervisorの構成パラメータは多いですが、一般的なパラメータ構成、詳細な構成と説明については、公式ドキュメントを参照してください.注意:セミコロン(;)の先頭の構成はコメントを表します.
[unix_http_server]
file=/tmp/supervisor.sock   ;UNIX socket   ,supervisorctl    
;chmod=0700                 ;socket   mode,   0700
;chown=nobody:nogroup       ;socket   owner,  :uid:gid

;[inet_http_server]         ;HTTP   ,  web    
;port=127.0.0.1:9001        ;Web       IP   ,       ,       
;username=user              ;          
;password=123               ;         

[supervisord]
logfile=/tmp/supervisord.log ;    ,    $CWD/supervisord.log
logfile_maxbytes=50MB        ;      ,   rotate,   50MB,    0
logfile_backups=10           ;            100     
loglevel=info                ;    ,  info,  : debug,warn,trace
pidfile=/tmp/supervisord.pid ;pid   
nodaemon=false               ;       ,   false,   daemon      
minfds=1024                  ;              ,   1024
minprocs=200                 ;            ,   200

[supervisorctl]
serverurl=unix:///tmp/supervisor.sock ;  UNIX socket  supervisord,   unix_http_server   file  
;serverurl=http://127.0.0.1:9001 ;   HTTP     supervisord

; [program:xx]           ,xx      
[program:xx]
command=/opt/apache-tomcat-8.0.35/bin/catalina.sh run  ;       
autostart=true       ;  supervisord          
startsecs=10         ;   10        ,          ,   1 
autorestart=true     ;          ,   :[unexpected,true,false],   unexpected,            
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     ,                   ,          (supervisord          )
stdout_logfile=/opt/apache-tomcat-8.0.35/logs/catalina.out
stopasgroup=false     ;   false,      ,          stop  ,     
killasgroup=false     ;   false,      kill  ,     

;        ,     ,                     ,         include    。
[include]
files = relative/directory/*.ini    ;          .ini       

2、構成管理プロセス
プロセスは構成パラメータを管理し、supervisordにすべて書くことを推奨しません.confファイルでは、includeが指定したディレクトリの下にsupervisordを含むプロファイルをプロセスごとに書く必要があります.confファイルにあります.(1)プロセス管理のプロファイルを格納するための/etc/supervisor/config.dディレクトリを作成する(2)/etc/supervisor/supervisord.confのincludeパラメータを変更し、/etc/supervisor/conf.dディレクトリをincludeに追加する
[include]
files = /etc/supervisor/config.d/*.ini

3、サービス構成テンプレート
###    (program_name        ,          )
[program:program_name]
###         ,      &  ,  "ping 127.0.0.1 &"      supervisor     。
command=php /home/wwwroot/site.webshowu.com/artisan queue:work redis --sleep=3 --tries=3 --daemon
autostart=true
autorestart=true
user=root
numprocs=3
redirect_stderr=true
stdout_logfile=/home/wwwlogs/worker1.log

これらのコンフィギュレーション・アイテムの意味は、上記のコンフィギュレーション・ファイルの説明で詳細に説明されています.次に、Tomcatプロセスを構成する例を示します.
[program:tomcat]
command=/opt/apache-tomcat-8.0.35/bin/catalina.sh run
stdout_logfile=/opt/apache-tomcat-8.0.35/logs/catalina.out
autostart=true
autorestart=true
startsecs=5
priority=1
stopasgroup=true
killasgroup=true

4、web管理構成説明
プロファイルの編集/etc/supervisor/supervisord.conf、最後尾に次の構成を追加します.
[inet_http_server]         ; inet (TCP) server disabled by default
port=0.0.0.0:9001          ; (ip_address:port specifier, *:port for all iface)
username=user              ;     (default is no username (open server))
password=123               ;    (default is no password (open server))

本機の9001ポートにアクセスし、ユーザー名のパスワードを入力すると、この管理ページにアクセスできます.
三、supervisorとその管理するプロジェクトの起動と閉鎖
1、supervisorを起動する
##-c           
supervisord -c /etc/supervisor/supervisord.conf

2、supervisorを閉じる
supervisorctl shutdown

3、supervisorを再ロードします.ここではsupervisorサービスを再起動することに相当します.中のサービスも再起動します.
supervisorctl reload

4、管理するサービスの追加/削除
(1)プロファイルの追加または削除(2)更新
supervisorctl update

5、supervisor下のサービスを管理する
###    
supervisorctl start all
supervisorctl start service_name
###    
supervisorctl stop all
supervisorctl stop service_name
###    
supervisorctl status [service_name]
###               
supervisorctl restart all
supervisorctl restart service_name

詳細は公式サイトをご覧ください