NAME¶
Smokeping::probes::Curl - a
curl(1) probe for SmokePing
OVERVIEW¶
Fetches an HTTP or HTTPS URL using
curl(1).
SYNOPSIS¶
*** Probes ***
+Curl
binary = /usr/bin/curl
forks = 5
offset = 50%
step = 300
# The following variables can be overridden in each target section
agent = User-Agent: Lynx/2.8.4rel.1 libwww-FM/2.14 SSL-MM/1.4.1 OpenSSL/0.9.6c
extraargs = -6 --head --user user:password
extrare = / /
follow_redirects = yes
include_redirects = yes
insecure_ssl = 1
interface = eth0
pings = 5
ssl2 = 1
timeout = 20
urlformat = http://%host%/ # mandatory
# [...]
*** Targets ***
probe = Curl # if this should be the default probe
# [...]
+ mytarget
# probe = Curl # if the default probe is something else
host = my.host
agent = User-Agent: Lynx/2.8.4rel.1 libwww-FM/2.14 SSL-MM/1.4.1 OpenSSL/0.9.6c
extraargs = -6 --head --user user:password
extrare = / /
follow_redirects = yes
include_redirects = yes
insecure_ssl = 1
interface = eth0
pings = 5
ssl2 = 1
timeout = 20
urlformat = http://%host%/ # mandatory
DESCRIPTION¶
(see
curl(1) for details of the options below)
VARIABLES¶
Supported probe-specific variables:
- binary
- The location of your curl binary.
Default value: /usr/bin/curl
- forks
- Run this many concurrent processes at maximum
Example value: 5
Default value: 5
- offset
- If you run many probes concurrently you may want to prevent
them from hitting your network all at the same time. Using the
probe-specific offset parameter you can change the point in time when each
probe will be run. Offset is specified in % of total interval, or
alternatively as 'random', and the offset from the 'General' section is
used if nothing is specified here. Note that this does NOT influence the
rrds itself, it is just a matter of when data acqusition is initiated.
(This variable is only applicable if the variable 'concurrentprobes' is
set in the 'General' section.)
Example value: 50%
- step
- Duration of the base interval that this probe should use,
if different from the one specified in the 'Database' section. Note that
the step in the RRD files is fixed when they are originally generated, and
if you change the step parameter afterwards, you'll have to delete the old
RRD files or somehow convert them. (This variable is only applicable if
the variable 'concurrentprobes' is set in the 'General' section.)
Example value: 300
Supported target-specific variables:
- agent
- The "-A" curl(1) option. This is a full
HTTP User-Agent header including the words "User-Agent:". Note
that it does not need any quotes around it.
Example value: User-Agent: Lynx/2.8.4rel.1 libwww-FM/2.14 SSL-MM/1.4.1
OpenSSL/0.9.6c
- extraargs
- Any extra arguments you might want to hand to
curl(1). The arguments should be separated by the regexp specified
in "extrare", which contains just the space character ("
") by default.
Note that curl will be called with the resulting list of arguments without
any shell expansion. If you need to specify any arguments containing
spaces, you should set "extrare" to something else.
As a complicated example, to explicitly set the "Host:" header in
Curl requests, you need to set "extrare" to something else, eg.
"/;/", and then specify "extraargs = --header;Host:
www.example.com".
Example value: -6 --head --user user:password
- extrare
- The regexp used to split the extraargs string into an
argument list, in the "/regexp/" notation. This contains just
the space character (" ") by default, but if you need to specify
any arguments containing spaces, you can set this variable to a different
value.
Example value: / /
Default value: / /
- follow_redirects
- If this variable is set to 'yes', curl will follow any HTTP
redirection steps (the '-L' option). If set to 'no', HTTP Location:
headers will not be followed. See also 'include_redirects'.
Example value: yes
Default value: no
- include_redirects
- If this variable is set to 'yes', the measurement result
will include the time spent on following any HTTP redirection steps. If
set to 'no', only the last step is measured. See also 'follow_redirects'.
Example value: yes
Default value: no
- insecure_ssl
- The "-k" curl(1) option. Accept SSL
connections that don't have a secure certificate chain to a trusted CA.
Note that if you are going to monitor https targets, you'll probably have
to either enable this option or specify the CA path to curl through
extraargs below. For more info, see the curl(1) manual page.
Example value: 1
- interface
- The "--interface" curl(1) option. Bind to
a specific interface, IP address or host name.
Example value: eth0
- pings
- How many pings should be sent to each target, if different
from the global value specified in the Database section. Note that the
number of pings in the RRD files is fixed when they are originally
generated, and if you change this parameter afterwards, you'll have to
delete the old RRD files or somehow convert them.
Example value: 5
- ssl2
- The "-2" curl(1) option. Force SSL2.
Example value: 1
- timeout
- The "-m" curl(1) option. Maximum timeout
in seconds.
Example value: 20
Default value: 10
- urlformat
- The template of the URL to fetch. Can be any one that curl
supports. Any occurrence of the string '%host%' will be replaced with the
host to be probed.
Example value: http://%host%/
This setting is mandatory.
AUTHORS¶
Gerald Combs <gerald [AT] ethereal.com>
Niko Tyni <ntyni@iki.fi>
NOTES¶
You should consider setting a lower value for the "pings" variable
than the default 20, as repetitive URL fetching may be quite heavy on the
server.
The URL to be tested used to be specified by the variable 'url' in earlier
versions of Smokeping, and the 'host' setting did not influence it in any way.
The variable name has now been changed to 'urlformat', and it can (and in most
cases should) contain a placeholder for the 'host' variable.
SEE ALSO¶
curl(1), <
http://curl.haxx.se/>