用于验证服务之间连接性的实用程序
项目描述
conn-check 允许检查与外部服务的连接性。
您可以编写一个配置文件,定义您需要访问的服务,conn-check 将检查与每个服务的连接性。
它支持各种类型的服务,所有这些服务都允许进行基本网络检查,但其中一些还可以确认凭据是否有效。
配置
配置是通过yaml文件完成的。该文件定义了要执行的一系列检查
- type: tcp
host: localhost
port: 80
- type: tls
host: localhost
port: 443
disable_tls_verification: false
每个检查定义了一个类型,然后为该类型提供相应的选项。
有关为您的应用程序配置 conn-check 的分步指南,请参阅教程。
检查类型
tcp
简单的 TCP 连接检查。
- 主机
主机名。
- 端口
端口号。
- 超时
可选的连接超时时间(秒)。默认值:5(或来自 --connect-timeout 的值)。
tls
使用 TLS 的检查(ssl 是此类的一个已弃用的别名)。
- 主机
主机名。
- 端口
端口号。
- disable_tls_verification
可选标志,用于禁用 TLS 证书和握手的验证。默认值:false。
- 超时
可选的连接超时时间(秒)。默认值:5(或来自 --connect-timeout 的值)。
udp
检查发送特定 UDP 数据包是否得到特定响应。
- 主机
主机名。
- 端口
端口号。
- send
要发送的字符串。
- expect
期望在响应中出现的字符串。
- 超时
可选的连接超时时间(秒)。默认值:5(或来自 --connect-timeout 的值)。
http
检查 HTTP/HTTPS 请求是否成功(https 也可用)。
- url
要获取的 URL。
- method
可选的 HTTP 方法。默认值:"GET"。
- expected_code
定义成功的可选状态码。默认值:200。
- proxy_url
可选的 HTTP/HTTPS 代理 URL,包括协议,如果设置代理_{host,port} 则会被忽略。
- proxy_host
可选的 HTTP/HTTPS 代理。
- proxy_port
与 proxy_host 一起使用的可选端口。默认:8000。
- headers
可选的头部信息,以键值对字典的形式发送。可以提供多个值,例如:[('foo', 'bar'), ('foo', 'baz')]。
- body
可选的原始请求数据字符串。
- disable_tls_verification
可选标志,用于禁用 TLS 证书和握手的验证。默认值:false。
- 超时
可选的连接超时时间(秒)。默认值:5(或来自 --connect-timeout 的值)。
- allow_redirects
可选标志,用于跟随 30x 重定向。默认值:false。
- params
可选的参数字典,用于 URL 编码并传递到查询字符串。
- cookies
可选的 cookie 字典,用于传递到请求头部。
- auth
可选的基本 HTTP 认证凭据,作为元组或列表:(username, password)。
- digest_auth
可选的摘要 HTTP 认证凭据,作为元组或列表:(username, password)。
amqp
检查是否可以针对 AMQP 服务器进行认证。
- 主机
主机名。
- 端口
端口号。
- username
用于认证的用户名。
- password
用于认证的密码。
- use_tls
可选标志,是否使用 TLS 连接。默认值:true。
- vhost
可选的虚拟主机名称,用于连接。默认值 ‘/’。
- 超时
可选的连接超时时间(秒)。默认值:5(或来自 --connect-timeout 的值)。
postgres
检查是否可以针对 PostgreSQL 数据库进行认证(postgresql 也可用)。
- 主机
主机名。
- 端口
端口号。
- username
用于认证的用户名。
- password
用于认证的密码。
- database
要连接的数据库。
- 超时
可选的连接超时时间(秒)。默认值:5(或来自 --connect-timeout 的值)。
redis
检查是否存在 Redis 服务器,可选地检查认证。
- 主机
主机名。
- 端口
端口号。
- password
可选的密码,用于认证。
- 超时
可选的连接超时时间(秒)。默认值:5(或来自 --connect-timeout 的值)。
memcache
检查是否存在 memcached 服务器(memcached 也可用)。
- 主机
主机名。
- 端口
端口号。
- 超时
可选的连接超时时间(秒)。默认值:5(或来自 --connect-timeout 的值)。
mongodb
检查是否存在 MongoDB 服务器(mongo 也可用)。
- 主机
主机名。
- 端口
可选端口。默认:27017。
- username
可选的用户名,用于认证。
- password
可选的密码,用于认证。
- database
可选的数据库名称,用于连接。如果没有设置,将使用 test 数据库。如果此数据库不存在(或不可用),则需要提供数据库名称。
- 超时
可选的连接超时时间(秒)。默认值:5(或来自 --connect-timeout 的值)。
smtp
检查是否可以通过 SMTP 服务器发送电子邮件,并使用 SMTP 服务器进行认证。
注意 1:如果此检查成功,则实际会向在 to_address 中定义的电子邮件发送电子邮件,请小心配置此检查,以免意外发送垃圾邮件。
注意2:仅支持使用 use_tls 标志的 TLS 连接上的 EHLO/HELO,当前无法使用 STARTTLS 扩展 建立新的 TLS 连接。
- 主机
主机名。
- 端口
端口,TLS 通常为 465,纯文本为 25。
- username
用于认证的用户名。
- password
用于认证的密码。
- from_address
发送 from 的电子邮件地址。
- to_address
发送 to 的电子邮件地址。
- message
可选的电子邮件正文。
- subject
可选的电子邮件主题。
- helo_fallback
可选标志,用于在 EHLO 扩展命令集失败时回退到 HELO。
- use_tls
启用连接 TLS 安全性的可选标志。默认:true。
- 超时
可选的连接超时时间(秒)。默认值:5(或来自 --connect-timeout 的值)。
超时
默认情况下,conn-check 的全局超时(max-timeout)设置为 9 秒,这是因为当与 Nagios 一起使用时,NRPE 命令的最大超时时间为 10 秒,因此我们需要确保检查有足够的时间输出任何错误(如果你达到 NRPE 超时,则不会返回任何输出,只会从 Nagios 收到套接字错误)。
如果你需要更长的超时,你可以始终自己设置 max-timeout(它是设置,但接受浮点数作为亚秒值)。
你还可以设置不同的连接超时,这是每个检查打开单个连接(不执行其他任何操作)所需的时间,这可以通过全局设置 --connect-timeout 或使用大多数检查类型接受的 timeout 参数来设置。
缓冲/有序输出
conn-check 通常将输出缓冲到 STDOUT,以便可以有序输出,失败的检查首先打印,按目的地等分组。
如果你更愿意看到结果,可以使用 -U/--unbuffered-output 选项来禁用缓冲。
生成防火墙规则
conn-check 包含 conn-check-export-fw 工具,它接受与 conn-check 相同的参数,但使用 --dry-run 模式运行,并输出一系列 egress 防火墙规则,易于解析的 YAML 格式,例如
# Generated from the conn-check demo.yaml file
egress:
- from_host: mydevmachine
ports: [8080]
protocol: udp
to_host: localhost
- from_host: mydevmachine
ports: [80, 443]
protocol: tcp
to_host: login.ubuntu.com
- from_host: mydevmachine
ports: [6379, 11211]
protocol: tcp
to_host: 127.0.0.1
然后你可以使用此输出生成你的环境的防火墙规则(例如使用 EC2 安全组、OpenStack Neutron、iptables 等)。
conn-check-convert-fw 是一个工具,它只做这件事,它接受多个防火墙规则 YAML 文件,合并/去重,并输出 AWS、Openstack Neutron、OpenStack Nova(客户端)、iptables 和 ufw 的命令(主要用于测试目的)。
它设计用于以下工作流程
在每个主机上运行 conn-check 时,你运行 conn-check-export-fw 以生成包含出口防火墙规则的 YAML 文件。
将这些文件传输到具有出口主机正确 DNS 条目的主机。
在此主机上运行 conn-check-convert-fw 以生成防火墙命令集。
这些命令由人工审核,可能与其他规则合并,例如添加入站规则,然后运行以更新你的环境的防火墙。
构建 wheels
为了更容易/更便携地分发此工具,你可以将 conn-check 及其所有依赖项构建为 Python wheels。
make clean-wheels make build-wheels make build-wheels-extra EXTRA=amqp make build-wheels-extra EXTRA=redis
构建轮子目标(build-wheels)会构建conn-check及其基本依赖项,但要包含其他检查(如amqp、redis或postgres)的可选额外依赖项,您需要使用带有EXTRA环境值的build-wheels-extra目标。
默认情况下,所有轮子都将放置在./wheels目录中。
自动生成conn-check YAML配置
conn-check-configs软件包包含从现有应用程序配置和环境生成检查的实用程序/库,例如从Django设置模块和Juju环境。
项目详情
下载文件
下载您平台上的文件。如果您不确定要选择哪个,请了解更多关于安装包的信息。
源分发
构建分发
conn-check-1.5.0.tar.gz的散列
算法 | 散列摘要 | |
---|---|---|
SHA256 | 8525408784ec04eb2e1d2131ed26032091e0f1d2765f70734ad757dba2d7b29d |
|
MD5 | f363201f1dd862e0cead1edbdcddc7c5 |
|
BLAKE2b-256 | e8992c10864a1fc24284737075ed8822235a17e413f2b88f77f8cd9981b5c0af |
conn_check-1.5.0-py2.py3-none-any.whl的散列
算法 | 散列摘要 | |
---|---|---|
SHA256 | b06a81e15616d42dae03af9189a26b7440d28606615eb90c8981a076ffcd54db |
|
MD5 | b826960af45275c3b0568325f2058e82 |
|
BLAKE2b-256 | 0f837883d10c82e012e138f1f6ce83941ed9ca7a88714a5c8f00251d43384f4e |