-
Notifications
You must be signed in to change notification settings - Fork 61
Setup
Neuron Teckid edited this page Jun 18, 2015
·
2 revisions
- 运行时: Python2 2.6 或以上版本, 建议 2.7.6 或以上版本
- 数据库: MySQL
可选依赖
- Influxdb: 0.9rc25 或以上版本
- Open-falcon
所有的依赖在代码目录的 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 中的属性覆盖.
Redis Ctl 分为主进程 (Web) 和守护进程两部分, 两部分通过文件进行通信.
启动 Web 进程
python main.py
启动守护进程
python daemon.py
发生以下现象可能都是没有启用守护进程导致
- 节点状态数据 (如 CPU 使用, 内存消耗量) 不显示, 或节点状态数据在节点被添加后超过 30 秒以后仍然显示为 "等待轮询"
- 集群后台任务 (如扩容, 迁移数据, 增加从节点) 不执行