relayctl
—
control the relay daemon
relayctl |
command [argument ...] |
The relayctl
program controls the
relayd(8)
daemon.
The following commands are available:
host
disable
[name |
id]
- Disable a host. Treat it as though it were always down.
host
enable
[name |
id]
- Enable the host. Start checking its health again.
load
filename
- Reload the configuration from the specified file.
monitor
- Continuously report any changes in the host checking engine and the
pf(4)
engine.
poll
- Schedule an immediate check of all hosts.
redirect
disable
[name |
id]
- Disable a redirection. If it has
pf(4)
redirection rules installed, remove them. Mark the redirection's main
table and – if applicable – disable the backup table as
well.
redirect
enable
[name |
id]
- Enable a redirection. Mark the redirection's main table and – if
applicable – enable the backup table as well.
reload
- Reload the configuration file.
show
hosts
- Show detailed status of hosts and tables. It will also print the last
error for failed host checks; see the
DIAGNOSTICS section below.
show
redirects
- Show detailed status of redirections including the current and average
access statistics. The statistics will be updated every minute.
Redirections using the
sticky-address
option will
count the number of sticky states, not the total number of redirected
connections.
show
relays
- Show detailed status of relays including the current and average access
statistics. The statistics will be updated every minute.
show
sessions
- Dump the complete list of running relay sessions.
show
summary
- Display a list of all relays, redirections, tables, and hosts.
table
disable
[name |
id]
- Disable a table. Consider all hosts disabled. If it is a main table of a
redirection which has a non-empty backup table, swap the contents of the
pf(4)
table with those of the backup table.
table
enable
[name |
id]
- Enable a table. Start doing checks for all hosts that aren't individually
disabled again.
- /var/run/relayd.sock
- UNIX-domain socket used for communication with
relayd(8).
If a host is down and a previous check failed, relayctl
will display the last error in the output of the show
hosts
command. This is especially useful for debugging server or
configuration failures. The following errors will be reported:
- none
- No specific error was reported by the check engine.
- aborted
- All checks were aborted by an external event, like a configuration reload.
- interval timeout
- The check did not finish in the configured time of an interval. This can
happen if there are too many hosts that have to be checked by
relayd(8)
and can be avoided by increasing the global
interval
option in
relayd.conf(5).
- icmp read timeout
-
- ssl read timeout
-
- tcp read timeout
- The check failed because the remote host did not send a reply within the
configured timeout.
- icmp write timeout
-
- ssl write timeout
-
- tcp write timeout
-
- ssl connect timeout
-
- tcp connect timeout
- The check failed because
relayd(8)
was not ready to send the request within the configured timeout.
- ssl connect error
-
- ssl read error
-
- ssl write error
-
- tcp connect error
-
- tcp read failed
-
- tcp write failed
- An I/O error occurred. This indicates that
relayd(8)
was running low on resources, file descriptors, or was too busy to run the
request. It can also indicate that an SSL/TCP protocol error occurred or
that the connection was unexpectedly aborted.
- ssl connect failed
-
- tcp connect failed
- The check failed because the protocol handshake did not succeed in opening
a stateful connection with the remote host.
- script failed
- The external script executed by the check did not return a valid return
code.
- send/expect failed
- The payload data returned by the remote host did not match the expected
pattern.
- http code malformed
-
- http digest malformed
- The remote host did not return a valid HTTP header or body.
- http code mismatch
- The remote host did not return a matching HTTP error code. This may
indicate a real server problem (a server error, the page was not found,
permission was denied) or a configuration error. For example, it is a very
common mistake that
relayd(8)
was configured to expect a HTTP 200 OK status but the host is returning a
HTTP 302 Found redirection. See
relayd.conf(5)
for more information on validating the HTTP return code.
- http digest mismatch
- The remote host did not return the expected content and the computed
digest was different to the configured value. See
relayd.conf(5)
for more information on validating the digest.
The relayctl
program, formerly known as
hoststatectl
, first appeared in
OpenBSD 4.1. It was renamed to
relayctl
in OpenBSD 4.3.