diff options
-rw-r--r-- | sos/report/plugins/ceph_mds.py | 51 |
1 files changed, 50 insertions, 1 deletions
diff --git a/sos/report/plugins/ceph_mds.py b/sos/report/plugins/ceph_mds.py index 38ba95c9..c105ee5d 100644 --- a/sos/report/plugins/ceph_mds.py +++ b/sos/report/plugins/ceph_mds.py @@ -25,7 +25,6 @@ class CephMDS(Plugin, RedHatPlugin, UbuntuPlugin): }) self.add_copy_spec([ - "/var/log/ceph.log", "/var/log/ceph/ceph-mds*.log", "/var/lib/ceph/bootstrap-mds/", "/var/lib/ceph/mds/", @@ -45,4 +44,54 @@ class CephMDS(Plugin, RedHatPlugin, UbuntuPlugin): "/etc/ceph/*bindpass*" ]) + ceph_cmds = [ + "cache status", + "client ls", + "config diff", + "config show", + "damage ls", + "dump loads", + "dump tree", + "dump_blocked_ops", + "dump_historic_ops", + "dump_historic_ops_by_duration", + "dump_mempools", + "dump_ops_in_flight", + "get subtrees", + "objecter_requests", + "ops", + "perf histogram dump", + "perf histogram schema", + "perf schema", + "perf dump", + "status", + "version", + "session ls" + ] + + mds_ids = [] + # Get the ceph user processes + out = self.exec_cmd('ps -u ceph -o args') + + if out['status'] == 0: + # Extract the OSD ids from valid output lines + for procs in out['output'].splitlines(): + proc = procs.split() + if len(proc) < 6: + continue + if proc[4] == '--id' and "ceph-mds" in proc[0]: + mds_ids.append("mds.%s" % proc[5]) + + # If containerized, run commands in containers + try: + cname = self.get_all_containers_by_regex("ceph-mds*")[0][1] + except Exception: + cname = None + + self.add_cmd_output([ + "ceph daemon %s %s" + % (mdsid, cmd) for mdsid in mds_ids for cmd in ceph_cmds + ], container=cname) + + # vim: set et ts=4 sw=4 : |