监视keepalived状态,如果服务器获取主角色,则运行start.sh;如果服务器获取从角色,则运行stop.sh。
keepserver的Python项目详细描述
监视keepalived状态,如果服务器获取主角色,则运行start.sh;如果服务器获取从角色,则运行stop.sh。
安装
pip install keepstart
示例配置
application: daemon: true workspace: /opt/ssh-proxy-server pidfile: ssh-proxy-server.pid keepstart: nic: lo vip: 127.0.0.1 start: /opt/ssh-proxy-server/start.sh stop: /opt/ssh-proxy-server/stop.sh is-running: /opt/ssh-proxy-server/is-running.sh sleep: 2 running-report-cycle: 3600 force-test-cycle: 60 logging: version: 1 disable_existing_loggers: false formatters: simple: format: "%(asctime)-15s\t%(levelname)s\t%(message)s" handlers: console: class: logging.StreamHandler level: DEBUG formatter: simple file: class: logging.handlers.TimedRotatingFileHandler level: DEBUG formatter: simple filename: /opt/ssh-proxy-server/server.log backupCount: 30 when: D interval: 1 encoding: utf-8 loggers: keepstart: level: INFO handlers: - file - console propagate: no root: level: INFO handlers: - file - console
配置以使用分离的logging.conf
- 配置yaml
application: daemon: true workspace: /opt/ssh-proxy-server pidfile: ssh-proxy-server.pid keepstart: nic: lo vip: 127.0.0.1 start: /opt/ssh-proxy-server/start.sh stop: /opt/ssh-proxy-server/stop.sh is-running: /opt/ssh-proxy-server/is-running.sh sleep: 2 running-report-cycle: 3600 force-test-cycle: 60 logging: logging.conf
将logging设置为config.yaml中的配置文件,并创建logging.conf文件。
- logging.conf
[loggers] keys=root,keepserver,appserver [handlers] keys=consoleHandler,fileHandler [formatters] keys=simpleFormatter [logger_root] level=DEBUG handlers=consoleHandler,fileHandler [logger_keepserver] level=DEBUG handlers=consoleHandler,fileHandler qualname=keepserver propagate=0 [logger_appserver] level=DEBUG handlers=consoleHandler,fileHandler qualname=appserver propagate=0 [handler_consoleHandler] class=StreamHandler level=DEBUG formatter=simpleFormatter args=(sys.stdout,) [handler_fileHandler] class=logging.handlers.TimedRotatingFileHandler level=DEBUG formatter=simpleFormatter args=('logFile.log', 'D', 1, 30, 'utf-8') [formatter_simpleFormatter] format=%(asctime)s %(levelname)5s %(message)s
您必须添加logger_xxx,其中xxx是要激活以进行日志记录的模块。
配置项说明
keepstart.nic
Which nic to be monitored.
keepstart.vip
Which vip will be used on the given nic. If vip is set, the server got MASTER role, if vip is not set, the server got SLAVE role.
keepstart.start&keepstart.stop&keepstart.is-正在运行
Scripts to do start, stop and is-running test. All scripts must NOT blocked.
keepstart.sleep
How long time to wait to do role test.
keepstart.running-report-cycle
How long time to wait to write alive report to log.
keepstart.force-test-cycle
How many time to wait to do a force is-running check(time = sleep * force-test-cycle).
服务器命令
keepserver -c config.yaml start keepserver -c config.yaml stop keepserver -c config.yaml reload
命令帮助
zencoreDeMacPro:keepstart zencore$ keepserver --help Usage: keepserver [OPTIONS] COMMAND [ARGS]... Options: -c, --config FILENAME Config file path, use yaml format. Default to config.yaml. --help Show this message and exit. Commands: reload Reload application server. start Start application server. stop Stop application server. zencoreDeMacPro:keepstart zencore$