# Using Pacemaker Tools

In the dark past, configuring Pacemaker required the administrator to read and write XML. In true UNIX style, there were also a number of different commands that specialized in different aspects of querying and updating the cluster.

Since Pacemaker 1.0, this has all changed and we have an integrated, scriptable, cluster shell that hides all the messy XML scaffolding. It even allows you to queue up several changes at once and commit them atomically.

Take some time to familiarize yourself with what it can do.

    [root@pcmk-1 ~]# crm --help

    usage:
        crm [-D display_type]
        crm [-D display_type] args
        crm [-D display_type] [-f file]

        Use crm without arguments for an interactive session.
        Supply one or more arguments for a "single-shot" use.
        Specify with -f a file which contains a script. Use '-' for
        standard input or use pipe/redirection.

        crm displays cli format configurations using a color scheme
        and/or in uppercase. Pick one of "color" or "uppercase", or
        use "-D color,uppercase" if you want colorful uppercase.
        Get plain output by "-D plain". The default may be set in
        user preferences (options).

    Examples:

        # crm -f stopapp2.cli
        # crm < stopapp2.cli
        # crm resource stop global_www
        # crm status

The primary tool for monitoring the status of the cluster is crm_mon (also available as crm status). It can be run in a variety of modes and has a number of output options. To find out about any of the tools that come with Pacemaker, simply invoke them with the `--help` option or consult the included man pages. Both sets of output are created from the tool, and so will always be in sync with each other and the tool itself.

Additionally, the Pacemaker version and supported cluster stack(s) is available via the `--version` option.

    [root@pcmk-1 ~]# crm_mon --version
    Pacemaker 1.1.5
    Written by Andrew Beekhof
    [root@pcmk-1 ~]# crm_mon --help
    crm_mon - Provides a summary of cluster's current state.

    Outputs varying levels of detail in a number of different formats.

    Usage: crm_mon mode [options]
    Options:
     -?, --help                 This text
     -$, --version              Version information
     -V, --verbose              Increase debug output

    Modes:
     -h, --as-html=value        Write cluster status to the named file
     -w, --web-cgi              Web mode with output suitable for cgi
     -s, --simple-status        Display the cluster status once as a simple one line output (suitable for nagios)
     -S, --snmp-traps=value     Send SNMP traps to this station
     -T, --mail-to=value        Send Mail alerts to this user.  See also --mail-from, --mail-host, --mail-prefix

    Display Options:
     -n, --group-by-node        Group resources by node
     -r, --inactive             Display inactive resources
     -f, --failcounts           Display resource fail counts
     -o, --operations           Display resource operation history
     -t, --timing-details       Display resource operation history with timing details

    Additional Options:
     -i, --interval=value           Update frequency in seconds
     -1, --one-shot                 Display the cluster status once on the console and exit
     -N, --disable-ncurses          Disable the use of ncurses
     -d, --daemonize                Run in the background as a daemon
     -p, --pid-file=value           (Advanced) Daemon pid file location
     -F, --mail-from=value          Mail alerts should come from the named user
     -H, --mail-host=value          Mail alerts should be sent via the named host
     -P, --mail-prefix=value        Subjects for mail alerts should start with this string
     -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).

    Examples:

    Display the cluster´s status on the console with updates as they occur:
            # crm_mon

    Display the cluster´s status on the console just once then exit:
            # crm_mon -1

    Display your cluster´s status, group resources by node, and include inactive resources in the list:
            # crm_mon --group-by-node --inactive

    Start crm_mon as a background daemon and have it write the cluster´s status to an HTML file:
            # crm_mon --daemonize --as-html /path/to/docroot/filename.html

    Start crm_mon as a background daemon and have it send email alerts:
            # crm_mon --daemonize --mail-to user@example.com --mail-host mail.example.com

    Start crm_mon as a background daemon and have it send SNMP alerts:
            # crm_mon --daemonize --snmp-traps snmptrapd.example.com

    Report bugs to pacemaker@oss.clusterlabs.org

If the SNMP and/or email options are not listed, then Pacemaker was not built to support them. This may be by the choice of your distribution or the required libraries may not have been available. Please contact whoever supplied you with the packages for more details.