Skip to content
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 数据统计

使用环境变量配置时, 使用以下环境变量 (必须全部设置)

  • 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 警报

环境变量参数

  • ALGALON_CSRF_TOKEN
  • ALGALON_DSN

使用 override_config.py 文件, 定义一个 Python 字典, 参见 config.py 中 ALGALON 的定义.

Eru 容器部署 Redis 和 Cerberus

环境变量参数以及 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

详见任务及锁.

Clone this wiki locally