prometheus-operator 监控外部服务

最近一直在学习k8s里的prometheus-operator。这个东西与传统主机里部署的prometheus要复杂的多。因为他把很多东西都抽象了成k8s里的resouce资源。所以搞起来就相对复杂很多。

首先就是安装这个东西。我用的办法就是helm安装

具体可以参照 https://www.jianshu.com/p/973cbbbaab22

安装完以后k8s里的pod 、以及各个组建基本都有监控了。

下面说下,如果想用这个东西监控一下k8s集群外的一个服务咋搞

比如,有一个服务 通过192.168.1.103:5000/metrics访问
得到 结果就是 connect 8

1、先定义监控服务器serivce \ endpoint 资源

---
apiVersion: v1
kind: Service
metadata:
  name: prometheus-operator-flask
  labels:
    app: flask
spec:
  externalName: 192.168.1.103
  type: ExternalName
  ports:
  - name: metrcis
    port: 5000
    targetPort: 5000
    protocol: TCP
  type: ClusterIP
  clusterIP: None
---
apiVersion: v1
kind: Endpoints
metadata:
  name: prometheus-operator-flask
  labels:
    app: flask
subsets:
  - addresses:
    - ip: 192.168.1.103
      nodeName: flask
    ports:
    - name: metrcis
      port: 5000
      protocol: TCP

注意svc 里的 externalName 要替换成被监控服务的ip,endpoint里的ip、port也要替换,另外labels 要一致

2、定义servicemonitor

---
apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
  labels:
    app: prometheus-operator-flask
    release: prometheus-operator-1577513747
  name: prometheus-operator-flask
  namespace: default
spec:
  endpoints:
  - interval: 30s
    port: metrcis
  selector:
    matchLabels:
      app: flask
    namespaceSelector:
      matchNames:
      - default

注意地方 servicemonitor里的label 地址,不能不写,也不能只写app 。具体原因为啥还不知道。
kubectl apply -f servicemonitor.yaml -f svc.yaml
执行以后等大概2、3分钟,以后
再到prometheus页面上status 里的 target 就能看到这样的东西。

## [default/prometheus-operator-flask/0 (1/1 up)](http://192.168.1.103:30260/targets#job-default%2fprometheus-operator-flask%2f0)

endpoint 状态是ok的。

然后到graph里 用prmsql 就能搜索到connect 这个监控项了。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容