supervisor安装与监控nginx

Posted on 2022-08-30 16:44  brad1208  阅读(394)  评论(0编辑  收藏  举报

安装参考:
https://www.cnblogs.com/zgcblog/p/10192077.html

https://www.cnblogs.com/yangbo981205/p/14928897.html 

 

用pip3快速安装:(如果安装失败,先更新一下yum:yum -y update

yum install -y python3 &&pip3 install supervisor

 

安装后配置:

mkdir /usr/supervisor ;sudo chmod -R 777 /usr/supervisor ;echo_supervisord_conf > /usr/supervisor/supervisord.conf ;mkdir /usr/supervisor/supervisord.d ;mkdir /usr/supervisor/logs

 

执行:vim /usr/supervisor/supervisord.conf
这里把所有的/tmp路径改掉,要不重启后容易被linux自动清掉。
/tmp/supervisor.sock 改成/var/run/supervisor.sock(有两个位置需要改)
/tmp/supervisord.log 改成/var/log/supervisor.log
/tmp/supervisord.pid 改成 /var/run/supervisor.pid

配置 vim /usr/supervisor/supervisord.conf

最后一句话改为:

[include]
files = /usr/supervisor/supervisord.d/*.conf

 

配置文件 vim /usr/supervisor/supervisord.d/nginx.conf 

[program:nginx] ; 管理的子程序名字,要和项目有关联,不能乱写
command = /usr/local/nginx/sbin/nginx -g 'daemon off;'
#让监控的目标nginx在前台运行

priority=1 ; 数字越高,优先级越高(对不同进程而言)
numprocs=1 ; 启动几个进程
autostart=true ; 随着supervisord的启动而启动
autorestart=true ; 自动重启
startretries=10 ; 启动失败时的最多重试次数
exitcodes=0 ; 正常退出代码
stopsignal=KILL ; 用来杀死进程的信号
stopwaitsecs=10 ; 发送SIGKILL前的等待时间
redirect_stderr=true ; 重定向stderr到stdout
stopasgroup=true ; 重要的设置,一起管理子进程
stdout_logfile_maxbytes=20MB ; 日志文件大小限制
stdout_logfile_backups=10 ; 日志文件备份数量
stdout_logfile =/usr/supervisor/logs/nginx-supervisor.log ;错误日志输出位置,目录要存在

说明:“/usr/local/nginx/sbin/nginx”为nginx启动路径。

【supervisor常用指令】

[全局指令]

supervisorctl status #查看所有进程运行状况

supervisorctl reread #重读配置

supervisorctl update #更新配置

supervisorctl restart nginx #关闭并重启nginx

supervisorctl reload #关闭并重新加载开启所有配置

supervisorctl stop all #关闭所有监控的服务程序

supervisorctl start all #开启所有监控的服务程序


[控制台]
#进入控制台
supervisorctl

#重新读取配置
reread

#更新配置
update 

#重新启动配置中的所有程序
reload 

#开始nginx
start nginx

#结束nginx
stop nginx

#开始所有配置进程
start all

#结束所有配置进程
stop all

#查看状态
status

#退出控制台
exit

[长指令:/usr/supervisor/supervisord.conf为配置的位置]

/usr/bin/supervisord -c /usr/supervisor/supervisord.conf   ——启动Supervisor进程

# 父进程起来之后,就用【supervisorctl】这个工具管理子进程
/usr/bin/supervisorctl -c /usr/supervisor/supervisord.conf status   ——查看状态

/usr/bin/supervisorctl -c /usr/supervisor/supervisord.conf reload    ——重新载入配置文件

/usr/bin/supervisorctl -c /usr/supervisor/supervisord.conf update   —— # 每次修改配置后,建议使用此命令,不会全部重启

supervisorctl -c /usr/supervisor/supervisord.conf start [all]|[x]   ——启动所有/指定的程序进程

/usr/bin/supervisorctl -c /usr/supervisor/supervisord.conf stop [all]|[x]   ——关闭所有/指定的程序进程

killall supervisord   ——关闭supervisord 

查看supervisor运行状态

ps -A | grep supervisor

查看所有进程运行状况
supervisorctl status

其它相关教程:

https://blog.csdn.net/qq_28885149/article/details/79364685

https://www.cnblogs.com/eleven24/p/9026139.html

开机启动设置:https://www.cnblogs.com/94cool/p/5952219.html

vim /usr/lib/systemd/system/supervisord.service

输入以下内容(注意路径修改):

[Unit]
Description=Supervisor daemon

[Service]
Type=forking
ExecStart=/usr/bin/supervisord -c /usr/supervisor/supervisord.conf
ExecStop=/usr/bin/supervisorctl shutdown
ExecReload=/usr/bin/supervisorctl reload
KillMode=process
Restart=on-failure
RestartSec=42s

[Install]
WantedBy=multi-user.target

 

然后执行:systemctl enable supervisord

检查生效情况:systemctl is-enabled supervisord

 

其他说明:配置“inet_http_server”web管理界面后如果发现无法访问?

1、配置改为“port=*:9001”,然后更新一下;

2、检查服务器防火墙是否开放了9001端口,也可以关闭防火墙;

3、检查阿里云或者其他服务器运营商管理后台配置,在访问规则里面开放9001端口,然后再试就可以了。

 

使用supervisorctl status 命令报Server requires authentication error错误,检查下方代码有没被注释掉,解开后update一下即可

serverurl=unix:///var/supervisor.sock ; use a unix:// URL  for a unix socket