Prometheus ServiceMonitor
創建一個新的serviceMonitor就創建了一個prometheus的target
[root@k8s-m1 ~]# cat ServiceMonitor.yaml apiVersion: monitoring.coreos.com/v1 kind: ServiceMonitor metadata: labels: k8s-app: xxx-exporter name: xxx namespace: prometheus spec: endpoints: - interval: 15s port: xxx-exporter jobLabel: xxx-exporter-monitor namespaceSelector: matchNames: - monitor #目標服務的namespaces selector: matchLabels: k8s-app: xx-exporter 目標服務的labels
namespaceSelector:
any: true 選擇所有的namespace
上面ServiceMonitor是針對k8s集群內部服務監控,想監控集群外部的exporter通Endpoints實現
# 為外部 exporter 服務設置 service kind: Service apiVersion: v1 metadata: namespace: monitor name: service-mysql-xx labels: app: service-mysql-xx spec: ports: - protocol: TCP port: 9xx targetPort: 9xx type: ClusterIP clusterIP: None --- kind: Endpoints apiVersion: v1 metadata: namespace: monitor name: service-mysql-xx labels: app: service-mysql-xx subsets: - addresses: - ip: x.x.x.x ports: - protocol: TCP port: 9xxx
ServiceMonitor
apiVersion: monitoring.coreos.com/v1 kind: ServiceMonitor metadata: name: service-mysql-xx labels: app: service-mysql-xx spec: selector: matchLabels: app: service-mysql-xx namespaceSelector: matchNames: - monitor endpoints: - port: metrics interval: 10s honorLabels: true