From efdfd3eb4badb03db1f306612607e1456a9adb8b Mon Sep 17 00:00:00 2001 From: unkin-agent Date: Sat, 26 Sep 2026 18:37:47 +1000 Subject: [PATCH] Add a VictoriaLogs cluster and point logs-ingest at it - add VLCluster logs (2 vlinsert, 2 vlselect, 3 vlstorage, 180d) - repoint the logs-ingest HTTPRoute at vlinsert-logs:9481 - add a VictoriaLogs Grafana datasource and its plugin --- apps/base/grafana/grafanadatasource.yaml | 19 ++++++++++ apps/base/logging/gateway.yaml | 9 ++--- apps/base/logging/httproute.yaml | 8 ++-- apps/base/logging/kustomization.yaml | 1 + apps/base/logging/vlcluster.yaml | 47 ++++++++++++++++++++++++ 5 files changed, 74 insertions(+), 10 deletions(-) create mode 100644 apps/base/logging/vlcluster.yaml diff --git a/apps/base/grafana/grafanadatasource.yaml b/apps/base/grafana/grafanadatasource.yaml index 575a851..477aebf 100644 --- a/apps/base/grafana/grafanadatasource.yaml +++ b/apps/base/grafana/grafanadatasource.yaml @@ -20,3 +20,22 @@ spec: jsonData: timeInterval: "15s" httpMethod: "POST" +--- +apiVersion: grafana.integreatly.org/v1beta1 +kind: GrafanaDatasource +metadata: + name: victorialogs + namespace: grafana +spec: + instanceSelector: + matchLabels: + dashboards: "grafana" + plugins: + - name: victoriametrics-logs-datasource + version: 0.32.0 + datasource: + name: "VictoriaLogs" + type: "victoriametrics-logs-datasource" + uid: "victorialogs" + access: "proxy" + url: "http://vlselect-logs.logging.svc.cluster.local:9471" diff --git a/apps/base/logging/gateway.yaml b/apps/base/logging/gateway.yaml index bb072dc..67f01eb 100644 --- a/apps/base/logging/gateway.yaml +++ b/apps/base/logging/gateway.yaml @@ -1,16 +1,13 @@ --- -# Log ingestion endpoint for puppet-managed VMs (and any non-k8s client). -# Reuses the internal Traefik gateway + cert-manager + external-dns pattern so -# VMs reach the Vector aggregator's HTTP source over TLS at a DNS name they can -# resolve. The puppet-side Vector rollout ships NDJSON to -# https://logs-ingest.k8s.syd1.au.unkin.net/ (a later task). +# Log ingestion endpoint for puppet-managed VMs (and any non-k8s client): +# fronts the VLCluster vlinsert service over TLS at a name VMs can resolve. apiVersion: gateway.networking.k8s.io/v1 kind: Gateway metadata: name: logs-ingest namespace: logging labels: - app.kubernetes.io/name: vector-aggregator + app.kubernetes.io/name: victorialogs app.kubernetes.io/component: ingest traefik.io/instance: internal annotations: diff --git a/apps/base/logging/httproute.yaml b/apps/base/logging/httproute.yaml index 2400863..cf390f1 100644 --- a/apps/base/logging/httproute.yaml +++ b/apps/base/logging/httproute.yaml @@ -5,7 +5,7 @@ metadata: name: logs-ingest-http-redirect namespace: logging labels: - app.kubernetes.io/name: vector-aggregator + app.kubernetes.io/name: victorialogs app.kubernetes.io/component: ingest spec: hostnames: @@ -32,7 +32,7 @@ metadata: name: logs-ingest namespace: logging labels: - app.kubernetes.io/name: vector-aggregator + app.kubernetes.io/name: victorialogs app.kubernetes.io/component: ingest spec: hostnames: @@ -46,8 +46,8 @@ spec: - backendRefs: - group: "" kind: Service - name: vector-vm-ingest - port: 8080 + name: vlinsert-logs + port: 9481 weight: 1 matches: - path: diff --git a/apps/base/logging/kustomization.yaml b/apps/base/logging/kustomization.yaml index 2464c25..cc3dc17 100644 --- a/apps/base/logging/kustomization.yaml +++ b/apps/base/logging/kustomization.yaml @@ -10,6 +10,7 @@ resources: - job_clickhouse-schema.yaml - nats-bootstrap-job.yaml - cephrgw.yaml + - vlcluster.yaml - gateway.yaml - httproute.yaml - serviceaccount_logarchiver.yaml diff --git a/apps/base/logging/vlcluster.yaml b/apps/base/logging/vlcluster.yaml new file mode 100644 index 0000000..fc3e88f --- /dev/null +++ b/apps/base/logging/vlcluster.yaml @@ -0,0 +1,47 @@ +--- +apiVersion: operator.victoriametrics.com/v1 +kind: VLCluster +metadata: + name: logs + namespace: logging +spec: + vlinsert: + replicaCount: 2 + resources: + requests: + cpu: 500m + memory: 1Gi + limits: + cpu: "2" + memory: 4Gi + vlselect: + replicaCount: 2 + resources: + requests: + cpu: 500m + memory: 1Gi + limits: + cpu: "2" + memory: 4Gi + vlstorage: + replicaCount: 3 + retentionPeriod: 180d + # 3x250Gi is ~75% of the 180d estimate: the per-node disk cap drops the + # oldest data instead of filling the PVC, trading tail retention for Ceph. + retentionMaxDiskSpaceUsageBytes: 220GiB + storage: + volumeClaimTemplate: + spec: + accessModes: + - ReadWriteOnce + storageClassName: cephrbd-fast-delete + resources: + requests: + storage: 250Gi + resources: + requests: + cpu: "1" + memory: 2Gi + limits: + cpu: "4" + memory: 8Gi