diff --git a/collectd/files/plugin/collectd_base.py b/collectd/files/plugin/collectd_base.py
index 4e6eaff..e869a97 100644
--- a/collectd/files/plugin/collectd_base.py
+++ b/collectd/files/plugin/collectd_base.py
@@ -48,7 +48,7 @@
 
     MAX_IDENTIFIER_LENGTH = 63
 
-    def __init__(self, collectd, service_name=None):
+    def __init__(self, collectd, service_name=None, local_check=True):
         self.debug = False
         self.timeout = 5
         self.max_retries = 3
@@ -61,6 +61,7 @@
         self.do_collect_data = True
 
         self.service_name = service_name
+        self.local_check = local_check
 
     def config_callback(self, conf):
         for node in conf.children:
@@ -95,7 +96,8 @@
 
     def dispatch_check_metric(self, check, failure=None):
         metric = {
-            'meta': {'service_check': self.service_name or self.plugin},
+            'meta': {'service_check': self.service_name or self.plugin,
+                     'local_check': self.local_check},
             'values': check,
         }
 
diff --git a/collectd/files/plugin/collectd_elasticsearch_cluster.py b/collectd/files/plugin/collectd_elasticsearch_cluster.py
index 64b97d1..5db5a67 100644
--- a/collectd/files/plugin/collectd_elasticsearch_cluster.py
+++ b/collectd/files/plugin/collectd_elasticsearch_cluster.py
@@ -39,7 +39,8 @@
 
         yield {
             'type_instance': 'health',
-            'values': HEALTH_MAP[data['status']]
+            'values': HEALTH_MAP[data['status']],
+            'meta': {'discard_hostname': True}
         }
 
         for metric in METRICS:
@@ -51,10 +52,11 @@
                 continue
             yield {
                 'type_instance': metric,
-                'values': value
+                'values': value,
+                'meta': {'discard_hostname': True}
             }
 
-plugin = ElasticsearchClusterHealthPlugin(collectd)
+plugin = ElasticsearchClusterHealthPlugin(collectd, local_check=False)
 
 
 def config_callback(conf):
diff --git a/collectd/files/plugin/collectd_pacemaker.py b/collectd/files/plugin/collectd_pacemaker.py
index 87dc470..dd78a9f 100644
--- a/collectd/files/plugin/collectd_pacemaker.py
+++ b/collectd/files/plugin/collectd_pacemaker.py
@@ -101,7 +101,8 @@
             yield {
                 'type_instance': 'local_resource_active',
                 'values': same_hostname(node),
-                'meta': {'resource': self.notify_resource}
+                'meta': {'resource': self.notify_resource,
+                         'host': shorten_hostname(self.hostname)}
             }
 
         summary = root.find('summary')
@@ -111,6 +112,7 @@
         yield {
             'type_instance': 'local_dc_active',
             'values': same_hostname(current_dc),
+            'meta': {'host': shorten_hostname(self.hostname)}
         }
 
         if current_dc.get('name') != self.hostname:
@@ -244,7 +246,12 @@
         # value because crm_mon doesn't provide the exact number. To estimate
         # the number of operations applied to a resource, the plugin keeps a
         # copy of call_ids and compares it with the current value.
-        for node in root.find('node_history').iter('node'):
+
+        history = root.find('node_history')
+        if history is None:
+            return
+
+        for node in history.iter('node'):
             hostname = shorten_hostname(node.get('name'))
             if hostname not in self.history:
                 self.history[hostname] = {}
@@ -283,7 +290,7 @@
                 }
 
 
-plugin = CrmMonitorPlugin(collectd)
+plugin = CrmMonitorPlugin(collectd, local_check=False)
 
 
 def init_callback():
