Rancher's Built-in Monitoring: A Practical Path to Kubernetes Observability
Rancher's built-in monitoring stack gives you Prometheus and Grafana per cluster with a single toggle. This post walks through enabling it on an RKE2 cluster, verifying the deployment, and understanding where the defaults fall short.
09 Oct 2025, 09:50 UTC

The Problem: Observability Without the Operational Tax
Teams running Kubernetes at scale eventually hit the same wall: you need metrics, dashboards, and alerts, but standing up a separate Prometheus-Grafana stack means managing another set of Helm charts, CRDs, and upgrade cycles. Rancher's monitoring feature solves this by shipping a supported, integrated stack that you can toggle per downstream cluster. The trade-off is deliberate: you get production-grade observability in minutes, but you accept Rancher's opinionated defaults for retention, scrape intervals, and resource allocation.
Architecture: What Runs Under the Hood
When you enable monitoring on a downstream cluster, Rancher deploys the monitoring-v2 Helm chart into a dedicated namespace. This chart bundles Prometheus Operator, kube-state-metrics, node-exporter, Alertmanager, and Grafana as a cohesive unit. The operator manages Prometheus and Alertmanager instances via custom resources (Prometheus, Alertmanager, ServiceMonitor, PodMonitor), while Grafana comes pre-loaded with dashboards for cluster overview, node resources, and control-plane components. All components run as Deployments or DaemonSets scoped to the monitoring-v2 namespace, keeping the monitoring plane isolated from workload namespaces.
Enabling Monitoring: UI and CLI Paths
You can enable monitoring through the Rancher UI or the CLI. In the UI, navigate to the target cluster, select Edit Config, scroll to the Monitoring section, and toggle Enable. Rancher will reconcile the monitoring-v2 chart automatically. For CLI-driven workflows, the rancher2 Terraform provider or the rancher CLI can apply the same configuration by setting monitoring.enabled=true on the cluster resource. Both paths require cluster-admin permissions on the downstream cluster and Rancher v2.5 or newer.
Worked Example: RKE2 Cluster to Live Dashboard in Three Steps
Assume you have Rancher v2.7 managing a downstream RKE2 cluster with at least 2 GB RAM per node. First, enable monitoring via the UI as described above. Second, verify the stack is healthy from a workstation with kubectl pointed at the downstream cluster:
kubectl -n monitoring-v2 get pods
# Expect: prometheus-monitoring-v2-0, monitoring-v2-grafana-*, alertmanager-monitoring-v2-0 all reporting Ready
Third, access Grafana without exposing a LoadBalancer:
kubectl -n monitoring-v2 port-forward svc/monitoring-v2-grafana 3000:80
# Open http://localhost:3000, log in with admin / prom-operator
Within two minutes the Cluster Overview dashboard should display live CPU, memory, and network metrics from your nodes. Run a quick PromQL sanity check in Grafana's Explore tab: sum(rate(node_cpu_seconds_total{mode="idle"}[5m])) by (instance) should return per-node idle CPU ratios.
Trade-offs: When the Defaults Aren't Enough
The integrated stack optimizes for convenience, not flexibility. Default retention is 15 days; scrape interval is 30 seconds. If you need longer retention, custom scrape targets, or additional ServiceMonitors for third-party operators, you must edit the Helm values through Cluster → Apps → monitoring-v2 → Edit Options in the Rancher UI. This UI-driven values override works for most changes, but advanced tuning (e.g., remote write to Thanos, custom recording rules) still requires direct Helm values manipulation or a separate Prometheus Operator installation. Resource overhead is non-trivial: expect 1-2 CPU cores and 2-4 GB RAM per node for the full stack on a medium-sized cluster. Older RKE1 clusters cannot use the v2 chart and need a manual Helm install instead.
Closing: Verify, Then Iterate
Start by enabling monitoring on a single non-production cluster. Confirm all pods reach Ready state, port-forward Grafana, and validate that the Cluster Overview dashboard populates. From there, adjust retention and scrape intervals via the Helm values UI to match your compliance window. If you outgrow the built-in defaults, the same Prometheus Operator CRDs are available for custom ServiceMonitors and PrometheusRules—no migration required, just additional configuration. The monitoring stack is a supported Rancher component, so upgrades follow Rancher's release cadence; check the release notes for version compatibility before upgrading the management plane.
0 replies
A thoughtful contribution can make all the difference. Be the first to share one.