Difference between revisions of "ZenPack:Ceph"
AlexLamont (Talk | contribs) |
|||
Line 5: | Line 5: | ||
|Organization=Zenoss, Inc. | |Organization=Zenoss, Inc. | ||
|ZenPack name=ZenPacks.zenoss.Ceph | |ZenPack name=ZenPacks.zenoss.Ceph | ||
+ | |Flavor=commercial | ||
|Releases={{Release | |Releases={{Release | ||
|Version=1.0.0 | |Version=1.0.0 |
Revision as of 15:11, 1 March 2016
Note: This ZenPack is available in commercial versions of Zenoss. Click here to request more information about this commercial ZenPack. Click here to see all commercial ZenPacks.
- Author(s)
- Zenoss
- Current Maintainer(s)
- Zenoss
- Organization
- Zenoss, Inc.
- ZenPack name
- ZenPacks.zenoss.Ceph
- Ceph Calamari API (1.3.0+)
- Ceph (0.94.5+ (Hammer+))
Ceph ZenPack
Warning
The ZenPack Catalog has moved to its new home at https://www.zenoss.com/product/zenpacks as of January 17, 2017. The following information may be out of date, and this page will eventually be removed.
Support
This ZenPack is included with commercial versions of Zenoss and enterprise support for this ZenPack is provided to Zenoss customers with an active subscription.
Releases
- Version 1.0.0- Download
- Released on 2016/01/22
- Requires PythonCollector ZenPack
- Compatible with Zenoss Resource Manager 5.0.x
Background
This ZenPack monitors the Ceph storage clustering system using the Calamari API system. Calamari setup is covered here. You must have access both the Calamari and Graphite APIs which are bundled into the Calamari packages. Calamari has other dependencies that must be installed on the Ceph cluster.
Note: Although this ZenPack has support for RBDs and Snapshots, this
requires the RBD support in the forthcoming Calamari release.
An experimental Calamari version with RBD support can be installed from this
source branch.
Contents
Prerequisites
- Ceph version 0.94.5+ (Hammer+)
- Calamari version 1.3.0.1-142+
Gallery
Features
Ceph features include:
- Overall Cluster Health Monitoring
- Health Monitoring for Monitors, OSD's, MDS's and Hosts
- Graphs for key Ceph settings and performance metrics
- Service Impact and root cause analysis. (Requires Zenoss Service Dynamics)
- Event Management
Ceph Structure and Discovery
The ZenPack class structure can be visualized in the following Diagram:
Detailed ZenPack Class Structure
Objects are automatically discovered via Calamari API. These objects are:
- Hosts (CephHost)
- Description: Hosts that various Ceph services run on
- Attributes: fqdn, ceph_hostname, ceph_version, managed, frontend_addr, frontend_iface, backend_addr, backend_iface: Cluster facing interface, services: Services managed on host
- Relationships: cephEndpoint, cephServices
- Datasources:
- alerts/events
- Events: Late Reporting, Rebooted, Regained Contact
- host-data
- Datapoints: cpu.total.idle, cpu.total.system, cpu.total.iowait, diskspace.root.byte_used, diskspace.root.byte_free, diskspace.root.byte_avail, memory.Active, memory.MemFree, memory.MemTotal
- alerts/events
- Graphs:
- Idle Cpu
- CPU IO Wait
- Disk Space
- Memory Utilization
- Ceph Clusters (CephCluster)
- Description: The cluster component. Ceph can host multiple clusters.
- Attributes: Status: Health Status, FSID: The cluster ID, Cluster Name
- Relationships: cephEndpoint, cephClusterComponents
- Datasources:
- alerts/events
- Events: Health Warn, Health Ok, Regained Contact, Late Reporting
- cluster-data
- Datapoints: total_bytes, total_avail_bytes, total_used_bytes
- alerts/events
- Graphs:
- Total Space
- cluster-pg-data
- Datapoints: active, backfill_toofull, backfilling, clean, creating, degraded, down, inactive, incomplete, inconsistent, peering, recovering, recovery_wait, remapped, repair, replay, scrubbing, splitting, stale, undersized, wait_backfill
- cluster-pg-data
- Graphs:
- PG States
- Ceph Monitors (CephMon)
- Description: Creates and monitors all Ceph services and health
- Attributes: rank in_quorum, public_ipaddr, public_port, running, status
- Relationships: cephCluster, cephHost
- Datasources:
- alerts/events
- Events: Joined Quorum, Left Quorum
- mon-data
- Datapoints: cluster.num_mon, cluster.num_mon_quorum, mon.election_call, mon.election_win, mon.election_lose, mon.num_elections
- alerts/events
- Graphs:
- Monitors in Quorum
- Elections
- Ceph Object Storage Daemon (CephOSD)
- Description: Service that provides raw storage to Ceph
- Attributes: status, ceph_uuid, up, in, reweight, public_ipaddr, public_port, cluster_ipaddr, cluster_port
- Relationships: cephCluster, cephHost, cephPools
- Datasources:
- alerts/events
- Events: OSD Down, OSD Up
- osd-data
- Datapoints: num_osd, num_osd_in, num_osd_up, osd_byte, osd_bytes_avail, osd_bytes_used
- alerts/events
- Graphs:
- OSD's In and Up
- Disk Space
- Pools (CephPool)
- Description: The basic Ceph logical areas that data is organized into
- Attributes: status
- Relationships: cephCluster, cephOSDs, cephMDSs, cephRBDs, cephSnaps, cephFS, cephRGW
- Datasources:
- pool-data
- Datapoints: num_objects, num_objects_degraded, num_objects_dirty, num_objects_misplaced, num_objects_missing_on_primary, num_objects_recovered, num_objects_clones, num_read_kb, num_write_kb, num_scrub_errors
- pool-data
- Graphs:
- Bytes Read-Write
- Dirty Objects
- Misplaced Objects
- Objects Recovered
- Ceph Filesystem (CephFS)
- Description: Global filesystem
- Attributes: mds_pool, data_pools
- Relationships:
- cephCluster
- cephMDSs
- cephPools
- Datasources: None
- Ceph Metadata Servers (CephMDS)
- Description: Service provides all meta-data to CephFS files and objects. It is currently modeled as a single service which requires at least max_mds active servers and one standby server.
- Attributes: created, enabled, epoch, flags, last_failure, last_failure_osd_epoch, max_file_size, max_mds, modified, root, session_autoclose, session_timeout, tableserver
- Relationships: cephCluster, cephPools, cephFS
- Datasources:
- mds: MDS Events and State Changes
- Events: Active Damons, Standby Daemons
- Datapoints: total_count, up_count, in_count, failed_count, stopped_count, max_mds, active_count, standby_count, other_count, datapool_count, epoch, first_committed, last_committed
- mds: MDS Events and State Changes
- Graphs:
- MDS Daemons States: Note: Due to current limiations in Ceph, Totals won't sum to the subgroups of this graph.
- MDS Daemon Secondary States
- Ceph RADOS Block Device (CephRBD)
- Description: Block devices exported to systems as disk images
- Attributes: parent: (If COW image), size
- Relationships: cephCluster, cephPool, cephSnaps
- Datasources: None
- Ceph Snapshots(CephSnap)
- Description: Snapshot block devices for backups and copy-on-write (COW) images
- Attributes: size, protected
- Relationships: cephCluster, cephPool, cephRBD
- Datasources: None
Prerequisites
- Ceph (Hammer or newer)
- Calamari (Version 1.3.1 or newer)
- Calamari credentials
- Administrative credentials for your Ceph cluster
Usage
Device Setup via UI
Installation consists of the following steps:
- Ensure all prerequisite ZenPacks are installed
- Install the Ceph ZenPack on Zenoss
- Restart all Zenoss Services
- Install the target device in Zenoss:
- Go to Infrastructure tab
- Add Ceph Endpoint, set properties as follows:
- Device Name: Use a unique name for the endpoint
- Calamari Host IP
- Calamari User Name: See zCephCalamariUsername
- Calamari Password: See zCephCalamariPassword
- Collector: Choose the appropriate Collector.
Batch Configuration
You can also add your devices in batch for convenience and automation.
- Attach to the Zope container:
serviced service attach zope
- Create a text file (filename: /tmp/ceph.txt). Each server should have a stanza like
/Devices/Storage/Ceph ceph zCephCalamariUrl='http://calamari.fqdn/api/v2', \ zCephCalamariUsername='username', \ zCephCalamariPassword='password', \ zCephGraphiteUrl='http://calamari.fqdn/render'
- Run the zenbatchload command:
zenbatchload /tmp/ceph.txt
- The Ceph device should be modeled automatically
Host Discovery
If you have set zCephDiscoverHosts to true, then the first time you visit the *Hosts* components, each host listed there will be created as a device of type zCephHostDeviceClass.
These hosts will not be modeled until you provide the appropriate zProperties in each host so that the modeler can have proper access.
If your hosts already exist, they must have the same Hostname that Ceph believes them to be, either from Ceph's DNS servers for from /etc/hosts files. To avoid having multiple versions of the hosts, you should first remove the hosts from Zenoss prior to installing your first Ceph cluster.
Installed Items
Installing this ZenPack will add the following items to your Zenoss system:
Configuration and zProperties
The zProperties and example format settings for the Ceph are as follows:
- zCephCalamariUrl: URL for Clamari, format: http://calamari.fqdn/api/v2
- zCephGraphiteUrl: URL for Graphite, format: http://calamari.fqdn/render
- zCephCalamariUsername: <username>
- zCephCalamariPassword: <password>
- zCephDiscoverHosts: Set true to create Linux devices. These devices will only monitor with correct setting of their credentials.
- zCephHostDeviceClass: Hosts with zCephDiscoverHosts set true have device class of either /Server/Linux or /Server/SSH/Linux
Modeler Plugin
- zenoss.Ceph
Zenoss Analytics
This ZenPack provides additional support for Zenoss Analytics. Perform the following steps to install extra reporting resources into Zenoss Analytics after installing the ZenPack.
- Copy analytics-bundle.zip from $ZENHOME/ZenPacks/ZenPacks.zenoss.Ceph*/ZenPacks/zenoss/Ceph/analytics/ on your Zenoss server.
- Navigate to Zenoss Analytics in your browser.
- Login as superuser.
- Remove any existing Ceph_ZenPack folder.
- Choose Repository from the View menu at the top of the page.
- Expand Public in the list of folders.
- Right-click on Ceph_ZenPack folder and choose Delete.
- Confirm deletion by clicking OK.
- Add the new Ceph_ZenPack folder.
- Choose Server Settings from the Manage' menu at the top of the page.
- Choose Import in the left page.
- Remove checks from all check boxes.
- Click Choose File to import a data file.
- Choose the analytics-bundle.zip file copied from your Zenoss server.
- Click Import.
You can now navigate back to the Ceph_ZenPack folder in the repository to see the following resources added by the bundle.
- Domains
- Ceph Domain
- Ad Hoc Views
- Ceph Instance List
Domains can be used to create ad hoc views using the following steps.
- Choose Ad Hoc View from the Create menu.
- Click Domains at the top of the data chooser dialog.
- Expand Public then Ceph ZenPack.
- Choose the Ceph Domain domain
Service Impact and Root Cause Analysis
When combined with the Zenoss Service Dynamics product, this ZenPack adds built-in service impact and root cause analysis capabilities for Ceph and instances. The service impact relationships shown in the diagram (right) and described below are automatically added. These will be included in any services that contain one or more of the explicitly mentioned components.
The objects that are most interesting to model are:
- RBD's
- Snapshots
- Ceph FS's
- Ceph MDS's
- Ceph RGW's (unsupported)
To effectively model Impact for Ceph you should add the aforementioned components as follows:
- Go to the Impact (Services) page
- Create a Dynamic Service with appropriate name
- Add all Ceph Enpoint objects
- You may need to add more objects to show a more complete diagram
Impact Relationships
Component failures will affect Impact as follows:
- Endpoint affects all Hosts
- Host impacts Monitors, OSD's, and MDS's
- Monitor affect Cluster
- Cluster affects Pool
- OSD affects Pools
- Pool affects RBDs, Snapshots, MDS, and CephFS
- RBD affects Snapshots
- MDS affects CephFS
Changes
- 1.0.0
- Initial Release
Installation
Normal Installation (packaged egg)
- Download the appropriate egg file for the version of Zenoss you are running.
- Ensure you are logged in as the zenoss user:
$ sudo su - zenoss
- Install the ZenPack:
$ zenpack --install ZenPacks.zenoss.Ceph-*.egg
- Restart these services:
$ zenoss restart
Discuss
New: Don't forget to add yourself to the Zenoss User Map!