Scroll to navigation

NANNY(8) System Manager's Manual NANNY(8)

NAME

nanny - tool to monitor status of services in a cluster

SYNOPSIS

nanny has two forms, depending on whether it is being used to monitor virtual server services running on real servers, or failover services running on a primary or backup cluster node.

nanny [-t|--interval=ARG] [-I|--ipvsadm=ARG]
[-M|--method=ARG] [-U|--loadcmd=ARG]
[-n|--nodaemon] [-c|--nofork] [--test-start] [--norun]
[-p|--port=ARG] [-a|--reentrytime=ARG] [-h|--server=ARG]
[-f|--fwmark=ARG] [-r|--rport=ARG]
[-v|--verbose] [-V|--virtaddress=ARG] [-w|--weight=ARG]
[-S|--scale=ARG] [-s|--send_string=ARG]
[-e|--send_program=ARG[-x|--expect_string=ARG]
[-q|--quiesce-server] [-u|--UDP] [-T|--suppress] [-?|--help]
[--usage] [--version]
nanny [-t|--interval=ARG] [-U|--loadcmd=ARG]
[-n|--nodaemon] [-c|--nofork] [--test-start] [--norun]
[-p|--port=ARG] [-h|--server=ARG] [-r|--rport=ARG] [-v|--verbose]
[-V|--virtaddress=ARG] [-s|--send_string=ARG]
[-x|--expect_string=ARG] [-R|--startup=ARG]
[-D|--shutdown=ARG] [-u|--UDP] [-T|--suppress] [-?|--help]
[--usage] [--version]

DESCRIPTION

nanny is a daemon used by pulse to monitor the running status of the specified services on clustered servers. This tool has NO error checking and should not be run without the direct supervision of pulse!

OPTIONS

ARG specifies the number of seconds to wait between connection attempts to the server/service.
This s the path to the ipvsadm tool, which is normally /sbin/ipvsadm. This parameter is not used in failover service monitoring.
This option specifies the routing method for the real server (this parameter is not used in monitoring failover services). Allowable choices are:

g - Use gatewaying (direct routing).

m - Use masquerading (network access translation, or NAT).

t - Use ipip encapsulation (tunneling).

Command to get remote load average and/or perform file transfers with (rup, rsh, ssh).
Normally, nanny runs as a daemon but with this option runs in the foreground. When running in this mode, nanny sends all output to STDOUT instead of to syslog.
This mode forces nanny to disassociate from the terminal, but don't fork off into a daemon.
Runs nanny in a test mode. Reports, but does not start, other daemon processes.
Same as "--test-start".
Port used on the virtual IP address of the service to be monitored (fos), or the port used on the address of the virtual service to be monitored (lvsd). If omitted, port 80 (http) is assumed.
The number of seconds a failed service must remain alive before allowing the service/node back into the cluster. The main purpose of this time delay is to avoid having a service or node ping-ponging. As a general rule of thumb, if the service is available uninterupted for 60-120 seconds, then it is generally ok to let it back into the cluster. This parameter is ignored for failover services.
This is a factor used to adjust the sensitivity of the real server loading algorythm. By increasing this factor, the CPU load on the server must be much higher before the weighting of the server will be affected in the LVS routing table. This parameter is ignored for failover services.
This is the IP address of the server that is to be monitored. MUST BE SPECIFIED.
This is the firewalling mark of the virtual service to be monitored (lvsd). If this option is set, the --virtaddress option will be ignored.
Port for nanny to monitor on the real server to check for service availability. If omitted, port 80 (http) is assumed.
This is the virtual IP address of the service to be monitored (fos), or the address of the virtual service to be monitored (lvsd).
The relative weighting of the real servers can be adjusted by changing this setting to a higher number. For example, if one server has a weighting of 1 and another one has a weight of 2, the second one will get twice as many requests redirected to it. The user-assigned weight of the server is adjusted dynamically based the cpu load average and by the scale factor. This parameter is ignored for failover services.
This option depreciates the -s option when used. It's fuction is to allow the use of an external program or script in preferance to the static -s argument against each of the real servers defined in the lvs.cf config file. The special token %h is replaced with the IP of each of the defined real servers and can be used more than once though it will carry the same IP of the defined real server that has been selected. The special token %p is replaced with the port of each of the defined real servers and can be used more than once though it too will carry the same port value of the defined real server that has been selected. eg. 'ping -c1 %h'
Optional text string to send to the port in order to test whether the service is functioning. Length is limited to 255 printable, quoteable text characters (\n, \r, \t, \\, and \' are also permitted). If the send_str option is omitted altogether, then no attempt to send data will occur EXCEPT if port = 80 and expect_str is also omitted, in which case a web service is assumed and an http test string will be sent and expected (for backwards compatibility with earlier releases of piranha).

If both --send_str and --expect_str are specified, then the send_str string will be sent first, before the expect_str string is received and tested. If neither are specified (and port is not 80), then the service will only be tested by the success and/or failure of connecting to the port. No other I/O will be performed.

Optional text response string expected from the port in order to test whether the service is functioning. Length is limited to 255 printable, quotable text characters (\n, \r, \t, \\, and \' are also permitted). If expect_str="*", then any characters are accepted (but SOMETHING must be received). This is different than not specifying any expect string, which means do not even attempt the receive operation.

If this option is omitted then no attempt to receive data will occur EXCEPT if port = 80 and send_str is also omitted, in which case a web service is assumed and an http test string will be sent and expected (for backwards compatibility with earlier releases of piranha).

If both --send_str and --expect_str are specified, then the send_str string will be sent first, before the expect_str string is received and tested. If neither are specified, the service will only be tested by the success and/or failure of connecting to the port. No other I/O will be performed.

Suppress translation of '\' characters in send/expect strings. Try this if your send/expect strings are not being handled properly. It will prevent the nanny program from performing its own translations.
This parameter is mandatory for monitoring failover services, and must be omitted for monitoring real servers. The specified value is the command or script to execute to start the monitored service and a single optional parameter separated by a space. Failover services are started and stopped by nanny as part of the failover process, and nanny determines whether the service it is monitoring is a failover service (instead of a virtual server) by the presence or absence of this parameter.

The command used should be repeatable; meaning that it should be harmless (other than a possible returned error value) to execute the command multiple times in a row.

This parameter is mandatory for monitoring failover services, and must be omitted for monitoring real servers. The specified value is the command or script to execute to stop the monitored service and a single optional parameter separated by a space. Failover services are started and stopped by nanny as part of the failover process, and nanny determines whether the service it is monitoring is a failover service (instead of a virtual server) by the presence or absence of this parameter.

The command used should be repeatable; meaning that it should be harmless (other than a possible returned error value) to execute the command multiple times in a row.

Quiesce server when service monitoring timeouts. It is useful when a server is too busy to serve new requests, nanny will quiesce this server by setting its weight zero, so that established connections still get served by this server and no new requests will be sent to this server.
Use the UDP protocol instead of TCP for monitor communications.
Give *lots* of debugging information to either syslog or STDOUT.
-?|--help
Shows a verbose usage listing.
Outputs a terse argument summary.
Displays program version.

SEE ALSO

lvs.cf(5), ipvsadm(8), lvsd(8), pulse(8).

AUTHOR

Philip Copeland <bryce@redhat.com>
Erik Troan <ewt@redhat.com>
Keith Barrett <kbarrett@redhat.com>
Sat Aug 18 2001 4th Berkeley Distribution