Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
Smokeping_probes_Curl(3)	    SmokePing		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
      /^influx_.+/ = influx_location = In the basement
      agent = User-Agent: Lynx/2.8.4rel.1 libwww-FM/2.14 SSL-MM/1.4.1 OpenSSL/0.9.6c
      expect = Status: green
      extraargs = -6 --head --user user:password
      extrare = / /
      follow_redirects = yes
      include_redirects = yes
      insecure_ssl = 1
      interface = eth0
      pings = 5
      require_zero_status = yes
      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
      /^influx_.+/ = influx_location = In the basement
      agent = User-Agent: Lynx/2.8.4rel.1 libwww-FM/2.14 SSL-MM/1.4.1 OpenSSL/0.9.6c
      expect = Status: green
      extraargs = -6 --head --user user:password
      extrare = / /
      follow_redirects = yes
      include_redirects = yes
      insecure_ssl = 1
      interface = eth0
      pings = 5
      require_zero_status = yes
      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 acquisition is initiated.  (This vari-
	 able is only applicable if the variable 'concurrentprobes' is set in
	 the 'General' section.)

	 Example value: 50%

     stepDuration 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:

     /^influx_.+/
	 This is a tag that will be sent to influxdb and has no impact on the
	 probe measurement. The tag name will be sent without the "influx_" pre-
	 fix, which will be replaced with "tag_" instead. Tags can be used for
	 filtering.

	 Example value: influx_location = In the basement

     agent
	 The "-A" curl(1) option.  This is a full HTTP User-Agent header includ-
	 ing 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

     expect
	 Require the given text to appear somewhere in the response, otherwise
	 probe is treated as a failure

	 Example value: Status: green

	 Default value:

     extraargs
	 Any extra arguments you might want to hand to curl(1). The arguments
	 should be separated by the regexp specified in "extrare", which con-
	 tains 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 con-
	 taining 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 se-
	 cure certificate chain to a trusted CA. Note that if you are going to
	 monitor https targets, you'll probably have to either enable this op-
	 tion 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 ad-
	 dress 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

     require_zero_status
	 If this variable is set to 'yes', responses will only be counted if
	 Curl's exit status is '0'. This is useful for reporting timeouts as
	 losses rather than delayed responses.

	 Example value: yes

	 Default value: no

     ssl2The "-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/>

2.9.0				   2026-08-04		Smokeping_probes_Curl(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=Smokeping_probes_Curl&sektion=3&manpath=FreeBSD+Ports+15.1.quarterly>

home | help