Le 05/12/2012 01:38, Andrew Beekhof a écrit :
On Tuesday, December 4, 2012, Florian Crouzat wrote: Le 03/12/2012 03:27, Andrew Beekhof a écrit : On Sat, Dec 1, 2012 at 1:07 AM, Florian Crouzat <gen...@floriancrouzat.net> wrote: Le 29/11/2012 22:10, Andrew Beekhof a écrit : Not so fast :-) crm_mon supports -E, --external-agent=value A program to run when resource operations take place. -e, --external-recipient=value A recipient for your program (assuming you want the program to send something to someone). so without recompiling, you can call a script - possibly it could call something that sends out snmp alerts ;-) Oh, great! I had a hard time understanding these two options and how they relate, you helped me on IRC but I'll reply here so there is a trace in case someone is also interested. Thanks for that. I really need to make some time to document this. If you have a suggestion as where this documentation should go, I might propose a patch. I'm not sure crm_mon --help or man crm_mon can be more verbose than they already are. Giving a full example and mentioning the ENV variables to use in the external-agent etc is too long for these brief doc. What do you think ? The proper place would be "pacemaker explained" Happily it lives in the source tree (doc/Pacemaker_Explained/en-US/Ch-*) in asciidoc format. A patch with the details above would be most welcome :)
I cannot find any good place where to write this new content in Pacemaker Explained. If advised (in terms of table of contents), I'll happily provide a patch.
Here is my resource: primitive ClusterMon ocf:pacemaker:ClusterMon \ params user="root" update="30" extra_options="-E /usr/local/bin/foo.sh -e 192.168.1.2" \ op monitor on-fail="restart" interval="10" \ meta target-role="Started" clone ClusterMon-clone ClusterMon Here is the content of my script: $ cat /usr/local/bin/foo.sh #!/bin/bash ( echo CRM_notify_recipient $CRM_notify_recipient echo CRM_notify_node $CRM_notify_node echo CRM_notify_rsc $CRM_notify_rsc echo CRM_notify_task $CRM_notify_task echo CRM_notify_desc $CRM_notify_desc echo CRM_notify_rc $CRM_notify_rc echo CRM_notify_target_rc $CRM_notify_target_rc echo CRM_notify_status $CRM_notify_status echo ) > /tmp/pacemaker.log Finally, this is the resulting log of one execution. The script is executed on each cluster operation/transition (monitor, stop, start) etc. $ cat /tmp/pacemaker.log CRM_notify_recipient 192.168.1.2 CRM_notify_node scoresby2.lyra-network.com <http://scoresby2.lyra-network.com> CRM_notify_rsc F CRM_notify_task monitor CRM_notify_desc ok CRM_notify_rc 0 CRM_notify_target_rc 0 CRM_notify_status 0 One just has to do some scripting with these variables to match its needs. In my case, I guess I want a SNMP trap whenever CRM_notify_rc != 0. Thanks -- Florian Crouzat -- Cheers, Florian Crouzat
-- Cheers, Florian Crouzat _______________________________________________ Pacemaker mailing list: Pacemaker@oss.clusterlabs.org http://oss.clusterlabs.org/mailman/listinfo/pacemaker Project Home: http://www.clusterlabs.org Getting started: http://www.clusterlabs.org/doc/Cluster_from_Scratch.pdf Bugs: http://bugs.clusterlabs.org