Your submission was sent successfully! Close

Ceph Dashboard

A monitoring web UI is available in the form of the upstream Ceph Dashboard. It resides in the same model alongside the existing Ceph applications.

The dashboard is deployed using the ceph-dashboard charm. It works in conjunction with the openstack-loadbalancer charm, which in turn utilises the hacluster charm.

The ceph-dashboard charm is also compatible with Prometheus (for Ceph metric gathering) and Grafana (for displaying Prometheus data). This optional enhancement results in Grafana graphs being embedded within the dashboard.

Note:
The ceph-dashboard charm is currently in tech-preview.

Deployment

We are assuming a pre-existing Ceph cluster.

Deploy the ceph-dashboard as a subordinate to the ceph-mon charm.

juju deploy cs:~openstack-charmers/ceph-dashboard
juju add-relation ceph-dashboard:dashboard ceph-mon:dashboard

TLS is a requirement for this charm. Enable it by adding a relation to the vault application:

juju add-relation ceph-dashboard:certificates vault:certificates

The dashboard is load balanced using VIPs and implemented via the openstack-loadbalancer and hacluster charms (use one or more space-separated VIP addressees local to your own environment):

juju deploy -n 3 cs:~openstack-charmers/openstack-loadbalancer
juju config openstack-loadbalancer vip=10.5.20.200
juju deploy hacluster openstack-loadbalancer-hacluster
juju add-relation openstack-loadbalancer:ha openstack-loadbalancer-hacluster:ha

Finally, to actually enable load balancing, add a relation between the openstack-loadbalancer and ceph-dashboard applications:

juju add-relation ceph-dashboard:loadbalancer openstack-loadbalancer:loadbalancer

Accessing the dashboard

Add a dashboard user by applying charm action add-user to any ceph-dashboard unit:

juju run-action --wait ceph-dashboard/0 add-user username=admin role=administrator

Note:
See the Ceph documentation on the different role types available.

This user’s password is included in the command’s output:

unit-ceph-dashboard-0:                                                                                                                            
  UnitId: ceph-dashboard/0                                                                                                                                                                                         
  id: "26"                                                                                                                                        
  results:                                                                                                        
    password: nMbKY95LmYvP                                                                                                                        
  status: completed                                                                                                
  timing:                                                                                                                                                                   
    completed: 2021-10-26 16:58:49 +0000 UTC                                                                                                                                
    enqueued: 2021-10-26 16:58:47 +0000 UTC                                                                                                                                 
    started: 2021-10-26 16:58:48 +0000 UTC 

The web UI is available on the configured VIP and on port 8443:

https://10.5.20.200:8443

This should bring you to a login page:

In this example the credentials are:

Username: admin
Password: nMbKY95LmYvP

Embedded Grafana dashboards

To embed Grafana dashboards some additional relations are required (Grafana, Telegraf, and Prometheus are assumed to be pre-existing):

juju add-relation ceph-dashboard:grafana-dashboard grafana:dashboards
juju add-relation ceph-dashboard:prometheus prometheus:website
juju add-relation ceph-mon:prometheus prometheus:target
juju add-relation ceph-osd:juju-info telegraf:juju-info
juju add-relation ceph-mon:juju-info telegraf:juju-info

Grafana, Telegraf, and Prometheus should be related in the standard way:

juju add-relation grafana:grafana-source prometheus:grafana-source
juju add-relation telegraf:prometheus-client prometheus:target
juju add-relation telegraf:dashboards grafana:dashboards

When Grafana is integrated with the Ceph Dashboard it requires TLS, so add a relation to Vault (the grafana charm also supports TLS configuration via ssl_* charm options):

juju add-relation grafana:certificates vault:certificates

Important:
Ceph Dashboard will (silently) fail to display Grafana output if the client browser cannot validate the Grafana server’s TLS certificate. Either ensure the signing CA certificate is known to the browser or, if in a testing environment, contact the Grafana dashboard directly and have the browser accept the unverified certificate.

Grafana should be configured with the following charm options:

juju config grafana anonymous=True
juju config grafana allow_embedding=True

The grafana charm also requires the vonage-status-panel and grafana-piechart-panel plugins. The install_plugins configuration option should be set to include URLs from which these plugins can be downloaded. They are currently available from https://storage.googleapis.com/plugins-community. For example:

juju config grafana install_plugins="https://storage.googleapis.com/plugins-community/vonage-status-panel/release/1.0.11/vonage-status-panel-1.0.11.zip,https://storage.googleapis.com/plugins-community/grafana-piechart-panel/release/1.6.2/grafana-piechart-panel-1.6.2.zip"

Telegraf should be configured with the following charm option:

juju config telegraf hostname="{host}"

Note:
The above command is to be invoked verbatim; no substitution is required.

Currently the dashboard does not auto-detect the API endpoint of the Grafana service. It needs to be provided via a configuration option:

juju config ceph-dashboard grafana-api-url="https://<IP of grafana unit>:3000"

Prometheus alerting

To enable alerting for an existing Prometheus service add the following relations:

juju add-relation ceph-dashboard:prometheus prometheus:website
juju add-relation ceph-mon:prometheus prometheus:target
juju add-relation ceph-dashboard:alertmanager-service prometheus-alertmanager:alertmanager-service
juju add-relation prometheus:alertmanager-service prometheus-alertmanager:alertmanager-service

Ceph Object storage

To enable Object storage management of an existing Ceph RADOS Gateway service add the following relation:

juju add-relation ceph-dashboard:radosgw-dashboard ceph-radosgw:radosgw-user

Note:
For Ceph versions older than Pacific the dashboard can only be related to a single ceph-radosgw application.

Last updated 9 days ago. Help improve this document in the forum.