Ceph prometheus grafana
Skill sserkanml/ceph-cookbook/skills/ceph-prometheus-grafana
This skill should be used when the user asks to monitor a Ceph cluster with Prometheus/Grafana — e.g. "enable ceph prometheus module", "ceph grafana dashboard", "monitor ceph metrics", "ceph exporter", "wire ceph into an existing prometheus". Covers the mgr prometheus module, the cephadm-bundled monitoring stack, external scrape config, and dashboard import.From its SKILL.md
npx -y skills add sserkanml/ceph-cookbook --skill ceph-prometheus-grafanaAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 2 stars2 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
3.9 KB, as published. Nobody here has run it
Ceph Metrics with Prometheus & Grafana (cephadm)
Overview
Exposing Ceph cluster metrics via the built-in prometheus mgr module and wiring them into
a Prometheus + Grafana stack — either cephadm's bundled monitoring stack (Prometheus,
Grafana, Alertmanager, node-exporter, all deployed as orchestrated daemons) or an existing
external Prometheus via scrape config.
Placeholders
| Placeholder | Meaning | Example |
|---|---|---|
<PROMETHEUS_PORT> | mgr Prometheus exporter port | 9283 |
<MGR_HOST_1> / <MGR_HOST_2> | Mgr host(s) to scrape (repeat per mgr for HA) | mgr01 / mgr02 |
<SCRAPE_INTERVAL> | External Prometheus scrape interval | 15s |
<EXTERNAL_PROMETHEUS_HOST> | Address of an existing, already-deployed Prometheus | prom.example.com:9090 |
<PROMETHEUS_HOST> | Host serving the Prometheus UI/API (bundled or external) | 10.0.0.20 |
<DASHBOARD_ID> | Ceph Grafana dashboard id/uid to import | 2842 (Ceph Cluster) |
Prerequisites
- Healthy cephadm-managed cluster with
ceph orchavailable. - Decide up front: cephadm's bundled monitoring stack, or scrape into an already-existing external Prometheus.
- Network path from the Prometheus host to each mgr's
<PROMETHEUS_PORT>.
1. Enable the mgr Module (always required)
ceph mgr module enable prometheus
ceph mgr module ls | grep prometheus # confirm "on"
curl -s http://<MGR_HOST_1>:<PROMETHEUS_PORT>/metrics | head # raw metrics reachable
2. Option A — Deploy cephadm's Bundled Monitoring Stack
ceph orch apply node-exporter
ceph orch apply alertmanager
ceph orch apply prometheus
ceph orch apply grafana --placement="1"
ceph orch ps --daemon-type prometheus
ceph orch ps --daemon-type grafana
cephadm auto-generates the Prometheus scrape config (every mgr + node-exporter target) and pre-wires the Ceph dashboards into Grafana — skip straight to Verify below.
2. Option B — Scrape into an Existing External Prometheus
# prometheus.yml (add under scrape_configs:)
- job_name: 'ceph'
scrape_interval: <SCRAPE_INTERVAL>
static_configs:
- targets: ['<MGR_HOST_1>:<PROMETHEUS_PORT>', '<MGR_HOST_2>:<PROMETHEUS_PORT>']
curl -X POST http://<EXTERNAL_PROMETHEUS_HOST>/-/reload # requires --web.enable-lifecycle
3. Import Grafana Dashboards
cephadm's bundled Grafana ships these already. For an external Grafana: Dashboards →
Import → dashboard id <DASHBOARD_ID>, then select the Ceph Prometheus datasource.
4. Alertmanager Routing (optional)
ceph orch apply alertmanager --placement="1"
Edit the mounted alertmanager.yml to add receivers/routes, then:
ceph orch restart alertmanager
Verify
ceph orch ps --daemon-type prometheus
ceph orch ps --daemon-type grafana
ceph orch ps --daemon-type alertmanager
curl -s http://<PROMETHEUS_HOST>:9095/api/v1/targets | grep ceph # target reports "up"
Open the Ceph Cluster dashboard in Grafana and confirm panels populate (no "No data").