监视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

  1. 配置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文件。

  1. 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是要激活以进行日志记录的模块。

配置项说明

  1. keepstart.nic

    Which nic to be monitored.

  1. 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.

  1. keepstart.start&keepstart.stop&keepstart.is-正在运行

    Scripts to do start, stop and is-running test. All scripts must NOT blocked.

  1. keepstart.sleep

    How long time to wait to do role test.

  1. keepstart.running-report-cycle

    How long time to wait to write alive report to log.

  1. 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$

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
javai是JAXB的新手。如何将两个具有不同名称空间的不同xml合并为一个具有根元素的xml并将其解组?   JDO中的java应该是可传递的DefaultFetchGroup吗   java服务器配置问题   java在理解JList时遇到困难   java何时将RequestContextFilter用于Jersey?   java从数据库中读取文本文件。jar文件   Java正则表达式,仅适用于不包括零的正数   爪哇番石榴。类路径中的jar   JavaEE:关于设计的问题   java GUI,在面板中排列按钮   java Android为什么使用接口被认为是活动和片段之间通信的最佳实践?   java如何获取wicket图像的url以在开放图元标记中使用它   从Java字节[]>Base64>Javascript数组缓冲>Base64>byte[]   java正则表达式帮助字符串JWE766。1.pdf格式摘录766   java Hibernate,JPA忽略@Formula