我正在寻找一些监控和警报解决方案来监控我的服务。 我发现了以下相关的优秀作品。
这两个作品都使用DNS服务发现来监视多个服务副本。
我尝试重复这些工作,但我发现我只能获得单个后端容器IP。
# dig A node-exporter
; <<>> DiG 9.10.4-P8 <<>> A node-exporter
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 18749
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;node-exporter. IN A
;; ANSWER SECTION:
node-exporter. 600 IN A 10.0.0.42
;; Query time: 0 msec
;; SERVER: 127.0.0.11#53(127.0.0.11)
;; WHEN: Mon Jan 29 02:57:51 UTC 2018
;; MSG SIZE rcvd: 60
当我检查这个服务时,我发现node-exporter的endpoint模式是vip。
> docker inspect 242pn4obqsly
...
"Endpoint": {
"Spec": {
"Mode": "vip"
},
"VirtualIPs": [
{
"NetworkID": "61fn8hmgwg0n7rhg49ju2fdld",
"Addr": "10.0.0.3/24"
}
]
...
这意味着当与 DNS 联系时,Prometheus 只能获取单个代理服务 IP。然后内部负载均衡策略将路由收入请求到不同的后端实例。相关的工作是如何成功的呢?谢谢!