I read this page and the next: https://clusterlabs.org/pacemaker/doc/deprecated/en-US/Pacemaker/1.1/html/Pacemaker_Explained/_moving_resources_due_to_connectivity_changes.html
And it explains how to set up a ping that you can link to the allocation of a resource.
While this works, if I have more than 1 URL or more than 1 ping check, how can I know which one is failing?
It seems this isn't logged anywhere if it occurs. It just occurs and pacemaker makes a decision...
Reading this source code: https://github.com/ClusterLabs/pacemaker/blob/master/extra/resources/ping
It seems a debug environment variable needs to be enabled. I'd rather not do this, assuming I have to restart pacemaker for it and thus messing up allocations, plus whatever amount of extra logs will now be taking up disk space.
Is there a way to just only log a single line if a ping failed, saying only that, and affecting nothing else?
Looking at the resource agent's (RA) source, it looks like enabling the debug option by setting it to
warn
is what you'd want to do.If for some reason that behavior isn't what you want, changing the
1)
case statement in theping_check()
function as shown below (line 305 in the ping RA) might be what you're looking for:But that change looks like it will follow the same logic as setting the param
debug=warn
. I haven't tested this, just following the logic in the RA.Also, if you do need to restart Pacemaker for some reason you can always put the cluster into
maintenance-mode=true
before doing so. Ifmaintenance-mode=true
is set Pacemaker will not start/stop/monitor services even while restarting. Just remember to setmaintenance-mode=false
when you're done.It turns out that the debug option isn't just an environment variable, it can be set on the ping resource itself, like this:
The only downside is: the log doesn't appear in
/var/log/pacemaker.log
as expected but in/var/log/syslog
.