安装victoriametrics operator
kubectl create ns monitoring-system
kubectl apply -n monitoring-system -f https://github.com/VictoriaMetrics/operator/releases/download/v0.62.0/install-with-webhook.yaml
创建vmcluster
kind: VMCluster
metadata:
name: vm
namespace: monitoring-system
spec:
replicationFactor: 2
retentionPeriod: 7d
vmstorage:
readinessProbe:
httpGet:
path: /
port: 8482
timeoutSeconds: 3
periodSeconds: 10
successThreshold: 3
failureThreshold: 1
podMetadata:
labels:
app: vm
component: vmstorage
replicaCount: 2
storageDataPath: "/vmstorage"
storage:
volumeClaimTemplate:
spec:
resources:
requests:
storage: 10Gi
resources:
limits:
cpu: "1"
memory: 2Gi
vmselect:
readinessProbe:
httpGet:
path: /
port: 8481
timeoutSeconds: 3
periodSeconds: 10
successThreshold: 3
failureThreshold: 1
clusterNativeListenPort: "8482"
podMetadata:
labels:
app: vm
component: vmselect
replicaCount: 2
cacheMountPath: "/vmselect-cache"
storage:
volumeClaimTemplate:
spec:
resources:
requests:
storage: 10Gi
resources:
limits:
cpu: "1"
memory: "2Gi"
vminsert:
readinessProbe:
httpGet:
path: /
port: 8480
timeoutSeconds: 3
periodSeconds: 10
successThreshold: 3
failureThreshold: 1
podMetadata:
labels:
app: vm
component: vminsert
replicaCount: 2
resources:
limits:
cpu: "1"
memory: "2Gi"
创建demo workload
apiVersion: apps/v1
kind: Deployment
metadata:
name: demo
namespace: monitoring-system
spec:
replicas: 1
selector:
matchLabels:
app.kubernetes.io/name: demo
template:
metadata:
labels:
app.kubernetes.io/name: demo
spec:
containers:
- name: app
image: nginx
---
apiVersion: v1
kind: Service
metadata:
labels:
app.kubernetes.io/name: demo
name: demo
namespace: monitoring-system
spec:
ports:
- name: metrics
port: 80
protocol: TCP
targetPort: 80
selector:
app.kubernetes.io/name: demo
type: ClusterIP
创建vm auth
ingress.class_name替换为实际的ingress className
ingress.host替换为实际的host
apiVersion: operator.victoriametrics.com/v1beta1
kind: VMAuth
metadata:
name: vmauth
namespace: monitoring-system
spec:
ingress:
class_name: nginx
host: vmauth.com
selectAllByDefault: true
创建vm user
apiVersion: operator.victoriametrics.com/v1beta1
kind: VMUser
metadata:
name: vmagent
namespace: monitoring-system
spec:
password: yourpassword
targetRefs:
- crd:
kind: VMCluster/vminsert
name: vm
namespace: monitoring-system
target_path_suffix: /insert/0/prometheus
username: vmagent
创建vm agent
apiVersion: operator.victoriametrics.com/v1beta1
kind: VMAgent
metadata:
name: node-exporter
namespace: monitoring-system
spec:
serviceScrapeNamespaceSelector: {}
nodeScrapeSelector: {}
scrapeInterval: 10s
remoteWrite:
- url: "http://vmauth-vmauth.monitoring-system.svc:8427"
basicAuth:
username:
name: vmagent
key: username
password:
name: vmagent
key: password
创建service scrape
apiVersion: operator.victoriametrics.com/v1beta1
kind: VMServiceScrape
metadata:
name: demo
namespace: monitoring-system
spec:
endpoints:
- port: metrics
path: /metrics
interval: 15s
scheme: http
selector:
matchLabels:
app.kubernetes.io/name: demo