Supervisor 的安装及基本使用
supervisor 文章跳转
开启supervisor 的 web服务
【inet_http_server】 ;HTTP服务器,提供web管理界面
port=0.0.0.0:9001 ;Web管理后台运行的IP和端口,如果开放到公网,需要注意安全性
username=root ;登录管理后台的用户名
password=123 ;登录管理后台的密码
安装配置 CeSi
1. 简介
CeSi 是 Supervisor 官方推荐的集中化管理 Supervisor 实例的 Web UI,该工具是用 Python 编写,基于 Flask Web 框架 。
Superviosr 自带的 Web UI 不支持跨机器管理
Supervisor 进程,功能比较简单,通过 CeSi 可以集中管理各个服务器节点的进程,在 Web 界面就可以轻松管理各个服务的启动、关闭、重启等,很方便使用。
2. 安装
CeSi 已经有了新的版本,在 GitHub 仓库的 v2_api 分支下,提供了比之前版本更加美观的界面,以下为 CeSi 一键安装配置脚本:
yum install wget
yum install git
python 安装
export CESI_SETUP_PATH=~/cesi
mkdir ${CESI_SETUP_PATH}//代码效果参考:http://www.ezhiqi.com/bx/art_1147.html
cd ${CESI_SETUP_PATH}
# Download the project to ~/cesi directory
wget -O cesi.tar.gz
tar -xvf cesi.tar.gz
# Create virtual environment and install requirement packages
python3 -m venv venv
source venv/bin/activate
pip3 install -r requirements.txt
3. 配置
# Create cesi conf
cp /usr/local/defaults/cesi.conf.toml /etc/cesi.conf
vim /etc/cesi.conf
【cesi】
# Database Uri
database = "" # Relative path
# Etc
#database = "" # Absolute path
#database = "
@localhost:5432/"
#database = "mysql+
@localhost:3306/"
activity_log = "activity.log" # File path for CeSI logs
admin_username = "admin" # Username of admin user
admin_password = "admin" # Password of admin user
# This is the definition section for new supervisord node.
# 【【nodes】】
# name = "api" # (String) Unique name for supervisord node.
# environment = "" # (String) The environment name provides logical grouping of supervisord nodes. It can be used as filtering option in the UI.
# username = "" # (String) Username of the XML-RPC interface of supervisord Set nothing if no username is configured
# password = "" # (String) Password of the XML-RPC interface of supervisord. Set nothing if no username is configured
# host = "127.0.0.1" # (String) Host of the XML-RPC interface of supervisord
# port = "9001" # (String) Port of the XML-RPC interface of supervisord
# Default supervisord nodes
【【nodes】】
name = "count_1"
environment = "count"
username = "root"
password = "123"
host = "192.168.0.239"
port = "9190"
【【nodes】】
name = "count_2"
environment = "count"
username = "root"
password = "123"
host = "192.168.0.240"
port = "9190"
【【nodes】】
name = "count_3"
environment = "count"
username = "root"
password = "123"
host = "192.168.0.71"
port = "9190"
注意:CeSi 的配置文件路径必须是 /etc/cesi.conf ,否则启动会报错,简单看下 CeSi 的源码就知道为什么了。在这里我在仓库目录弄了个软连接指向了 /etc/cesi.conf,完全是为了编辑方便弄的。
4. 启动
CeSi 的启动非常简单,直接通过 Python 启动即可:
/usr/local/venv/bin/python3 /usr/local/cesi/run.py --config-file /etc/cesi.conf -p 9191
1
为了方便管理,我把 CeSi 也通过 Supervisor 来管理,以下为对应的 Supervisor 配置:
创建日志文件
mkdir -p /var/log/supervisor/cesi/
【program:cesi】
directory=/usr/local/cesi
command=/usr/local/venv/bin/python3 /usr/local/cesi/run.py --config-file /etc/cesi.conf -p 9191
stderr_logfile=/var/log/supervisor/cesi/cesi.log
stdout_logfile=/var/log/supervisor/cesi/cesi.out
autostart=true
autorestart=true
stopasgroup=true
killasgroup=true
startsecs=180