Ceph Dashboard install

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.

Deployment

We are assuming a pre-existing Ceph cluster.

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

juju deploy --channel reef/stable ceph-dashboard
juju integrate ceph-dashboard:dashboard ceph-mon:dashboard

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

juju integrate ceph-dashboard:certificates vault:certificates

The dashboard is necessarily load balanced. It does so by using VIPs and is 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 --config vip=10.5.20.200 --channel jammy/stable openstack-loadbalancer
juju deploy hacluster openstack-loadbalancer-hacluster
juju integrate 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 integrate 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 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 integrate ceph-dashboard:grafana-dashboard grafana:dashboards
juju integrate ceph-dashboard:prometheus prometheus:website
juju integrate ceph-mon:prometheus prometheus:target
juju integrate ceph-osd:juju-info telegraf:juju-info
juju integrate ceph-mon:juju-info telegraf:juju-info

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

juju integrate grafana:grafana-source prometheus:grafana-source
juju integrate telegraf:prometheus-client prometheus:target
juju integrate 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 integrate 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 integrate ceph-dashboard:prometheus prometheus:website
juju integrate ceph-mon:prometheus prometheus:target
juju integrate ceph-dashboard:alertmanager-service prometheus-alertmanager:alertmanager-service
juju integrate 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 integrate 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.

iSCSI targets

To display information for an existing iSCSI gateway/target service add the following relation:

juju integrate ceph-iscsi:admin-access ceph-dashboard:iscsi-dashboard

This page was last modified 5 months ago. Help improve this document in the forum.