问题导读:
1、什么是varz?
2、如何监控CloudFoundry?
CF的组建其实都有自己的状态监控,我们可以通过http查看他们的状态。这个就是varz。
比如我们在dea.yml配置文件中加入:
- status:
- port: 2222
- user: user
- password: pw
复制代码
然后http访问http://本机的ip:2222/varz,那个ip不能是localhost或者127.0.0.1,必须是对外的ip。然后就会有验证信息,输入上面的用户密码,就可以看到dea的许多信息,包括配置、framework、instances以及vm状态等。
原理
在代码中我们可以看到组件在启动时都会向component注册自己。那么这个注册就会启动一个http server。启动的代码在vcap common的component.rb中。这个模块已经成为了一个gem,你不必装cloudfoundry,而只需要gem install一个都可以使用了。在vcap common中,如果有组建来注册,他会为这个组件建立一个server。然后server的port以及帐号密码默认是cf自己生成的。但是按照上文的配置,这些参数就会被传入,我们就可以按照自己的参数来配置这个server了。
在组件向component注册完成之后,组建就可以通过一下方式向varz传数据了:
- #这是dea的状态更新
- VCAP::Component.varz[:running_apps] = running_apps
- VCAP::Component.varz[:frameworks] = metrics[:framework]
- VCAP::Component.varz[:runtimes] = metrics[:runtime]
复制代码
ps:在那个http的url中把varz改成healthz,可以看到一个简单的ok,表示此组建正常运行
|