doc::Smokeping::probes::Curl(3)    SmokePing   doc::Smokeping::probes::Curl(3)



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 dif-
           ferent from the one specified in the 'Database' section. Note that
           the step in the RRD files is fixed when they are originally gener-
           ated, 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 argu-
           ments 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.exam-
           ple.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 argu-
           ments 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 redi-
           rection 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_redi-
           rects'.

           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 num-
           ber 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 sup-
           ports.  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 ear-
       lier 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/>



2.4.2                             2008-07-24   doc::Smokeping::probes::Curl(3)
