OSDN Git Service

Fixed install progress
[ultramonkey-l7/ultramonkey-l7-v2.git] / man / l7directord.8
diff --git a/man/l7directord.8 b/man/l7directord.8
new file mode 100644 (file)
index 0000000..2a36fa1
--- /dev/null
@@ -0,0 +1,507 @@
+.\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.32
+.\"
+.\" Standard preamble:
+.\" ========================================================================
+.de Sh \" Subsection heading
+.br
+.if t .Sp
+.ne 5
+.PP
+\fB\\$1\fR
+.PP
+..
+.de Sp \" Vertical space (when we can't use .PP)
+.if t .sp .5v
+.if n .sp
+..
+.de Vb \" Begin verbatim text
+.ft CW
+.nf
+.ne \\$1
+..
+.de Ve \" End verbatim text
+.ft R
+.fi
+..
+.\" Set up some character translations and predefined strings.  \*(-- will
+.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
+.\" double quote, and \*(R" will give a right double quote.  | will give a
+.\" real vertical bar.  \*(C+ will give a nicer C++.  Capital omega is used to
+.\" do unbreakable dashes and therefore won't be available.  \*(C` and \*(C'
+.\" expand to `' in nroff, nothing in troff, for use with C<>.
+.tr \(*W-|\(bv\*(Tr
+.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
+.ie n \{\
+.    ds -- \(*W-
+.    ds PI pi
+.    if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
+.    if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\"  diablo 12 pitch
+.    ds L" ""
+.    ds R" ""
+.    ds C` ""
+.    ds C' ""
+'br\}
+.el\{\
+.    ds -- \|\(em\|
+.    ds PI \(*p
+.    ds L" ``
+.    ds R" ''
+'br\}
+.\"
+.\" If the F register is turned on, we'll generate index entries on stderr for
+.\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index
+.\" entries marked with X<> in POD.  Of course, you'll have to process the
+.\" output yourself in some meaningful fashion.
+.if \nF \{\
+.    de IX
+.    tm Index:\\$1\t\\n%\t"\\$2"
+..
+.    nr % 0
+.    rr F
+.\}
+.\"
+.\" For nroff, turn off justification.  Always turn off hyphenation; it makes
+.\" way too many mistakes in technical documents.
+.hy 0
+.if n .na
+.\"
+.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
+.\" Fear.  Run.  Save yourself.  No user-serviceable parts.
+.    \" fudge factors for nroff and troff
+.if n \{\
+.    ds #H 0
+.    ds #V .8m
+.    ds #F .3m
+.    ds #[ \f1
+.    ds #] \fP
+.\}
+.if t \{\
+.    ds #H ((1u-(\\\\n(.fu%2u))*.13m)
+.    ds #V .6m
+.    ds #F 0
+.    ds #[ \&
+.    ds #] \&
+.\}
+.    \" simple accents for nroff and troff
+.if n \{\
+.    ds ' \&
+.    ds ` \&
+.    ds ^ \&
+.    ds , \&
+.    ds ~ ~
+.    ds /
+.\}
+.if t \{\
+.    ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
+.    ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
+.    ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
+.    ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
+.    ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
+.    ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
+.\}
+.    \" troff and (daisy-wheel) nroff accents
+.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
+.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
+.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
+.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
+.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
+.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
+.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
+.ds ae a\h'-(\w'a'u*4/10)'e
+.ds Ae A\h'-(\w'A'u*4/10)'E
+.    \" corrections for vroff
+.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
+.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
+.    \" for low resolution devices (crt and lpr)
+.if \n(.H>23 .if \n(.V>19 \
+\{\
+.    ds : e
+.    ds 8 ss
+.    ds o a
+.    ds d- d\h'-1'\(ga
+.    ds D- D\h'-1'\(hy
+.    ds th \o'bp'
+.    ds Th \o'LP'
+.    ds ae ae
+.    ds Ae AE
+.\}
+.rm #[ #] #H #V #F C
+.\" ========================================================================
+.\"
+.IX Title "L7DIRECTORD 1"
+.TH L7DIRECTORD 1 "2009-02-15" "perl v5.8.8" "User Contributed Perl Documentation"
+.SH "NAME"
+l7directord \- UltraMonkey\-L7 Director Daemon
+.PP
+Daemon to monitor remote services and control UltraMonkey\-L7
+.SH "SYNOPSIS"
+.IX Header "SYNOPSIS"
+\&\fBl7directord\fR [\fB\-d\fR] [\fIconfiguration\fR] {\fBstart\fR|\fBstop\fR|\fBrestart\fR|\fBtry-restart\fR|\fBreload\fR|\fBstatus\fR|\fBconfigtest\fR}
+.PP
+\&\fBl7directord\fR \fB\-t\fR [\fIconfiguration\fR]
+.PP
+\&\fBl7directord\fR \fB\-h|\-\-help\fR
+.PP
+\&\fBl7directord\fR \fB\-v|\-\-version\fR
+.SH "DESCRIPTION"
+.IX Header "DESCRIPTION"
+\&\fBl7directord\fR is a daemon to monitor and administer real servers in a
+cluster of load balanced virtual servers. \fBl7directord\fR is similar to \fBldirectord\fR
+in terms of functionality except that it triggers \fBl7vsadm\fR.
+\&\fBl7directord\fR typically is started from command line but can be included
+to start from heartbeat. On startup \fBl7directord\fR reads the file
+\&\fB/etc/ha.d/conf/\fR\fIconfiguration\fR.
+After parsing the file, entries for virtual servers are created on the UltraMonkey\-L7.
+Now at regular intervals the specified real servers are monitored and if
+they are considered alive, added to a list for each virtual server. If a
+real server fails, it is removed from that list. Only one instance of
+\&\fBl7directord\fR can be started for each configuration, but more instances of
+\&\fBl7directord\fR may be started for different configurations. This helps to
+group clusters of services.  This can be done by putting an entry inside
+\&\fB/etc/ha.d/haresources\fR
+.PP
+\&\fInodename virtual-ip-address l7directord::configuration\fR
+.PP
+to start l7directord from heartbeat.
+.SH "OPTIONS"
+.IX Header "OPTIONS"
+.IP "\fIconfiguration\fR:" 4
+.IX Item "configuration:"
+This is the name for the configuration as specified in the file
+\&\fB/etc/ha.d/conf/\fR\fIconfiguration\fR
+.IP "\fB\-d\fR" 4
+.IX Item "-d"
+Don't start as daemon. Useful for debugging.
+.IP "\fB\-h\fR" 4
+.IX Item "-h"
+Help. Print user manual of l7directord.
+.IP "\fB\-v\fR" 4
+.IX Item "-v"
+Version. Print version of l7directord.
+.IP "\fB\-t\fR" 4
+.IX Item "-t"
+Run syntax tests for configuration files only. The program immediately exits after these syntax parsing tests
+with either a return code of 0 (Syntax \s-1OK\s0) or return code not equal to 0 (Syntax Error).
+.IP "\fBstart\fR" 4
+.IX Item "start"
+Start the daemon for the specified configuration.
+.IP "\fBstop\fR" 4
+.IX Item "stop"
+Stop the daemon for the specified configuration. This is the same as sending
+a \s-1TERM\s0 signal to the running daemon.
+.IP "\fBrestart\fR" 4
+.IX Item "restart"
+Restart the daemon for the specified configuration. The same as stopping and starting.
+.IP "\fBtry-restart\fR" 4
+.IX Item "try-restart"
+Try to restart the daemon for the specified configuration. If l7directord is already running for the
+specified configuration, then the same is stopped and started (Similar to restart).
+However, if l7directord is not already running for the specified configuration, then an error message
+is thrown and the program exits.
+.IP "\fBreload\fR" 4
+.IX Item "reload"
+Reload the configuration file. This is only useful for modifications
+inside a virtual server entry. It will have no effect on adding or
+removing a virtual server block. This is the same as sending a \s-1HUP\s0 signal to
+the running daemon.
+.IP "\fBstatus\fR" 4
+.IX Item "status"
+Show status of the running daemon for the specified configuration.
+.IP "\fBconfigtest\fR" 4
+.IX Item "configtest"
+This is the same as \fB\-t\fR.
+.SH "SYNTAX"
+.IX Header "SYNTAX"
+.Sh "Description how to write configuration files"
+.IX Subsection "Description how to write configuration files"
+.IP "\fBvirtual = \fR\fI(ip_address|hostname:portnumber|servicename)\fR" 4
+.IX Item "virtual = (ip_address|hostname:portnumber|servicename)"
+Defines a virtual service by IP-address (or hostname) and port (or
+servicename). All real services and flags for a virtual
+service must follow this line immediately and be indented.
+For ldirectord, Firewall-mark settings could be set. But for l7directord
+Firewall-mark settings cannot be set.
+.IP "\fBchecktimeout = \fR\fIn\fR" 4
+.IX Item "checktimeout = n"
+Timeout in seconds for connect checks. If the timeout is exceeded then the
+real server is declared dead.  Default is 5 seconds. If defined in virtual
+server section then the global value is overridden.
+.IP "\fBnegotiatetimeout = \fR\fIn\fR" 4
+.IX Item "negotiatetimeout = n"
+Timeout in seconds for negotiate checks. Default is 5 seconds.
+If defined in virtual server section then the global value is overridden.
+.IP "\fBcheckinterval = \fR\fIn\fR" 4
+.IX Item "checkinterval = n"
+Defines the number of second between server checks. Default is 10 seconds.
+If defined in virtual server section then the global value is overridden.
+.IP "\fBretryinterval = \fR\fIn\fR" 4
+.IX Item "retryinterval = n"
+Defines the number of second between server checks when server status is \s-1NG\s0.
+Default is 10 seconds. If defined in virtual server section then the global
+value is overridden.
+.IP "\fBcheckcount = \fR\fIn\fR" 4
+.IX Item "checkcount = n"
+The number of times a check will be attempted before it is considered
+to have failed. Note that the checktimeout is additive, so if checkcount
+is 3 and checktimeout is 2 seconds and retryinterval is 1 second,
+then a total of 8 seconds (2 + 1 + 2 + 1 + 2) worth of timeout will occur
+before the check fails. Default is 1. If defined in virtual server section
+then the global value is overridden.
+.IP "\fBconfiginterval = \fR\fIn\fR" 4
+.IX Item "configinterval = n"
+Defines the number of second between configuration checks.
+Default is 5 seconds.
+.IP "\fBautoreload = \fR[\fByes\fR|\fBno\fR]" 4
+.IX Item "autoreload = [yes|no]"
+Defines if <l7directord> should continuously check the configuration file
+for modification each \fBconfiginterval\fR seconds. If this is set to \fByes\fR
+and the configuration file changed on disk and its modification time (mtime)
+is newer than the previous version, the configuration is automatically reloaded.
+Default is \fBno\fR.
+.ie n .IP "\fBcallback = ""\fR\fI/path/to/callback\fR\fB""\fR" 4
+.el .IP "\fBcallback = ``\fR\fI/path/to/callback\fR\fB''\fR" 4
+.IX Item "callback = ""/path/to/callback"""
+If this directive is defined, \fBl7directord\fR automatically calls
+the executable \fI/path/to/callback\fR after the configuration
+file has changed on disk. This is useful to update the configuration
+file through \fBscp\fR on the other heartbeated host. The first argument
+to the callback is the name of the configuration.
+.Sp
+This directive might also be used to restart \fBl7directord\fR automatically
+after the configuration file changed on disk. However, if \fBautoreload\fR
+is set to \fByes\fR, the configuration is reloaded anyway.
+.IP "\fBfallback = \fR\fIip_address|hostname[:portnumber|servicename]\fR [\fBmasq\fR]" 4
+.IX Item "fallback = ip_address|hostname[:portnumber|servicename] [masq]"
+the server onto which a web service is redirected if all real
+servers are down. Typically this would be 127.0.0.1 with
+an emergency page.
+.Sp
+This directive may also appear within a virtual server, in which
+case it will override the global fallback server, if set.
+Only a value of \fBmasq\fR can be specified here. The default is \fImasq\fR.
+.ie n .IP "\fBlogfile = ""\fR\fI/path/to/logfile\fR\fB""\fR|syslog_facility" 4
+.el .IP "\fBlogfile = ``\fR\fI/path/to/logfile\fR\fB''\fR|syslog_facility" 4
+.IX Item "logfile = ""/path/to/logfile""|syslog_facility"
+An alternative logfile might be specified with this directive. If the logfile
+does not have a leading '/', it is assumed to be a \fIsyslog\fR\|(3) facility name.
+.Sp
+The default is to log directly to the file \fI/var/log/l7vs/l7directord.log\fR.
+.ie n .IP "\fBexecute = ""\fR\fIconfiguration\fR\fB""\fR" 4
+.el .IP "\fBexecute = ``\fR\fIconfiguration\fR\fB''\fR" 4
+.IX Item "execute = ""configuration"""
+Use this directive to start an instance of l7directord for
+the named \fIconfiguration\fR.
+.IP "\fBsupervised\fR" 4
+.IX Item "supervised"
+If this directive is specified, the daemon does not go into background mode.
+All log-messages are redirected to stdout instead of a logfile.
+This is useful to run \fBl7directord\fR supervised from daemontools.
+See http://untroubled.org/rpms/daemontools/ or http://cr.yp.to/daemontools.html
+for details.
+.IP "\fBquiescent = \fR[\fByes\fR|\fBno\fR]" 4
+.IX Item "quiescent = [yes|no]"
+If \fByes\fR, then when real or fallback servers are determined
+to be down, they are not actually removed from the UltraMonkey\-L7,
+but set weight to zero.
+If \fBno\fR, then the real or fallback servers will be removed
+from the UltraMonkey\-L7. The default is \fByes\fR.
+.Sp
+This directive may also appear within a virtual server, in which
+case it will override the global fallback server, if set.
+.Sh "Section virtual"
+.IX Subsection "Section virtual"
+The following commands must follow a \fBvirtual\fR entry and must be indented
+with a minimum of 4 spaces or one tab.
+.ie n .IP "\fBreal =\fR \fIip_address|hostname[\->ip_address|hostname][:portnumber|servicename\fR] [\fBmasq\fR] [\fIn\fR] [\fB""\fR\fIrequest\fR\fB"", ""\fR\fIreceive\fR\fB""\fR]" 4
+.el .IP "\fBreal =\fR \fIip_address|hostname[\->ip_address|hostname][:portnumber|servicename\fR] [\fBmasq\fR] [\fIn\fR] [\fB``\fR\fIrequest\fR\fB'', ``\fR\fIreceive\fR\fB''\fR]" 4
+.IX Item "real = ip_address|hostname[->ip_address|hostname][:portnumber|servicename] [masq] [n] [""request, receive""]"
+Defines a real service by IP-address (or hostname) and port (or
+servicename). If the port is omitted then a 0 will be used.
+Optionally a range of \s-1IP\s0 addresses (or two hostnames) may be
+given, in which case each \s-1IP\s0 address in the range will be treated as a real
+server using the given port. The second argument defines the forwarding
+method, it must be \fBmasq\fR only.  The third argument defines the weight of
+each real service. This argument is optional. Default is 1. The last two
+arguments are optional too. They define a request-receive pair to be used to
+check if a server is alive. They override the request-receive pair in the
+virtual server section. These two strings must be quoted. If the request
+string starts with \fIhttp://...\fR the IP-address and port of the real server
+is overridden, otherwise the IP-address and port of the real server is used.
+.IP "\fBmodule =\fR \fIproto-module module-args [opt\-module\-args]\fR" 4
+.IX Item "module = proto-module module-args [opt-module-args]"
+Indicates the module parameter of \fBl7directord\fR. Here \fBproto-module\fR
+denotes the protocol module name (For example, pfilter). \fBmodule-args\fR denotes the
+arguments for the protocol module (For example, \-\-pattern\-match '*.html*').
+\&\fBmodule-args\fR is optional only when set \fBsessionless\fR, \fBip\fR and \fBsslid\fR module to \fBproto-module\fR.
+The last argument is optional (For example, \-\-reschedule).
+.Sh "More than one of these entries may be inside a virtual section:"
+.IX Subsection "More than one of these entries may be inside a virtual section:"
+.IP "\fBmaxconn =\fR \fIn\fR" 4
+.IX Item "maxconn = n"
+Defines the maximum connection that the virtual service can handle. If the number of
+requests cross the maxconn limit, the requests would be redirected to the
+sorry server.
+.IP "\fBqosup =\fR \fIn\fR[\fBK\fR|\fBM\fR|\fBG\fR]" 4
+.IX Item "qosup = n[K|M|G]"
+Defines the bandwidth quota size in bps for up stream. If the number of the
+bandwidth is over the qosup limit, a packet to the virtual service will be delayed
+until the number of bandwidth become below the qosup limit.
+\&\fBK\fR(kilo), \fBM\fR(mega) and \fBG\fR(giga) unit are available.
+.IP "\fBqosdown =\fR \fIn\fR[\fBK\fR|\fBM\fR|\fBG\fR]" 4
+.IX Item "qosdown = n[K|M|G]"
+Defines the bandwidth quota size in bps for down stream. If the number of the
+bandwidth is over the qosdown limit, a packet to the client will be delayed
+until the number of bandwidth become below the qosdown limit.
+\&\fBK\fR(kilo), \fBM\fR(mega) and \fBG\fR(giga) unit are available.
+.IP "\fBsorryserver =\fR\fIip_address|hostname[:portnumber|servicename]\fR" 4
+.IX Item "sorryserver =ip_address|hostname[:portnumber|servicename]"
+Defines a sorry server by IP-address (or hostname) and port (or
+servicename). Firewall-mark settings cannot be set.
+If the number of requests to the virtual service cross the maxconn limit, the requests would be
+redirected to the sorry server.
+.IP "\fBchecktype = negotiate\fR|\fBconnect\fR|\fIN\fR|\fBping\fR|\fBcustom\fR|\fBoff\fR|\fBon\fR" 4
+.IX Item "checktype = negotiate|connect|N|ping|custom|off|on"
+Type of check to perform. Negotiate sends a request and matches a receive
+string. Connect only attempts to make a \s-1TCP/IP\s0 connection, thus the
+request and receive strings may be omitted.  If checktype is a number then
+negotiate and connect is combined so that after each N connect attempts one
+negotiate attempt is performed. This is useful to check often if a service
+answers and in much longer intervals a negotiating check is done. Ping
+means that \s-1ICMP\s0 ping will be used to test the availability of real servers.
+Ping is also used as the connect check for \s-1UDP\s0 services. Custom means that
+custom command will be used to test the availability of real servers.
+Off means no checking will take place and no real or fallback servers will
+be activated.  On means no checking will take place and real servers will
+always be activated. Default is \fInegotiate\fR.
+.IP "\fBservice = ftp\fR|\fBsmtp\fR|\fBhttp\fR|\fBpop\fR|\fBnntp\fR|\fBimap\fR|\fBldap\fR|\fBhttps\fR|\fBdns\fR|\fBmysql\fR|\fBpgsql\fR|\fBsip\fR|\fBnone\fR" 4
+.IX Item "service = ftp|smtp|http|pop|nntp|imap|ldap|https|dns|mysql|pgsql|sip|none"
+The type of service to monitor when using checktype=negotiate. None denotes
+a service that will not be monitored. If the port specified for the virtual
+server is 21, 25, 53, 80, 110, 119, 143, 389, 443, 3306, 5432 or 5060 then
+the default is \fBftp\fR, \fBsmtp\fR, \fBdns\fR, \fBhttp\fR, \fBpop\fR, \fBnntp\fR, \fBimap\fR,
+\&\fBldap\fR, \fBhttps\fR, \fBmysql\fR, \fBpgsql\fR or \fBsip\fR respectively.  Otherwise the
+default service is \fBnone\fR.
+.IP "\fBcheckport = \fR\fIn\fR" 4
+.IX Item "checkport = n"
+Number of port to monitor. Sometimes check port differs from service port.
+Default is port specified for the real server.
+.ie n .IP "\fBrequest = ""\fR\fIuri to requested object\fR\fB""\fR" 4
+.el .IP "\fBrequest = ``\fR\fIuri to requested object\fR\fB''\fR" 4
+.IX Item "request = ""uri to requested object"""
+This object will be requested each checkinterval seconds on each real
+server.  The string must be inside quotes. Note that this string may be
+overridden by an optional per real-server based request\-string.
+.Sp
+For a \s-1DNS\s0 check this should the name of an A record, or the address
+of a \s-1PTR\s0 record to look up.
+.Sp
+For a MySQL or PostgreSQL checks, this should be a \s-1SQL\s0 query.
+The data returned is not checked, only that the
+answer is one or more rows.  This is a required setting.
+.ie n .IP "\fBreceive = ""\fR\fIregexp to compare\fR\fB""\fR" 4
+.el .IP "\fBreceive = ``\fR\fIregexp to compare\fR\fB''\fR" 4
+.IX Item "receive = ""regexp to compare"""
+If the requested result contains this \fIregexp to compare\fR, the real server
+is declared alive. The regexp must be inside quotes. Keep in mind that
+regexps are not plain strings and that you need to escape the special
+characters if they should as literals. Note that this regexp may be
+overridden by an optional per real-server based receive regexp.
+.Sp
+For a \s-1DNS\s0 check this should be any one the A record's addresses or
+any one of the \s-1PTR\s0 record's names.
+.Sp
+For a MySQL check, the receive setting is not used.
+.IP "\fBhttpmethod = \s-1GET\s0\fR|\fB\s-1HEAD\s0\fR" 4
+.IX Item "httpmethod = GET|HEAD"
+Sets the \s-1HTTP\s0 method, which should be used to fetch the \s-1URI\s0 specified in
+the request\-string. \s-1GET\s0 is the method used by default if the parameter is
+not set. If \s-1HEAD\s0 is used, the receive-string should be unset.
+.ie n .IP "\fBvirtualhost = ""\fR\fIhostname\fR\fB""\fR" 4
+.el .IP "\fBvirtualhost = ``\fR\fIhostname\fR\fB''\fR" 4
+.IX Item "virtualhost = ""hostname"""
+Used when using a negotiate check with \s-1HTTP\s0 or \s-1HTTPS\s0. Sets the host header
+used in the \s-1HTTP\s0 request.  In the case of \s-1HTTPS\s0 this generally needs to
+match the common name of the \s-1SSL\s0 certificate. If not set then the host
+header will be derived from the request url for the real server if present.
+As a last resort the \s-1IP\s0 address of the real server will be used.
+.ie n .IP "\fBlogin = ""\fR\fIusername\fR\fB""\fR" 4
+.el .IP "\fBlogin = ``\fR\fIusername\fR\fB''\fR" 4
+.IX Item "login = ""username"""
+Username to use to login to \s-1FTP\s0, \s-1POP\s0, \s-1IMAP\s0, MySQL and PostgreSQL servers.
+For \s-1FTP\s0, the default is anonymous. For \s-1POP\s0 and \s-1IMAP\s0, the default is the
+empty string, in which case authentication will not be attempted.
+For a MySQL and PostgreSQL, the username must be provided.
+.Sp
+For \s-1SIP\s0 the username is used as both the to and from address
+for an \s-1OPTIONS\s0 query. If unset it defaults to l7directord\e@<hostname>,
+hostname is derived as per the passwd option below.
+.ie n .IP "\fBpasswd = ""\fR\fIpassword\fR\fB""\fR" 4
+.el .IP "\fBpasswd = ``\fR\fIpassword\fR\fB''\fR" 4
+.IX Item "passwd = ""password"""
+Password to use to login to \s-1FTP\s0, \s-1POP\s0, \s-1IMAP\s0, MySQL and PostgreSQL servers.
+Default is for \s-1FTP\s0 is l7directord\e@<hostname>, where hostname is the
+environment variable \s-1HOSTNAME\s0 evaluated at run time, or sourced from uname
+if unset. The default for all other services is an empty password, in the
+case of MySQL and PostgreSQL this means authentication will not be
+performed.
+.ie n .IP "\fBdatabase = ""\fR\fIdatabasename\fR\fB""\fR" 4
+.el .IP "\fBdatabase = ``\fR\fIdatabasename\fR\fB''\fR" 4
+.IX Item "database = ""databasename"""
+Database to use for MySQL and PostgreSQL servers, this is the database that
+the query (set by \fBreceive\fR above) will be performed against.  This is a
+required setting.
+.IP "\fBscheduler =\fR \fIscheduler_name\fR" 4
+.IX Item "scheduler = scheduler_name"
+Scheduler to be used by UltraMonkey\-L7 for load balancing.
+The available schedulers are only \fBlc\fR and \fBrr\fR. The default is \fIrr\fR.
+.IP "\fBprotocol = tcp\fR" 4
+.IX Item "protocol = tcp"
+Protocol to be used. \fBl7vsadm\fR supports only \fBtcp\fR.
+Since the virtual is specified as an \s-1IP\s0 address and port, it would be tcp
+and will default to tcp.
+.ie n .IP "\fBrealdowncallback = ""\fR\fI/path/to/realdowncallback\fR\fB""\fR" 4
+.el .IP "\fBrealdowncallback = ``\fR\fI/path/to/realdowncallback\fR\fB''\fR" 4
+.IX Item "realdowncallback = ""/path/to/realdowncallback"""
+If this directive is defined, \fBl7directord\fR automatically calls
+the executable \fI/path/to/realdowncallback\fR after a real server's status
+changes to down. The first argument to the realdowncallback is the real 
+server's IP-address and port (ip_address:portnumber).
+.ie n .IP "\fBrealrecovercallback = ""\fR\fI/path/to/realrecovercallback\fR\fB""\fR" 4
+.el .IP "\fBrealrecovercallback = ``\fR\fI/path/to/realrecovercallback\fR\fB''\fR" 4
+.IX Item "realrecovercallback = ""/path/to/realrecovercallback"""
+If this directive is defined, \fBl7directord\fR automatically calls
+the executable \fI/path/to/realrecovercallback\fR after a real server's status
+changes to up. The first argument to the realrecovercallback is the real 
+server's IP-address and port (ip_address:portnumber).
+.ie n .IP "\fBcustomcheck = ""\fR\fIcustom check command\fR\fB""\fR" 4
+.el .IP "\fBcustomcheck = ``\fR\fIcustom check command\fR\fB''\fR" 4
+.IX Item "customcheck = ""custom check command"""
+If this directive is defined and set \fBchecktype\fR to custom, \fBl7directord\fR
+exec custom command for real servers health checking. Only if custom command
+returns 0, real servers will change to up. Otherwise real servers will change
+to down. Custom check command has some macro string. See below.
+.RS 4
+.IP "\fB_IP_\fR" 4
+.IX Item "_IP_"
+Change to real server \s-1IP\s0 address.
+.IP "\fB_PORT_\fR" 4
+.IX Item "_PORT_"
+Change to real server port number.
+.RE
+.RS 4
+.RE
+.SH "FILES"
+.IX Header "FILES"
+\&\fB/etc/ha.d/conf/l7directord.cf\fR
+.PP
+\&\fB/var/log/l7vs/l7directord.log\fR
+.PP
+\&\fB/var/run/l7directord.\fR\fIconfiguration\fR\fB.pid\fR
+.PP
+\&\fB/etc/services\fR
+.SH "SEE ALSO"
+.IX Header "SEE ALSO"
+l7vsadm, heartbeat
+.SH "AUTHORS"
+.IX Header "AUTHORS"
+\&\s-1NTT\s0 \s-1COMWARE\s0