consul_exporter 将 Consul 服务健康状况导出到 Prometheus。
运行它:
make
./consul_exporter [flags]
导出指标
公制 | 意义 | 标签 |
---|---|---|
consul_up | Consul最后一次查询是否成功 | |
consul_raft_peers | Raft 集群中有多少对等点(服务器) | |
consul_serf_lan_members | 集群中有多少成员 | |
consul_serf_lan_member_status | 集群中成员的状态。1=活着,2=离开,3=离开,4=失败。 | member |
consul_serf_wan_member_status | wan 集群中成员的状态。1=活着,2=离开,3=离开,4=失败。 | member, dc |
consul_catalog_services | 集群中有多少个服务 | |
consul_service_tag | 服务的标签 | service_id, node, tag |
consul_catalog_service_node_healthy | 此服务在此节点上是否健康 | service_id, node, service_name |
consul_health_node_status | 与节点关联的健康检查状态 | check, node, status |
consul_health_service_status | 与节点关联的健康检查状态 | check, node, service_id, service_name, status |
consul_catalog_kv | Consul 键/值目录中选定键的值。省略具有非数字值的键 | key |
consul_service_checks | 如果可用,将 Consul 服务 ID 与支票名称相关联 | service_id,service_name, check_id, check_name, node |
标签
./consul_exporter --help
- consul.allow_stale:允许任何 Consul 服务器(非领导者)为读取服务。
- consul.ca-file:用于验证服务器证书真实性的 PEM 编码证书颁发机构的文件路径。
- consul.cert-file:与私钥一起使用以验证出口商真实性的 PEM 编码证书的文件路径。
- consul.health-summary:收集有关每个注册服务和出口的信息consul_catalog_service_node_healthy。这需要 n+1 Consul API 查询来收集有关每个服务的所有信息。健康检查信息也可以通过 via 获得consul_health_service_status,但仅适用于配置了健康检查的服务。默认为真。禁止使用–no-consul.heatlh-summary.
- consul.key-file:与证书一起使用以验证出口商真实性的 PEM 编码私钥的文件路径。
- consul.insecure:禁用 TLS 主机验证。
- consul.require_consistent:强制读取完全一致。
- consul.server:我们应该连接到的 Consul 实例的地址(主机和端口)。这可以是本地代理(localhost:8500例如,)或 Consul 服务器的地址。
- consul.server-name:如果提供,这将覆盖 TLS 证书的主机名。它可用于确保证书名称与我们声明的主机名相匹配。
- consul.timeout:对 consul 的 HTTP 请求超时。
- consul.request-limit:限制consul的最大并发请求数,0表示不限制。
- log.format:设置日志目标和格式。示例:logger:syslog?appname=bob&local=7 或logger:stdout?json=true
- log.level:日志记录级别。info默认情况下。
- web.listen-address:用于侦听 Web 界面和遥测的地址。
- web.telemetry-path:公开指标的路径。
- version:显示应用程序版本。
键/值检查
这个导出器支持从 Consul 的 KV 存储中获取键/值对并将它们暴露给 Prometheus。这可能很有用,例如,如果您使用 Consul KV 来存储您想要的集群大小,并希望将该值与通过监控找到的实际值进行对比。
- kv.filter:仅存储与此正则表达式模式匹配的键。
- kv.prefix:在其下查找 KV 对的前缀。
必须提供前缀才能激活此功能。/如果要搜索整个键空间,则通过。
环境变量
consul_exporter 支持官方 consul/api 包提供的所有环境变量,包括CONSUL_HTTP_TOKEN设置ACL令牌。
有用的查询
我的服务健康吗?
min(consul_catalog_service_node_healthy) by (service_name)
值 1 表示服务的所有节点都在通过。值为 0 表示服务的至少一个节点未通过。
哪些服务节点出现故障?
sum by (node, service_name)(consul_catalog_service_node_healthy == 0)
哪些服务检查至关重要?
consul_health_service_status{status="critical"} == 1
您可以查询以下健康检查状态:“维护”、“严重”、“警告”或“通过”
使用 Docker
您可以使用 prom/consul-exporter Docker 映像部署此导出器。
例如:
docker pull prom/consul-exporter
docker run -d -p 9107:9107 prom/consul-exporter --consul.server=172.17.0.1:8500
请记住,您的容器需要能够与 Consul 服务器或代理进行通信。使用可从容器访问的 IP 或设置命令的–dns和选项:–dns-searchdocker run
docker run -d -p 9107:9107 --dns=172.17.0.1 --dns-search=service.consul \
prom/consul-exporter --consul.server=consul:8500
TLS 和基本身份验证
consul_exporter 支持 TLS 和基本身份验证。要使用 TLS 和/或基本身份验证,您需要使用参数传递配置文件–web.config.file。该文件的格式 在 exporter-toolkit 存储库中进行了描述。
作者:Jeebiz 创建时间:2023-02-19 21:07
最后编辑:Jeebiz 更新时间:2024-01-24 21:48
最后编辑:Jeebiz 更新时间:2024-01-24 21:48