Skip to content
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 秒以后仍然显示为 "等待轮询"
  • 集群后台任务 (如扩容, 迁移数据, 增加从节点) 不执行
Clone this wiki locally