supervisor集中式管理

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



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

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

这个项目用到了:

  • Flask web server
  • bootstrap + jquery UI

工具的主要特点包括:

  • 方便部署:

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

  • 将任何程序进行分组管理。例如可以将不同机器上执行相同功能的应用放在一个组里,可以对真个组进行管理,比如:重启,开始,停止等操作。需要做的仅仅是按照规则修改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.

下一步要做的

  • 性能提升
  • UI提升
  • 异常处理

欢迎fork和star
github地址
原文地址

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容