我喜欢使用Prometheus进行监视和警报。到目前为止,我的所有目标(节点和容器)都与监视服务器位于同一网络上。
但是现在我面临一个场景,我们将应用程序堆栈(作为一堆Docker容器)部署到其网络中的多台客户端计算机上。几乎所有的客户端网络都位于防火墙或NAT之后。因此抓取变得非常困难。
由于我们仍然要对堆栈负责,所以我想拥有一个中央监控服务器,变更和仪表板。
我想知道如果想用Prometheus来实现最好的架构,但是我找不到任何令人信服的方法。到目前为止,我的想法:
提前感谢您的帮助!
答案 0 :(得分:1)
没有人发布答案,所以我将尝试就第二种选择发表意见,因为我认为我会在您的情况下这样做。
第二种设置似乎是最灵活的,您可以访问数据并且只需要为联合服务器打开一个端口,因此它仍然是安全的。
这种设置的另一个好处是,即使防火墙由于某种原因停止工作,您仍然会受到普罗米修斯的刮擦,您将收到警报,因为您将无法访问服务器( s),但是当连接再次出现时,您将拥有所有数据。在事件发生期间,除了没有数据之外,您在grafana仪表板上不会有任何漏洞。
此设置的问题在于您需要维护与网络数量相同的服务器数量。一个解决方案是拥有一个打包程序映像或一个可部署的剧本。