Skip to content
ceph metric collectors with collectd integration
Branch: master
Clone or download
zmc Merge pull request #229 from ceph/dashboard-diagrams
Update dashboard relationship diagrams
Latest commit de99d55 Feb 6, 2019
Type Name Latest commit message Commit time
Failed to load latest commit information.
ansible Merge pull request #212 from zmc/wip-prom-etc-hosts Aug 24, 2018
collectors collectors: No update on fetch osd_stats failure Oct 7, 2017
dashboards Update dashboard relationship diagrams Jan 31, 2019
docker added example docker-compose file for the monitoring containers Jun 6, 2017
etc ceph-grafana: Use light theme Apr 18, 2018
patches rpm: use_epel is no longer defined Jul 3, 2018
screenshots screenshot updated to show current state @ 2017-07-12 (used in wiki) Jul 11, 2017
selinux selinux: Update the policy Sep 27, 2017
setup provides a simple json file to define the graphite data source to gra… Jun 7, 2017
tests at-a-glance - top level links changed to singlestat panels Jun 9, 2017
.gitignore Add *.swp, *.retry and virtualenv to .gitignore Jun 9, 2017 INSTALL: steps updated to reflect the additional plugin now used on a… Jun 26, 2017
LICENSE Initial commit May 19, 2017
README README - updated to reflect current known issues and the switch to gr… May 24, 2017 Install cephmetrics repo in production mode Jul 10, 2017
TODO at-a-glance - top level links changed to singlestat panels Jun 9, 2017 cephmetrics: simplified the probe logic Aug 23, 2017 rpm: Modify node_exporter service name Jun 26, 2018 ceph-grafana: Move old dashboards Apr 17, 2018
dashboard.yml dashboard.yml: updated to include the new ceph-health dashboard Aug 21, 2017
tox.ini Unpin testinfra Jun 13, 2018


Cephmetrics is a tool that allows a user to visually monitor various metrics in a running Ceph cluster.


  • RHEL 7 should be running on all hosts
  • A functional ceph cluster running version ceph-osd-10.2.7-27.el7cp.x86_64 or later is already up and running.
  • Another host machine independent of the ceph machines must be available. This host will be used to receive data pushed by the hosts in the Ceph cluster, and will run the dashboard to display that data.
  • A host machine on which to execute ansible-playbook to orchestrate the deployment must be available.
  • Passwordless SSH access from the deploy host to the ceph hosts. The username should be the same for all hosts.
  • Passwordless sudo access on the ceph and dashboard hosts
  • All hosts must share the same DNS domain

Resulting configuration

After running this procedure, you will have the following configuration.

  • The ceph nodes will have collectd installed, along with collector plugins from cephmetrics-collectd
  • The dashboard host will have grafana installed and configured to display various dashboards by querying data received from Ceph nodes via a graphite-web, python-carbon, and python-whisper stack.


Install cephmetrics-ansible

First, decide which machine you want to use to run ansible-playbook. If you used ceph-ansible to set up your cluster, you may want to reuse that same host to take advantage of the inventory file that was created as part of that process.

Once the host is selected, perform the following steps there. This will install a repo which includes the cephmetrics installation code and ansible (version 2.2.3 or later):

sudo su -
mkdir ~/cephmetrics
subscription-manager repos --enable rhel-7-server-optional-rpms --enable rhel-7-server-rhscon-2-installer-rpms
curl -L -o /etc/yum.repos.d/cephmetrics.repo
yum install cephmetrics-ansible

Create or edit the inventory file

Next, we need an inventory file. If you are running ansible-playbook on a host that previously ran ceph-ansible, you may simply modify /etc/ansible/hosts; otherwise you may copy /usr/share/cephmetrics-ansible/inventory.sample and modify it if you wish.

The inventory file format looks like:






If you are running ansible-playbook on a host mentioned in the inventory file, you will need to append ansible_connection=local to each line in the inventory file that mentions that host. An example: ansible_connection=local Omit the mdss section if no ceph mds nodes are installed. Omit the rgws section if no rgw nodes are installed.

Ansible variables can be set in a vars.yml file if necessary. If it is required, make sure to add -e '@/path/to/vars.yml to your ansible-playbook invocation below. Click here for more information.

Deploy via ansible-playbook

If you are using a ceph-ansible host, run these commands:

cd /usr/share/cephmetrics-ansible
ansible-playbook -v playbook.yml

Otherwise, run these commands:

cd /usr/share/cephmetrics-ansible
ansible-playbook -v -i /path/to/inventory playbook.yml

Note: The reason it is necessary to change directories is so that ansible-playbook will use the bundled ansible.cfg; there is currently no command-line argument allowing the specification of an arbitrary .cfg file.

You can’t perform that action at this time.