-
Notifications
You must be signed in to change notification settings - Fork 61
Setup
Neuron Teckid edited this page Sep 18, 2015
·
2 revisions
- 运行时: Python2 2.6 或以上版本, 建议 2.7.6 或以上版本
- 数据库: MySQL
可选依赖
- Open-falcon
- Eru
所有的依赖在代码目录的 requirements.txt 下, 可以逐个安装, 或以
pip install -r requirements.txt
批量安装.
请确保在安装 python 依赖之前, 以下库已经被安装
- python-devel
- libmysqlclient-dev
将 MySQL 的 wait_timeout
调大至 86400 或更大; 如果程序运行时发生 "MySQL server has gone away" 错误, 与此配置有关.
Redis Ctl 采用默认配置 + 环境变量配置 + 调试覆盖配置综合作为运行时配置. 配置项如下
主要参数
-
SERVER_PORT
: Web 程序监听的端口, 默认 5000 -
MYSQL_HOST
: MySQL 地址, 默认 localhost -
MYSQL_PORT
: MySQL 端口, 默认 3306 -
MYSQL_USERNAME
: MySQL 用户名, 默认 root -
MYSQL_PASSWORD
: MySQL 口令, 没有默认值 -
MYSQL_DATABASE
: MySQL 数据库名, 默认为 "redis-ctl" -
LOG_LEVEL
: 日志分级, 默认为 info, 可设置为 debug, error 等, 需与 Python logging 模块的 level 名称一致. -
LOG_FILE
: 日志文件, 默认输出到 stdout -
DEBUG
: 是否以调试模式启动, 默认为 0, 表示不启用, 1 表示启用 (针对 Web 程序, 启用调试模式时, 绑定 IP 为 127.0.0.1) -
POLL_INTERVAL
: 最小轮询周期 (秒), 默认为 10 (针对守护进程); 轮询周期有可能因为需要轮询的节点太多, 或网络开销太长而增加 -
PERMDIR
: 文件 IPC 目录, 此目录需要读, 写权限, 默认为系统上的临时文件目录; 若此目录不存在, 会尝试创建之
以上参数可以通过环境变量更改, 如
SERVER_PORT=6000 LOG_LEVEL=warning PERMDIR=/home/alice/.permdir python main.py
或以更改 override_config.py 的方式配置:
- 将目录下的 override_config.py.example 复制并重命名为 override_config.py
- 修改对应的变量的值
- 其中,
LOG_LEVEL
一项直接用logging
模块中的属性
这些配置中, 默认配置会被环境变量配置覆盖, 而环境变量配置会被 override_config.py 中的属性覆盖.
使用环境变量配置时, 使用以下环境变量 (必须全部设置)
-
OPEN_FALCON_HOST_QUERY
: 查询地址 -
OPEN_FALCON_PORT_QUERY
: 查询端口 -
OPEN_FALCON_HOST_WRITE
: 写入地址 -
OPEN_FALCON_PORT_WRITE
: 写入端口 -
OPEN_FALCON_DATABASE
: 数据条目前缀
如果使用 override_config.py 文件, 则定义一个 Python 字典即可. 参见 config.py 中 OPEN_FALCON
的定义.
环境变量参数
ALGALON_CSRF_TOKEN
ALGALON_DSN
使用 override_config.py 文件, 定义一个 Python 字典, 参见 config.py 中 ALGALON
的定义.
环境变量参数以及 override_config.py 文件中的定义
-
ERU_URL
: Eru 地址 (HTTP 地址, 含端口号) -
ERU_GROUP
: Eru 机器组名 -
ERU_NETWORK
: Eru 容器虚拟子网名
Redis Ctl 分为 Web 主进程和守护进程两部分, 两部分通过文件进行通信.
启动 Web 进程
python main.py
启动守护进程
python daemon.py
发生以下现象可能都是没有启用守护进程导致
- 节点状态数据 (如 CPU 使用, 内存消耗量) 不显示, 或节点状态数据在节点被添加后超过 30 秒以后仍然显示为 "等待轮询"
- 集群后台任务 (如扩容, 迁移数据, 增加从节点) 不执行
在需要清理任务状态时, 需要执行
python release_task_lock.py
详见任务及锁.