Doorkeeper for consul发现的服务的。
项目描述
ianitor
ianitor 是使用 consul 发现的服务的门keeper。它可以通过consul API自动注册新服务并管理TTL健康检查。
它提供简单的shell命令来包装进程,可以简单地用于您现有的进程/服务监督工具,如 supervisord、circus、runit 等。
Consul/Python版本兼容性
ianitor 与Python 2.7、3.3、3.4和3.5版本兼容。它还针对从0.4.1版本开始的每个主要/次要consul发布版本的每个最新补丁版本进行了测试。
有关我们测试矩阵的详细信息,请参阅travis.yml
文件。
安装和使用
只需使用pip进行安装
$ pip install ianitor
然后您就可以开始使用了
$ ianitor appname -- ./yourapp --some-switch
您可以通过挖掘consul DNS服务来检查服务是否已注册
$ dig @localhost -p 8600 appname.service.consul
; <<>> DiG 9.9.3-P1 <<>> @localhost -p 8600 appname.service.consul
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 25966
;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
;; WARNING: recursion requested but not available
;; QUESTION SECTION:
;appname.service.consul. IN A
;; ANSWER SECTION:
appname.service.consul. 0 IN A 10.54.54.214
;; Query time: 44 msec
;; SERVER: 127.0.0.1#8600(127.0.0.1)
;; WHEN: Tue Oct 28 13:53:09 CET 2014
;; MSG SIZE rcvd: 78
完整使用方法
usage: ianitor [-h] [--consul-agent hostname[:port]] [--ttl seconds]
[--heartbeat seconds] [--tags tag] [--id ID] [--port PORT] [-v]
service-name -- command [arguments]
Doorkeeper for consul discovered services.
positional arguments:
service-name service name in consul cluster
optional arguments:
-h, --help show this help message and exit
--consul-agent=hostname[:port] set consul agent address
--ttl=seconds set TTL of service in consul cluster
--heartbeat=seconds set process poll heartbeat (defaults to
ttl/10)
--tags=tag set service tags in consul cluster (can be
used multiple times)
--id=ID set service id - must be node unique
(defaults to service name)
--port=PORT set service port
-v, --verbose enable logging to stdout (use multiple times
to increase verbosity)
ianitor是如何工作的?
ianitor使用python的subprocess.Popen()
spawn进程,命令行在--
之后指定。它将自己的stdin重定向到子进程的stdin,并将子进程的stdout/stderr重定向到自己的stdout/stderr。
这种方式,ianitor不会干扰到托管服务的日志记录(如果它记录到stdout)。此外,ianitor不会记录任何内容,使其更容易集成到现有的进程监控工具中。
ianitor处理consul代理中的服务注册,并通过持续请求其TTL健康检查端点,来保持已注册服务条目在consul中的"healthy"状态。
示例supervisord配置
假设您有一些在supervisord监控下的服务
[program:rabbitmq]
command=/usr/sbin/rabbitmq-server
priority=0
autostart=true
只需用ianitor调用将其包装起来
[program:rabbitmq]
command=/usr/local/bin/ianitor rabbitmq -- /usr/sbin/rabbitmq-server
priority=0
autostart=true
许可证
ianitor
采用LGPL许可证,版本3。
贡献和报告错误
源代码可在:ClearcodeHQ/ianitor获取。问题跟踪器位于GitHub Issues。项目PyPi页面。
项目详情
下载文件
下载适用于您的平台的文件。如果您不确定要选择哪个,请了解更多关于安装包的信息。
源代码分发
构建分发
ianitor-0.1.0.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 379c4831387b8124ad4259197275635baf70ab32d395f1d88aea778d183ba484 |
|
MD5 | 16cd0d5d704ab5ccff436f0575f9b6cb |
|
BLAKE2b-256 | 3e10012209b1e64f44e9fcd3fec93135ab7908f0920fa2b9145017038259433c |
ianitor-0.1.0-py2.py3-none-any.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 264eb38dcfa9b9172c311b314333f547229581b7b8fbbcc01ceaf0d3d1c73e85 |
|
MD5 | 7f17fa4508482bf71a4c9748a70dd5c9 |
|
BLAKE2b-256 | a880b89c946d8808448a3d81470b8218fbb214e8adeb4390d6b8e3b6797f1e8c |