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

Reply via email to