.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.42) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is >0, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{\ . if \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{\ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "Smokeping_probes_Curl 3" .TH Smokeping_probes_Curl 3 "2022-10-15" "2.7.3" "SmokePing" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" Smokeping::probes::Curl \- a curl(1) probe for SmokePing .SH "OVERVIEW" .IX Header "OVERVIEW" Fetches an \s-1HTTP\s0 or \s-1HTTPS URL\s0 using \fBcurl\fR\|(1). .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& *** 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 \& 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 \& 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 .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" (see \fBcurl\fR\|(1) for details of the options below) .SH "VARIABLES" .IX Header "VARIABLES" Supported probe-specific variables: .IP "binary" 4 .IX Item "binary" The location of your curl binary. .Sp Default value: /usr/bin/curl .IP "forks" 4 .IX Item "forks" Run this many concurrent processes at maximum .Sp Example value: 5 .Sp Default value: 5 .IP "offset" 4 .IX Item "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 \s-1NOT\s0 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.) .Sp Example value: 50% .IP "step" 4 .IX Item "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 \s-1RRD\s0 files is fixed when they are originally generated, and if you change the step parameter afterwards, you'll have to delete the old \s-1RRD\s0 files or somehow convert them. (This variable is only applicable if the variable 'concurrentprobes' is set in the 'General' section.) .Sp Example value: 300 .PP Supported target-specific variables: .IP "agent" 4 .IX Item "agent" The \*(L"\-A\*(R" \fBcurl\fR\|(1) option. This is a full \s-1HTTP\s0 User-Agent header including the words \*(L"User-Agent:\*(R". Note that it does not need any quotes around it. .Sp Example value: User-Agent: Lynx/2.8.4rel.1 libwww\-FM/2.14 \s-1SSL\-MM/1.4.1\s0 OpenSSL/0.9.6c .IP "expect" 4 .IX Item "expect" Require the given text to appear somewhere in the response, otherwise probe is treated as a failure .Sp Example value: Status: green .Sp Default value: .IP "extraargs" 4 .IX Item "extraargs" Any extra arguments you might want to hand to \fBcurl\fR\|(1). The arguments should be separated by the regexp specified in \*(L"extrare\*(R", which contains just the space character (\*(L" \*(R") by default. .Sp 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 \*(L"extrare\*(R" to something else. .Sp As a complicated example, to explicitly set the \*(L"Host:\*(R" header in Curl requests, you need to set \*(L"extrare\*(R" to something else, eg. \*(L"/;/\*(R", and then specify \f(CW\*(C`extraargs = \-\-header;Host: www.example.com\*(C'\fR. .Sp Example value: \-6 \-\-head \-\-user user:password .IP "extrare" 4 .IX Item "extrare" The regexp used to split the extraargs string into an argument list, in the \*(L"/regexp/\*(R" notation. This contains just the space character (\*(L" \*(R") by default, but if you need to specify any arguments containing spaces, you can set this variable to a different value. .Sp Example value: / / .Sp Default value: / / .IP "follow_redirects" 4 .IX Item "follow_redirects" If this variable is set to 'yes', curl will follow any \s-1HTTP\s0 redirection steps (the '\-L' option). If set to 'no', \s-1HTTP\s0 Location: headers will not be followed. See also 'include_redirects'. .Sp Example value: yes .Sp Default value: no .IP "include_redirects" 4 .IX Item "include_redirects" If this variable is set to 'yes', the measurement result will include the time spent on following any \s-1HTTP\s0 redirection steps. If set to 'no', only the last step is measured. See also 'follow_redirects'. .Sp Example value: yes .Sp Default value: no .IP "insecure_ssl" 4 .IX Item "insecure_ssl" The \*(L"\-k\*(R" \fBcurl\fR\|(1) option. Accept \s-1SSL\s0 connections that don't have a secure certificate chain to a trusted \s-1CA.\s0 Note that if you are going to monitor https targets, you'll probably have to either enable this option or specify the \s-1CA\s0 path to curl through extraargs below. For more info, see the \&\fBcurl\fR\|(1) manual page. .Sp Example value: 1 .IP "interface" 4 .IX Item "interface" The \*(L"\-\-interface\*(R" \fBcurl\fR\|(1) option. Bind to a specific interface, \s-1IP\s0 address or host name. .Sp Example value: eth0 .IP "pings" 4 .IX Item "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 \s-1RRD\s0 files is fixed when they are originally generated, and if you change this parameter afterwards, you'll have to delete the old \s-1RRD\s0 files or somehow convert them. .Sp Example value: 5 .IP "require_zero_status" 4 .IX Item "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. .Sp Example value: yes .Sp Default value: no .IP "ssl2" 4 .IX Item "ssl2" The \*(L"\-2\*(R" \fBcurl\fR\|(1) option. Force \s-1SSL2.\s0 .Sp Example value: 1 .IP "timeout" 4 .IX Item "timeout" The \*(L"\-m\*(R" \fBcurl\fR\|(1) option. Maximum timeout in seconds. .Sp Example value: 20 .Sp Default value: 10 .IP "urlformat" 4 .IX Item "urlformat" The template of the \s-1URL\s0 to fetch. Can be any one that curl supports. Any occurrence of the string '%host%' will be replaced with the host to be probed. .Sp Example value: http://%host%/ .Sp This setting is mandatory. .SH "AUTHORS" .IX Header "AUTHORS" .Vb 2 \& Gerald Combs \& Niko Tyni .Ve .SH "NOTES" .IX Header "NOTES" You should consider setting a lower value for the \f(CW\*(C`pings\*(C'\fR variable than the default 20, as repetitive \s-1URL\s0 fetching may be quite heavy on the server. .PP The \s-1URL\s0 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. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fBcurl\fR\|(1),