centos安装Supervisor并开启web访问

2023-06-18 17:14 Linux 152 0
Supervisor是使用python开发的一个进程管工具,可以监控进程状态,异常退出时能自动重启一、安装python环境由于centos自带python环境,因此可以跳过安装二、安装Supervisoryuminstall-ysupervisor如果安装失败,需要安装下yum源yuminstall-yepel-release三、生成Supervisor配置文件python/usr/bin/supervisord-c/etc/supervisord.conf四、配置文件supervisord.conf文件路径:/etc/supervisord.conf;Samplesupervisorconfigfile.[unix_http_server]file=/var/run/supervisor/supervisor.sock;UNIXsocket文件,supervisorctl使用;chmod=0700;socket文件的mode,默认是0700;chown=nobody:nogroup;socket文件的owner,格式:uid:gid;username=user;supervisorctl操作时鉴权用户名(如果开启了);password=123;supervisorctl操作时鉴权用户名(如果开启了);[inet_http_server];HTTP服务器,提供web管理界面;port=127.0.0.1:9001;Web管理后台运行的IP和端口,如果开放到公网,需要注意安全性;username=user;登录管理后台的用户名(如果开启了);password=123;登录管理后台的用户名(如果开启了)[supervisord]logfile=/var/log/supervisor/supervisord.log;日志文件,默认是$CWD/supervisord.loglogfile_maxbytes=50MB;日志文件大小,超出会rotate,默认50MB,如果设成0,表示不限制大小logfile_backups=10;日志文件保留备份数量默认10,设为0表示不备份loglevel=info;日志级别,默认info,其它:debug,warn,tracepidfile=/var/run/supervisord.pid;pid文件,默认supervisord.pidnodaemon=false;是否在前台启动,默认是false,即以daemon的方式启动minfds=1024;可以打开的文件描述符的最小值,默认1024minprocs=200;可以打开的进程数的最小值,默认200;umask=022;进程文件创建umask,默认为022;user=chrism;默认值是当前用户,如果是root用户则需要;identifier=supervisor;管理员标识符,默认为'supervisor';directory=/tmp;默认情况下,启动时不使用cd;nocleanup=true;不要在开始时清理tempfile,默认为false;childlogdir=/tmp;'AUTO'子日志目录,默认$TEMP;environment=KEY=value;要添加的环境变量,键值对;strip_ansi=false;在日志中剥离ANSI转义码,默认为false;下面的部分必须保留在RPC的配置文件中;(superorctl/web接口)才能工作,其他接口可能需要;通过在单独的rpcinterface:节中定义它们来添加[rpcinterface:supervisor]supervisor.rpcinterface_factory=supervisor.rpcinterface:make_main_rpcinterface[supervisorctl]serverurl=unix:///var/run/supervisor/supervisor.sock;通过UNIXsocket连接supervisord,路径与unix_http_server部分的file一致;serverurl=http://127.0.0.1:9001;通过http://的方式连接supervisord;username=chris;应该是相同的unix_http_server里的username(如果开启了);password=123;应该是相同的unix_http_server里的password(如果开启了);prompt=mysupervisor;CMD行提示符(默认为"supervisor");history_file=~/.sc_history;使用readline历史记录(如果开启了);下面的示例程序部分显示了所有可能的程序分段值,;创建一个或多个“真实的”程序段,以便能够控制它们;[program:theprogramname];command=/bin/cat;脚本执行命令,可以传递参数;process_name=%(program_name)s;进程名,如果我们下面的numprocs参数为1的话,就不用管这个参数了,;numprocs=1;启动进程的数目,非必须设置;directory=/tmp;进程运行前,会切换到这个目录,默认不设置,非必须设置;umask=022;进程掩码,默认none,非必须;priority=999;子进程启动关闭优先级,优先级低的,最先启动,关闭的时候最后关闭,默认值为999;autostart=true;如果是true的话,子进程将在supervisord启动后被自动启动,默认true;autorestart=true;子进程挂掉后自动重启的情况;startsecs=10;子进程启动多少秒之后,此时状态如果是running,则我们认为启动成功,默认10;startretries=3;当进程启动失败后,最大尝重启的次数,默认3;exitcodes=0,2;进程的退出码;stopsignal=QUIT;进程停止信号(defaultTERM);stopwaitsecs=10;子进程发送stopsignal信号后,返回信息给supervisord所等待的最大时间。超过这个时间,supervisord会向该子进程发一个强制kill的信号一个强制kill的信号(default10);user=chrism;如果supervisord是root启动,可以设置个非root用户;redirect_stderr=true;stderr的日志会被写入stdout日志文件中(defaultfalse);stdout_logfile=/a/path;子进程的stdout的日志路径,可以指定路径或者使用none和autodefaultAUTO;stdout_logfile_maxbytes=1MB;日志文件最大大小(default50MB);stdout_logfile_backups=10;日志文件保留备份数量(default10);stdout_capture_maxbytes=1MB;设定capture管道的大小(default0);stdout_events_enabled=false;在stderr写入时触发事件(defaultfalse);stderr_logfile=/a/path;子进程的stderr的日志路径,可以指定路径或者使用none和autodefaultAUTO;stderr_logfile_maxbytes=1MB;日志文件最大大小(default50MB);stderr_logfile_backups=10;日志文件保留备份数量(default10);stderr_capture_maxbytes=1MB;设定capture管道的大小(default0);stderr_events_enabled=false;在stderr写入时触发事件(defaultfalse);environment=A=1,B=2;子进程的环境变量,和其他的子进程不共(defnoadds);serverurl=AUTO;覆盖服务器url计算(childutils);Thebelowsampleeventlistenersectionshowsallpossible;eventlistenersubsectionvalues,createoneormore'real';eventlistener:sectionstobeabletohandleeventnotifications;sentbysupervisor.;[eventlistener:theeventlistenername];command=/bin/eventlistener;theprogram(relativeusesPATH,cantakeargs);process_name=%(program_name)s;process_nameexpr(default%(program_name)s);numprocs=1;numberofprocessescopiestostart(def1);events=EVENT;eventnotif.typestosubscribeto(req'd);buffer_size=10;eventbufferqueuesize(default10);directory=/tmp;directorytocwdtobeforeexec(defnocwd);umask=022;umaskforprocess(defaultNone);priority=-1;therelativestartpriority(default-1);autostart=true;startatsupervisordstart(default:true);autorestart=unexpected;restartatunexpectedquit(default:unexpected);startsecs=10;numberofsecsprogmuststayrunning(def.1);startretries=3;max#ofserialstartfailures(default3);exitcodes=0,2;'expected'exitcodesforprocess(default0,2);stopsignal=QUIT;signalusedtokillprocess(defaultTERM);stopwaitsecs=10;maxnumsecstowaitb4SIGKILL(default10);user=chrism;setuidtothisUNIXaccounttoruntheprogram;redirect_stderr=true;redirectprocstderrtostdout(defaultfalse);stdout_logfile=/a/path;stdoutlogpath,NONEfornone;defaultAUTO;stdout_logfile_maxbytes=1MB;max#logfilebytesb4rotation(default50MB);stdout_logfile_backups=10;#ofstdoutlogfilebackups(default10);stdout_events_enabled=false;emiteventsonstdoutwrites(defaultfalse);stderr_logfile=/a/path;stderrlogpath,NONEfornone;defaultAUTO;stderr_logfile_maxbytes=1MB;max#logfilebytesb4rotation(default50MB);stderr_logfile_backups;#ofstderrlogfilebackups(default10);stderr_events_enabled=false;emiteventsonstderrwrites(defaultfalse);environment=A=1,B=2;processenvironmentadditions;serverurl=AUTO;overrideserverurlcomputation(childutils);给进程分组,可以对组名进行统一的操作;[group:thegroupname];programs=progname1,progname2;eachrefersto'x'in[program:x]definitions;priority=999;therelativestartpriority(default999);拆分配置文件,可以把每个program分成每个ini文件放到该目录[include]files=supervisord.d/*.ini五、开启web访问修改配置文件里的inet_http_server去掉前面的;[inet_http_server];HTTP服务器,提供web管理界面port=0.0.0.0:9001;0.0.0.0表示监听全部ipusername=user;登录管理后台的用户名(如果开启了)password=123;登录管理后台的用户名(如果开启了)输入ip:9001,登录即可五、常用命令supervisorctlstatus//查看所有进程的状态supervisorctlstopapp//停止appsupervisorctlstartapp//启动appsupervisorctlrestart//重启appsupervisorctlupdate//配置文件修改后使用该命令加载新的配置supervisorctlreload//重新启动配置中的所有程序
暂无评论,我会出手
说点什么
登录用户可以修改和删除评论,可以收到回复的邮件提醒点击登录/注册
最多上传8张图片,仅支持jpg,png格式图片,单张大小5MB以内!
用户名: