Commit graph

2190 commits

Author SHA1 Message Date
Sven Nierlein
3b96044248 fix check_curl: OpenSSL SSL_read: error:0A000126:SSL routines::unexpected eof while reading, errno 0
using check_curl on a probably embedded device responding as 'Server: GoAhead-Webs'

    %> check_curl -H ... -S -vvv

    > GET / HTTP/1.1
    Host: ...
    User-Agent: check_curl/v2.4.0 (monitoring-plugins 2.4.0, libcurl/7.76.1 OpenSSL/3.0.7 zlib/1.2.11 brotli/1.0.9 libidn2/2.3.0 libpsl/0.21.1 (+libidn2/2.3.0) libssh/0.10.4/openssl/zlib nghttp2/1.43.0)
    Accept: */*
    Connection: close

    * Mark bundle as not supporting multiuse
    * HTTP 1.0, assume close after body
    < HTTP/1.0 302 Redirect
    < Server: GoAhead-Webs
    < Date: Tue Mar 26 17:57:16 2019
    < Cache-Control: no-cache, no-store, must-revalidate,private
    < Pragma: no-cache
    < Expires: 0
    < Content-Type: text/html
    < X-Frame-Options: sameorigin
    < X-XSS-Protection: 1; mode=block
    < X-Content-Type-Options: nosniff
    < Location: https://...
    <
    * OpenSSL SSL_read: error:0A000126:SSL routines::unexpected eof while reading, errno 0
    * Closing connection 0

reading the discussion on https://github.com/openssl/openssl/discussions/22690 suggest to set the option SSL_OP_IGNORE_UNEXPECTED_EOF
which makes check_curl behave like check_http at this point.
Since this is a rather new flag, fencing it in ifdefs.
And since there can only be one ssl ctx function, we need to move both tasks into one function.
2024-10-10 15:54:28 +02:00
Lorenz Kästle
bc6dda5286
Merge branch 'master' into check_curl_regex_state 2024-10-06 17:28:08 +02:00
Lorenz Kästle
91fa55f971
Merge pull request #2021 from monitoring-plugins/check_disk_static_fixes
Check disk static fixes
2024-09-27 14:19:39 +02:00
Lorenz Kästle
fb5175aed6 check_disk: remove unused variables and functions 2024-09-27 13:53:24 +02:00
Lorenz Kästle
7ca72ecace check_disk: Declare global variables static
Variables only used in that specific translation unit should be static
to actually communicate that fact.
Also allows the compiler to detect unused (global) variables.
2024-09-27 13:51:21 +02:00
RincewindsHat
b1e96a3bf3 check_snmp: Remove unused PP-macros 2024-09-27 11:58:42 +02:00
RincewindsHat
3ba660889a check_snmp: Declare most variables as static 2024-09-27 11:57:38 +02:00
Lorenz Kästle
a378134ddc
Merge pull request #2015 from RincewindsHat/fix/check_mysql_variables
check_mysql:
 * remove unused variables
 * convert two practical booleans to real `bool`
2024-09-06 01:51:23 +02:00
Lorenz Kästle
75d5c51207 Remove experimental state from check_curl 2024-08-29 18:20:35 +02:00
Lorenz Kästle
4f7ee05786 check_mysql: Label some booleans correctly 2024-08-28 19:20:31 +02:00
Lorenz Kästle
584cca3a96 check_mysql: remove unused global variables 2024-08-28 19:19:16 +02:00
Lorenz Kästle
2b8b66d41e
Merge pull request #2001 from RincewindsHat/check_snmp_protocoll_documentation
Add more documentation to the help page of check_snmp regarding authe…
2024-08-28 10:21:12 +02:00
RincewindsHat
af097aa364 check_curl: change help for --state-regex again to fix formatting 2024-08-19 15:33:17 +02:00
RincewindsHat
b6c72064a5 check_curl: Parse state-regex option ignoring case
Previously the --state-regex option accepted only "critical" and
"warning" as values.
This commit changes the strcmp there to strcasecmp to be more tolerant
regarding the input.
2024-08-19 15:26:52 +02:00
RincewindsHat
46efe803cf check_curl: Fix help for state regex option
The help output of `check-curl` contained a typo,
the real option is `state-regex` and not `regex-state` as
the help suggests.
Also added the two possible options to avoid confusion.
2024-08-19 15:23:41 +02:00
Alvar Penning
9cdf2aec7f check_curl: Documentation for --certificate, --cookie-jar
From the mere help output for -C / --certificate, I was confused about
what its two integer parameters do. Unfortunately, I also missed out on
the explaining examples later. Since I like to have basic documentation
for each flag, I tried to make the arguments as short as possible.

The other fix was one hyphen too many for the --cookie-jar option.
2024-08-16 10:52:14 +02:00
Yannick Martin
78ce3144e3 check_curl: raise SSL issue when --continue-after-certificate is used
This change aims to raise the worst status between the SSL check and the HTTP check.

before:
check_curl -H www.google.fr -S --continue-after-certificate --certificate 4000,4000 ; echo $?
CRITICAL - Certificate '*.google.fr' expires in 74 day(s) (Tue 22 Oct 2024 12:53:52 PM GMT +0000).
HTTP OK: HTTP/2 200  - 22807 bytes in 0.076 second response time |time=0.075516s;;;0.000000;10.000000 size=22807B;;;0;
0

after:
/usr/lib/nagios/ovh/check_curl -H www.google.fr -S --continue-after-certificate --certificate 4000,4000 ; echo $?
CRITICAL - Certificate '*.google.fr' expires in 74 day(s) (Tue 22 Oct 2024 12:53:52 PM GMT +0000).
HTTP OK: HTTP/2 200  - 22840 bytes in 0.090 second response time |time=0.090463s;;;0.000000;10.000000 size=22840B;;;0;
2
2024-08-11 22:18:28 +02:00
Sven Nierlein
acbfbf3de6 check_curl: fix relative redirects on non-standard port
Having a webserver respond with a relative redirect as for ex. in `Location: /path/to.html`
check_curl would use the wrong standard http/https port instead
of crafting the absolute url using the given scheme/hostname and port.

Adding a new test case for this for check_http and check_curl. check_http did
it correct already, so no fix necessary there.

before:

    %>./check_curl -H 127.0.0.1 -p 50493 -f follow -u /redirect_rel -s redirected -vvv
    **** HEADER ****
    HTTP/1.1 302 Found
    ...
    Location: /redirect2

    ...
    * Seen redirect location /redirect2
    ** scheme: (null)
    ** host: (null)
    ** port: (null)
    ** path: /redirect2
    Redirection to http://127.0.0.1:80/redirect2

fixed:

    %>./check_curl -H 127.0.0.1 -p 50493 -f follow -u /redirect_rel -s redirected -vvv
    **** HEADER ****
    HTTP/1.1 302 Found
    ...
    Location: /redirect2

    ...
    * Seen redirect location /redirect2
    ** scheme: (null)
    ** host: (null)
    ** port: (null)
    ** path: /redirect2
    Redirection to http://127.0.0.1:50493/redirect2

Signed-off-by: Sven Nierlein <sven@nierlein.de>
2024-07-30 17:13:03 +02:00
Sven Nierlein
562deb749a
Merge branch 'master' into check_curl_features 2024-07-23 21:09:21 +02:00
Sven Nierlein
9e6361077b check_http: replace www.mozilla.com with monitoring-plugins.org
this makes tests more reliable if we test our own sites instead some 3rd party site.

Signed-off-by: Sven Nierlein <sven@consol.de>
2024-07-23 21:08:57 +02:00
Lorenz Kästle
86053441b6
check_ups: additional alarm conditions (#1961)
* check_ups:
   * Update copyright
   * General refactoring
   * code formatting
   * Add ALARM state from ups -> Critical
  * Set some more states to be warnings
2024-07-12 16:49:28 +02:00
RincewindsHat
26a979284d Fix typos 2024-05-21 14:27:21 +02:00
RincewindsHat
c862f705f3 Add more documentation to the help page of check_snmp regarding authentication and privacy options 2024-05-21 13:59:45 +02:00
Napsty
3deea4cc63 Adjust check_swap tests 2024-04-12 16:50:15 +02:00
Napsty
60614121d1 Adjust check_swap tests 2024-04-12 16:50:15 +02:00
Napsty
675f208476 Adjust check_swap tests 2024-04-12 16:50:15 +02:00
Napsty
9b4fab0664 Allow single threshold 2024-04-12 16:50:15 +02:00
Napsty
ee0f70486f Possibility to run check_swap without thresholds 2024-04-12 16:50:15 +02:00
Andreas Baumann
f29785f503 check_http/check_curl: added a --regex-state option to change the state of a regex check
from the default CRITICAL to something else (#1213)
2024-04-07 20:01:54 +02:00
Andreas Baumann
4c4031100a check_curl/check_http: clarified format of POST data (#1978) 2024-04-07 19:30:26 +02:00
Lorenz Kästle
7da6286995
check_load: remove unused code (#1998)
adaugherity noticed in issue #1965, that HAVE_PROC_LOADAVG is never
defined since the symbol was removed from configure quite some time ago.
This commit removes the dead code which would be used when the symbol
would have been defined.
2024-04-07 02:51:58 +02:00
Lorenz Kästle
d3faf13961
check_disk: Fail on missing arguments for --warning and --critical and fix a test case (#1935)
* check_disk: Fail on missing arguments for --warning and --critical
* Add new test function for percentage expressions and use it in check_disk
* Add error abort in tests if they fail to parse output
* Fix typo in test which probably broke the test since forever :-(
2024-03-27 00:36:41 +01:00
Lorenz Kästle
66f62dd336
check_ssh: patches from op5 (#1738)
* check_ssh: properly parse a delayed version control string

This resolves an issue with SSH servers which do not respond with their
version control string as the first thing in the SSH protocol version
exchange phase after connection establishment.

This patch also makes sure that we disregard a potential comment in the
version exchange string to avoid nonsense mismatches. In the future, we
might want to add the capability to match against a user specified comment.

In addition, the patch largely improves the communication towards the
server, which adds better protocol adherence.

Of course, new test cases are added to support the trigger and guard
against regressions of the bugs solved by this patch.

This fixes op5#7945 (https://bugs.op5.com/view.php?id=7945)

Signed-off-by: Anton Lofgren <alofgren@op5.com>

* check_ssh.t: Fix a few typos

Signed-off-by: Anton Lofgren <alofgren@op5.com>

* check_ssh: Handle non-alpha software versions

This patch fixes a bug where we would reject version control strings
that do not contain letters, because the assumption is made that they
always do. This is not required by the RFC however, and there exist
implementations that do not contain letters.

I've also added a few references to the RFC to make the process of
parsing the control string more apparent.

This fixes op5#8716 (https://bugs.op5.com/view.php?id=8716)

Signed-off-by: Anton Lofgren <alofgren@op5.com>

* check_ssh: Fix a typo in "remote-protocol parameter

remote-protcol -> remote-protocol

Signed-off-by: Anton Lofgren <alofgren@op5.com>

* Remove unused variable

* Formating fixes

* Update translations

* Remove merge conflict artefact from previous merge

* Set fixed include paths

* Improve code style to be slightly more readable

* Update test cases for different netcat behaviour and reduce sleep time

---------

Signed-off-by: Anton Lofgren <alofgren@op5.com>
Co-authored-by: Anton Lofgren <alofgren@op5.com>
2024-03-27 00:35:16 +01:00
Lorenz Kästle
8698a6d976
check_swap: replace another fake boolen and small improvements (#1996)
* check_swap: Change another fake boolen to a real one

* check_swap: Rename type since *_t is reserved for C standard types

* check_swap: Update copyright
2024-03-23 11:22:06 +01:00
waja
152acfabcf
check_nwstat: adds percentage used space (#1183)
* check_nwstat: adds percentage used space

This adds the new VPU parameter to the check_nwstat plugin.
This parameter returns the percentage used space on a Netware volume.
Now you can monitor your Netware volumes easy. We use it with a warning
85% and critical 90%.
eg: check_nwstat -H your.netware.host -v VPUvol1 -c 85 -w 90 returns
324653 MB (95%) used on volume vol1 - total 340212 MB|Used space in percent
on vol1=95;90;80;0;100.

* check_nwstat: Fixing whitespaces and tabs

* Update translation files

* check_nwstat: Use C99 booleans also with the patch

* Some formatting

---------

Co-authored-by: RincewindsHat <12514511+RincewindsHat@users.noreply.github.com>
2024-03-23 11:02:18 +01:00
Sven Nierlein
117cd8e4b8
check_disk increase alert precision (#1989)
* check_disk increase alert precision

Free disk percentage value was rounded to a full integer meaning it alerted about ~1% percent too early. This is about 10GB on a 1TB disk.
The warning and critical thresholds already support float values, so just the percentage calculation needs to be improved.

old:

    ./check_disk -w 35% -c 20% -p / -f -vvv
    Thresholds(pct) for / warn: 35.000000 crit 20.000000
    calling stat on /
    For /, used_pct=65 free_pct=35 used_units=286451 free_units=156651 total_units=443102 used_inodes_pct=11 free_inodes_pct=89 fsp.fsu_blocksize=4096 mult=1048576
    Freespace_units result=0
    Freespace% result=1
    Usedspace_units result=0
    Usedspace_percent result=0
    Usedinodes_percent result=0
    Freeinodes_percent result=0
    DISK WARNING - free space: WARNING [ / 156651MiB (35% inode=89%)];| /=300365643776B;302006979788;371700898201;0;464626122752

new:

    ./check_disk -w 35% -c 20% -p / -f -vvv
    Thresholds(pct) for / warn: 35.000000 crit 20.000000
    calling stat on /
    For /, used_pct=64.649722 free_pct=35.350278 used_units=286464 free_units=156637 total_units=443102 used_inodes_pct=10.016183 free_inodes_pct=89.983817 fsp.fsu_blocksize=4096 mult=1048576
    Freespace_units result=0
    Freespace% result=0
    Usedspace_units result=0
    Usedspace_percent result=0
    Usedinodes_percent result=0
    Freeinodes_percent result=0
    DISK OK - free space: / 156637MiB (35.4% inode=90%);| /=300379275264B;302006979788;371700898201;0;464626122752

* check_disk: adjust test case to support float precision
2024-02-23 18:24:28 +01:00
Lorenz Kästle
f6d7bf8656
Merge pull request #1987 from euniceremoquillo/Improve-negate-plugin-helptext
Improve negate plugin helptext
2024-02-12 16:26:43 +01:00
Eunice Remoquillo
2ab03d5f9c Added indentions for readability 2024-02-12 19:33:38 +08:00
Eunice Remoquillo
d2df046481 Improve negate plugin helptext
This commit updates the negate plugin's helptext as it is currently ambiguous.
2024-02-12 10:59:18 +08:00
Emmanuel Riviere
61218b2fdc check_curl: add haproxy protocol option 2024-02-01 16:08:16 +01:00
RincewindsHat
5275f81e38 check_snmp: Remove unused variable 2023-12-29 00:47:29 +01:00
RincewindsHat
ad864430b0 check_http: Remove self assignment of a variable and add some comments 2023-12-29 00:45:54 +01:00
RincewindsHat
c1c9abbfca Change iritating NULL assignment 2023-12-29 00:45:14 +01:00
Sven Hartge
c3ab362f87 check_procs: Generalise wording, remove mentioning of nrpe 2023-12-04 16:40:34 +01:00
Sven Hartge
45f633ef23 check_procs: Improve help text, mentioning excluded processes
Also reindent the code, converting stray tabs to 2 spaces.
2023-12-04 14:33:36 +01:00
Sven Hartge
897e4a8409 check_procs: ignore our own children
On systems with higher core counts check_procs will occasionally see
its own "ps" child process with a high CPU percentage and raise a
false alarm.

Ignoring the child processes of check_procs prevents this from happening.
2023-11-28 13:21:05 +01:00
Sven Nierlein
579db5a930 check_disk: fix ignore-missing in combination with includes (fixes #1963)
Using --ignore-missing together with regex matching and ignore option lead
to a wrong error message.

    ./check_disk -n -w 10% -c 5% -W 10% -r /dummy -i /dummy2
    DISK UNKNOWN: Paths need to be selected before using -i/-I. Use -A to select all paths explicitly

The use case here is a cluster with fail-over mounts. So it is a valid situation that
the regex match does not find anything in addtition with a ignore which also does not exist.

After this patch:

    ./check_disk -n -w 10% -c 5% -W 10% -r /dummy -i /dummy2
    DISK OK - No disks were found for provided parameters|
2023-11-27 13:04:10 +01:00
Sven Nierlein
f59c516011 check_disk: add -n short option for --ignore-missing
Signed-off-by: Sven Nierlein <sven@consol.de>
2023-11-27 13:04:10 +01:00
RincewindsHat
4f4fb3d9af check_dns: Remove unused variable 2023-11-23 00:12:49 +01:00
RincewindsHat
479ff15249 check_ntp_peer: Fixes for Wmaybe-unitialized and some restructuring 2023-11-23 00:11:39 +01:00