Quantcast
Channel: CodeSection,代码区,Linux操作系统:Ubuntu_Centos_Debian - CodeSec
Viewing all articles
Browse latest Browse all 11063

supervisor-easy使用指南

$
0
0

supervisor是一个python实现的可以对进程进行管理的程序,可以对托管的程序方便的进行类似重启,查看日志之类的操作,并提供了一个简单的操作界面.


supervisor-easy使用指南

但是在生产中可能会在上百台不同的服务器上通过supervisor部署程序,而supervisor默认提供的web管理工具是不能跨平台进行管理的,这对于程序的维护将会是致命的。

supervisor-easy 是一个可以集中管理supervisor程序的项目。

这个项目用到了:

Flask web server bootstrap + jquery UI

工具的主要特点包括:

方便部署:

不需要额外的数据库,缓存,仅仅需要python环境以及安装了Flask.

将任何程序进行分组管理。例如可以将不同机器上执行相同功能的应用放在一个组里,可以对真个组进行管理,比如:重启,开始,停止等操作。需要做的仅仅是按照规则修改config.py文件.
supervisor-easy使用指南
显示所有配置的主机以及他们所包含的应用。

同样的,这些应用也可以批量的进行管理。


supervisor-easy使用指南

##用法

git clone https://github.com/trytofix/supervisor-easy.git edit config.py from Server import Server
SERVERS = [
Server(
name='celery1',
host='127.0.0.1',
port=12345,
user='admin',
password='admin'
),
Server(
name='celery2',
host='remote.supervisor.com',
port=12345,
user='admin',
password='admin'
)
]
GROUPS = [
{
'name': 'celery',
'apps': ['celery1.test:celery', 'celery2.test:celery']
},
{
'name': 'flower',
'apps': ['celery1.flower']
}
]

上述配置中,一个Server对应的就是一个服务器上的supervisor实例,Server中的name是方便人来看的名字。

Notice: name必须是唯一的。不能重复。

下面是一个supervisor程序的配置文件。

[program:test]
command=celery -A main worker -l info -Ofair -Q test
directory=/home/q/celeryTest
user=brianyang
numprocs=1
stdout_logfile=/var/log/common.log
stderr_logfile=/var/log/common_err.log
autostart=true
autorestart=true
startsecs=10
killasgroup=true
priority=1000
[group:group1]
programs=celery,test

对照这个配置文件来讲解GROUPS

GROUPS 可以将任何的应用分到一组进行批量管理. apps 是分组中要包含应用的列表. ‘apps’中的每个字符串的定义为 server_name.group_name:application_name . application_name 对应supervisord.conf中’[program:test]’ 里的’test’. group_name 对应supervisord.conf中’[group:group1]’ 中的’group1’. server_name 就是之前在SERVERS中定义的某个Server的name. 运行: python webui.py 测试项目。

不要在生产环境中使用 python webui.py 。 更好的做法是使用一种常用的uwsgi服务器,例如uwsgi.


Viewing all articles
Browse latest Browse all 11063

Latest Images

Trending Articles