Smokeping_probes_Curl(3)

πŸ’– NAME πŸ’–

okay so bestie, welcome to the Smokeping_probes_Curl(3) page from the SmokePing manual πŸ’…

Smokeping::probes::Curl β€” a curl(1) probe for SmokePing.


πŸ¦‹ OVERVIEW πŸ¦‹

It fetches an HTTP or HTTPS URL using curl(1). iconic behavior, no cap ✨


✨ 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 πŸ’…

short and sweet: (see curl(1) for details of the options below) 🫢


πŸŽ€ VARIABLES πŸŽ€

πŸ§ͺ Supported probe-specific variables

  • binary β€” where your curl binary lives. 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 might want to stop them all from hitting your network at the exact same time πŸ‘€. This probe-specific offset changes the point in time when each probe runs. 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 themselves β€” it’s just a matter of when data acquisition 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 it’s 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_" prefix, 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 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.
  • expect β€” require the given text to appear somewhere in the response, otherwise the probe is treated as a failure. Example value: Status: green. Default value: (blank in the manual).
  • 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.
  • 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.
  • 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 🌸

  • bestie, lowkey consider setting a lower value for the pings variable than the default 20, because 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. periodt πŸ’…

🌈 SEE ALSO 🌈

curl(1), <http://curl.haxx.se/> β€” go read, iykyk πŸ¦‹


made with πŸ’– by the SmokePing girlies β€” this is Smokeping_probes_Curl(3), version 2.9.0, dated 2025-06-30 🫢✨

πŸ“¦ where this page comes from