最近看了 prometheus 的视频之类的(都是关于监控 node,pod 或其他一些资源),我自己也在网上搜索过,也没找到。 看过 prometheus 都有插件( php,nginx 等等),但是那些插件都是基于非容器的,一般都是要启用一个插件,绑定一个端口给 prometheus 上送数据,我就想问下,k8s 的 pod 里的一些应用如何监控,比如 nginx 连接数,php 进程数等等?
1
binux 2019-03-10 23:07:04 +08:00 via Android
装 agent 采集
|
2
hilbertz 2019-03-10 23:37:11 +08:00
大多数组件都有对应的 exporter 来推送监控数据,有的甚至是内建的,nginx 的 exporter 通常放在另外一个容器,读取 nginx 的 stub_status 页面,并转换成 prometheus 的格式推送给 prometheus
|
3
kingfsen 2019-03-30 10:46:05 +08:00
这个很简单吧,如果你不想使用第三方对应的一些 exporter,那你可以自行实现。
比如我在 k8s 中部署了一个用 java springboot 部署的应该,在这个 springboot 应用中我们可以自己暴露一个 endpoint,在这个 endpoint 的时候暴露一些应用数据或者 Jvm 的数据,或者通过 java api 采集 tomcat 的数据。exporter、以及探针 black-exporter,都可以 DaemonSet 方式部署在 k8s 中的每个节点中,探测监控很多指标。其他的没有的指标,只能自行实现,然后让 prometheus 去采集对应的 endpoint 了。 |
4
kingfsen 2019-03-30 10:51:25 +08:00
监控 k8s 中应用,就是监控 endpoint 或者 service 即可。不知道对你是否有帮助 https://youendless.com/post/prometheus_monitor_k8s2/#%E7%9B%91%E6%8E%A7java%E5%BA%94%E7%94%A8%E6%8C%87%E6%A0%87
|
5
YzSama 2019-04-01 19:20:25 +08:00 via iPad
有 prometheus 与 Java 应用集成的案例。提供 endpoint,使用 label 过滤出来,进行监控。 大概思路…
|