一、ServiceMonitor
1、介紹
用於監控指定的服務狀態
感覺ServiceMonitor和PodMonitor差不多。
我這里使用的是Prometheus-operator,所以就直接使用Prometheus-operator的Prometheus
2、創建一個用於監控的測試項目
[root@master monitor]# cat ServiceMonitor_test_dep.yaml kind: Service apiVersion: v1 metadata: name: example-app labels: app: example-app spec: selector: app: example-app ports: - name: web port: 80 --- apiVersion: apps/v1 kind: Deployment metadata: name: example-app spec: replicas: 1 selector: matchLabels: app: example-app template: metadata: labels: app: example-app spec: containers: - name: example-app image: nginx:alpine ports: - name: web containerPort: 80
3、查看
[root@master monitor]# kubectl get ep -l app=example-app NAME ENDPOINTS AGE example-app 10.244.167.179:80 60m [root@master monitor]# curl 10.244.167.179:80 -I HTTP/1.1 200 OK Server: nginx/1.17.10 Date: Thu, 11 Jun 2020 02:31:14 GMT Content-Type: text/html Content-Length: 612 Last-Modified: Tue, 14 Apr 2020 14:46:22 GMT Connection: keep-alive ETag: "5e95ccbe-264" Accept-Ranges: bytes
4、創建ServiceMonitor
[root@master monitor]# cat ServiceMonitor_test.yaml apiVersion: monitoring.coreos.com/v1 kind: ServiceMonitor metadata: name: monitor-example-app namespace: default labels: release: mypro #Prometheus所選擇的標簽 spec: namespaceSelector: #監控的pod所在名稱空間 matchNames: - default selector: #選擇監控endpoint的標簽 matchLabels: app: example-app endpoints: - port: web #service中對應的端口名稱
5、瀏覽器查看prometheus的Targets監控