diff --git a/cfg_checker/modules/ceph/__init__.py b/cfg_checker/modules/ceph/__init__.py
index ad4a207..74fdde3 100644
--- a/cfg_checker/modules/ceph/__init__.py
+++ b/cfg_checker/modules/ceph/__init__.py
@@ -98,8 +98,8 @@
     # ceph_info.load_info()
     # end debug
 
-    ceph_info.print_summary()
     ceph_info.generate_archive(_tgzfile)
+    ceph_info.print_summary()
 
     return
 
diff --git a/cfg_checker/modules/ceph/info.py b/cfg_checker/modules/ceph/info.py
index 092c1c7..9b55c3f 100644
--- a/cfg_checker/modules/ceph/info.py
+++ b/cfg_checker/modules/ceph/info.py
@@ -57,9 +57,14 @@
                 continue
             else:
                 # TODO: Consider filtering out or prepare data for the table
+                _osd = _d.pop("osd_name")
+                _node_name = _d.pop("node_name")
                 _date = sorted(_d.keys(), reverse=True)[0]
                 self.ceph_info['ceph_health']['date'] = _date
                 self.ceph_info['ceph_health']['latest'][_n] = _d[_date]
+                self.ceph_info['ceph_health']['latest'][_n]["osd_name"] = _osd
+                self.ceph_info['ceph_health']['latest'][_n]["node_name"] = \
+                    _node_name
 
         return self.ceph_info['ceph_health']['latest']
 
@@ -98,14 +103,18 @@
                 logger_cli.info("{:45} {:<10}".format(_n, "<empty>"))
                 continue
 
-            _status = _d['ata_smart_data']['self_test']['status']['passed']
+            _status = _d['smart_status']['passed']
+            if "interface_speed" in _d:
+                _speed = _d['interface_speed']['current']['string']
+            else:
+                _speed = "-"
 
             _status = 'passed' if _status else 'failed'
             logger_cli.info(
                 _fmt.format(
                     _n,
                     _d['device']['info_name'],
-                    _d['interface_speed']['current']['string'],
+                    _speed,
                     _status,
                     _d['temperature']['current']
                 )
@@ -467,14 +476,24 @@
         logger_cli.info("-> Collecting health metrics")
         _health_metrics = {}
         _devices = _c("ceph device ls")
-        for device in _devices.splitlines():
+        _devices = _devices.splitlines()
+        _progress = Progress(len(_devices)-1)
+        _index = 1
+        for device in _devices:
             _t = device.split()
             _osd = _t[2]
+            _node = _t[1]
             _dev = _t[0]
             if _dev == "DEVICE":
                 continue
             _metric = _cj("ceph device get-health-metrics {}".format(_dev))
-            _health_metrics["{}_{}".format(_osd, _dev)] = _metric
+            _dev_name = "{}_{}".format(_osd, _dev)
+            _health_metrics[_dev_name] = _metric
+            _health_metrics[_dev_name]['node_name'] = _node
+            _health_metrics[_dev_name]['osd_name'] = _osd
+            _progress.write_progress(_index, note=_dev_name)
+            _index += 1
+        _progress.end()
         self._add_ceph_info_item(
             "ceph_health",
             "Ceph Health Metrics",
