Background
- CeSi 是 Supervisor 官方推荐的集中化管理 Supervisor 实例的 Web UI,该工具是用 Python 编写,基于 Flask Web 框架 。
- Superviosr 自带的 Web UI 不支持跨机器管理Supervisor 进程,功能比较简单,通过 CeSi 可以集中管理各个服务器节点的进程,在 Web 界面就可以轻松管理各个服务的启动、关闭、重启等,方便使用。
- 当前部署环境:
CentOS7.9
、Python3.7.8
1、部署环境
item | version |
---|---|
Centos | 7.9 |
Python | 3.7.8 |
Flask | 2.2.5 |
Flask-SQLAlchemy | 2.5.1 |
psycopg2-binary | 2.8.5 |
PyMySQL | 0.9.3 |
SQLAlchemy | 1.4.48 |
CeSi | 2.7.1 |
Supervisor官方文档地址:http://supervisord.org/plugins.html#dashboards-and-tools-for-multiple-supervisor-instances
Cesi git地址:https://github.com/gamegos/cesi
- 最终效果
2、安装依赖
shell
yum install -y git wget epel-release npm bzip2
curl --silent --location https://dl.yarnpkg.com/rpm/yarn.repo | tee /etc/yum.repos.d/yarn.repo
yum install -y yarn
3、部署CeSi
shell
cd /opt/
wget https://github.com/gamegos/cesi/releases/download/v2.7.1/cesi-extended.tar.gz
cd cesi/
pip3 install -r requirements.txt
cd /opt/cesi/ui/
yarn install
yarn build
4、配置CeSi
- 创建日志目录
shell
mkdir -p /opt/cesi/logs/
/etc/cesi.conf.toml
toml
# This is the CeSI's own configuration.
[cesi]
# Database Uri
database = "sqlite:///users.db" # Relative path
# Etc
#database = "sqlite:opt/cesi/< version >/users.db" # Absolute path
#database = "postgres://<user>:<password>@localhost:5432/<database_name>"
#database = "mysql+pymysql://<user>:<password>@localhost:3306/<database_name>"
activity_log = "/opt/cesi/logs/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 = "elephant"
environment = "dev"
username = "admin"
password = "admin"
host = "elephant"
port = "9001"
[[nodes]]
name = "test"
environment = "test"
username = "admin"
password = "admin"
host = "test"
port = "9001"
[[nodes]]
name = "app"
environment = "prod"
username = "admin"
password = "admin"
host = "app"
port = "9001"
[[nodes]]
name = "app01"
environment = "prod"
username = "admin"
password = "admin"
host = "app01"
port = "9001"
/etc/systemd/system/cesi.service
service
[Unit]
Description=cesi
[Service]
Environment=
ExecStart=/usr/bin/python3 /opt/cesi/cesi/run.py --config-file /etc/cesi.conf.toml
ExecReload=/bin/kill -HUP $MAINPID
KillSignal=TERM
User=root
WorkingDirectory=/opt/cesi
Restart=on-failure
[Install]
WantedBy=multi-user.target
- 配置系统管理
shell
systemctl daemon-reload
systemctl enable cesi
5、启动CeSi
shell
systemctl start cesi
# 启动正常查看信息无报错,有报错根据报错信息排查解决
systemctl status cesi
6、访问CeSi
- 浏览器访问 http://IP:5000
- 默认
用户名/密码
:admin/admin
- 注意:默认用户名密码不要改,改了进不去,我在这里踩坑了