Since Pacemaker calculates node health based on node attributes,
any method that sets node attributes may be used to measure node
health. The most common ways are resource agents or separate daemons.
Pacemaker provides examples that can be used directly or as a basis for
custom code. The +ocf:pacemaker:HealthCPU+ and +ocf:pacemaker:HealthSMART+
resource agents set node health attributes based on CPU and disk parameters.
The +ipmiservicelogd+ daemon sets node health attributes based on IPMI
values (the +ocf:pacemaker:SystemHealth+ resource agent can be used to manage
the daemon as a cluster resource).
In order to take advantage of this feature - firstly add the resource to your cluster, preferably as a cloned resource to constantly measure health on all nodes:
This way attrd_updater will set proper status for each node running this resource. Any attribute matching "#health-[a-zA-z]+" will force cluster to migrate all resources from unhealthy node and place it on other nodes according to all constraints defined in your cluster.
When the node is no longer faulty you can force the cluster to restart the cloned resource on faulty node and make it available to take resources, in this case since we are using HealthIOWait provider: