Releases: monitoring-plugins/monitoring-plugins
3.0.0-rc2
This is the second release candidate for version 3.0.0.
It contains mostly fixes to the 3.0.0-rc1 version and is also not a full release, but serves as a basis for test until we are mostly sure not to break production setups.
Changes
- check_nt was removed
check_nt is no long useful in current setups and hasn't been for some time. Therefore it was removed without a replacement. - check_ntp was removed
check_ntp was marked as deprecated for a long time due to systematic problems. It should not be in use anywhere and gets now removed to reduce code size and avoid misleading users. The replacements are check_ntp_time and check_ntp_peer - Bugfix for check_ntp_time
An errournous change in check_ntp_time made it fail in almost all use cases. This has been fixed
Properly separate perfdata from different subchecks A missing separator caused errors in perfdata strings (from C plugins) where two different data points where not properly separated and showed up as a single invalid data point - check_curl: append the query string from parsed uri
When using the old style follow method (-f follow) with check_curl the query string was not appended to the new target after redirect. This was fixed. (Thanks @inqrphl ) - Fixing different problems on OpenBSD
A few different things did prevent proper compilation and usage on OpenBSD, partly due to different naming conventions there. These are hopefully fixed now. Thanks to @oxzi and @sthen . - Gnulib update to stable-202507
3.0.0-rc1
Almost time for a new Monitoring Plugins release
This is a pre release since there are a lot of changes and we would like to give peope some time for testing and to find the new bugs :-)
The core parts of this release are significant changes to the C part of this project, which should be mostly internal and
not change the results in a significant way (meaning the input parameters mostly stay as they are and the exit code should remain the
same if the parameters are the same in the old version and context did not change).
The reality is, that big changes have unintented consequences which are not covered in the test cases or some consequences were not in our scope at all.
Therefore the pre release.
What has changed?
The broad picture
The relevant changes were done in the C part mostly and were introduced to make working on the project easier.
The code is now uniformly formatted with clang-format (config file is in this repository) and a lot of refactoring went into getting more uniform and ideal "dumber" code (meaning easier to read and to think about).
Also some steps were taken to
get to a uniform code base regarding the output.
The idea here is, that each run of a Monitoring Plugin consists of one or more individual "tests" which are summed to present
the overall result state. These "tests" can either be dependent on each other (if one can not connect to a server via network, building a TLS connection and building a HTTP exchange after that is not possible) or independent of each other (check_disk tests different filesystems independently).
This idea was inspired by some other Monitoring Plugins and feel like a good abstraction for the use case.
The consequence is, that there are now data structures which contain individual tests (a test result like OK or CRITICAL , some output and the perfdata part) and they are put together when everything else is done.
Practically the output is not anymore generated by each plugin individually, but centrally by a library (at least for those plugins which were already migrated to that new structure).
This allows to format the ouptut on stdout centrally, currently there is only the default format and an experimental JSON ouptut format (for testing purposes! not stable!).
Plugins with the new output
These Plugins are already migrated:
- check_apt
- check_by_ssh
- check_cluster
- check_curl
- check_dbi
- check_disk
- check_ftp
- check_http
- check_imap
- check_jabber
- check_ldap
- check_mrtg
- check_mrtgtraf
- check_mysql
- check_mysql_query
- check_nntp
- check_nntps
- check_ntp
- check_ntp_peer
- check_ntp_time
- check_pgsql
- check_pop
- check_simap
- check_smtp
- check_snmp
- check_spop
- check_ssh
- check_ssmtp
- check_swap
- check_tcp
- check_udp
- check_users
What else changed?
Of course some bugfixes and even small features found their way into the code, too
check_curl
- check_curl: fix relative redirects on non-standard port by @sni in #2010
- check_curl: raise SSL issue when --continue-after-certificate is used by @ymartin-ovh in #2011
- check_curl: Documentation for --certificate, --cookie-jar by @oxzi in #2012
- Remove experimental state from check_curl by @RincewindsHat in #2017
- Check curl regex state by @RincewindsHat in #2014
- fix check_curl: OpenSSL SSL_read: error:0A000126:SSL routines::unexpe… by @sni in #2022
- check_curl: update TLS notification notes by @RincewindsHat in #2050
- check_curl: enable internal cookie handling by @klaernie in #2052
- Fix/check curl sticky redir by @RincewindsHat in #2188
- check_curl: try to be more helpful in check_curls help by @RincewindsHat in #2186
- check_curl: abort redir if location is not found by @RincewindsHat in #2185
check_snmp
check_snmp links directly agains net-snmp instead of executing snmpget and parsing the output.
- Add more documentation to the help page of check_snmp regarding authe… by @RincewindsHat in #2001
- Check snmp fixes by @RincewindsHat in #2020
- Require snmpgetnext to build check_snmp by @orlitzky in #2062
- check_snmp: fix offset computation for INT by @RincewindsHat in #2190
check_dig
general changes regarding the Plugins and the library
- Add clang-format config file by @RincewindsHat in #2026
- Docs update by @RincewindsHat in #2027
- check_ifstatus: Add -d switch by @aanriot in #1637
- Cleanup/check dhcp by @RincewindsHat in #2029
- Improve readability and reliability of test prepare scripts by @RincewindsHat in #2031
- Cleanup/check ups by @RincewindsHat in #2030
- Cleanup check icmp by @RincewindsHat in #2028
- Cleanup for some more plugins by @RincewindsHat in #2035
- Cleanup/lib by @RincewindsHat in #2034
- Fix/check ssh variable stuff by @RincewindsHat in #2016
- check_disk: Initialize most variables by @RincewindsHat in #2039
- Sync with the latest Gnulib code (d4ec02b3cc) (gnulib v1.0) by @RincewindsHat in #2037
- Add dontfrag / random to fping check by @Firstyear in #2041
- tap: clang-format by @RincewindsHat in #2036
- Add missed changes for dontfrag by @Firstyear in #2042
- Fix RPM build tests by @RincewindsHat in #2044
- Cleanup/check apt by @RincewindsHat in #2032
- Cleanup/leftovers by @RincewindsHat in #2043
- Fix argument order of calloc on several occasions by @RincewindsHat in #2045
- Fix false formatting directive in printf by @RincewindsHat in #2046
- Check disk static fixes by @RincewindsHat in #2021
- add new github test workflow for debian:testing and fedora:rawhide by @sni in #2023
- Fix/check icmp rta min by @RincewindsHat in #2051
- fix typo in SUPPORT by @klaernie in #2053
- Fix breakage in rpm build test due to changes in mock by @RincewindsHat in #2057
- Refactor check_swap by @RincewindsHat in #1976
- Update configure.ac to Autoconf 2.71 syntax by @weiss in #2058
- check_http: fix documentation for --state-regex by @andreasbaumann in #2056
- Opttest tool by @RincewindsHat in #2065
- Remove ROADMAP by @RincewindsHat in #2066
- Feature/new output infra by @RincewindsHat in #2064
- Check by ssh missing options by @RincewindsHat in #2069
- Remove tinderbox related stuff by @RincewindsHat in #2072
- Check mysql replica check by @RincewindsHat in #2068
- Implement JSON output parsing for tests by @RincewindsHat in #2076
- Just use eval instead of Try::Tiny in tests by @RincewindsHat in #2077
- Refactor/check dbi by @RincewindsHat in #2075
- Refactor/check ssh by @RincewindsHat in #2071
- Refactor check dns by @RincewindsHat in https://github...
Monitoring Plugins v2.4.0 released!
The Monitoring Plugins Development Team is proud to announce version 2.4.0 of
the Monitoring Plugins! This release comes with various fixes provided by more
than 12 contributors. Many thanks to all of you!
For the list of notable changes in this release, see below.
Enhancements
General
- Use C99 booleans @RincewindsHat
- Improve negate plugin helptext @euniceremoquillo
- Add new test function for percentage expressions @RincewindsHat
Single Plugins
- check_mailq: remove trailing whitespaces @sni
- check_mailq: unify tabs/spaces @sni
- check_oracle: Shellcheck fixes @RincewindsHat
- check_ups: output ups.realpower if supported @sbraz
- check_disk: add -n short option for --ignore-missing @sni
- check_procs: Improve help text, mentioning excluded processes @shartge
- check_procs: Generalise wording, remove mentioning of nrpe @shartge
- check_curl: add haproxy protocol option @emriver
- check_disk: increase alert precision @sni
- check_ircd: IPv6 support @oxzi
- check_nwstat: adds percentage used space
- check_swap: Possibility to run check_swap without thresholds @Napsty
- check_ups: additional alarm conditions @RincewindsHat
- check_http/check_curl: added a --regex-state option to change the state of a regex check @andreasbaumann
Fixes
General
- Fixes for -Wsign-compare @RincewindsHat
- Fix logic in is_uint64_t to fix type-limit warning @RincewindsHat
- Prevent -lcrypto from showing up in Makefile dependencies @EricFromCanada
- Change irritating NULL assignment @RincewindsHat
Single Plugins
- check_dbi: Compiler warning for uninitialized variable @RincewindsHat
- check_curl: Initialize pointer before usage @RincewindsHat
- check_ntp: Initialize intermediate results in any case @RincewindsHat
- check_tcp: Fixes an error with using the wrong type for a variable @RincewindsHat
- check_mailq: exit on empty strings and exit early @sni
- check_users: Change option for sanity checking arguments to avoid segfault @RincewindsHat
- check_users: Update help to properly show that thresholds are ranges @RincewindsHat
- check_users: fix segfault @RincewindsHat
- check_dbi: Fix compiler warning for uninitialized variable @RincewindsHat
- check_curl: Initialize pointer before usage @RincewindsHat
- check_ntp: Initialize intermediate results in any case @RincewindsHat
- check_ntp_peer: Fixes for Wmaybe-unitialized and some restructuring @RincewindsHat
- check_dns: Remove unused variable @RincewindsHat
- check_disk: fix ignore-missing in combination with includes @sni
- check_procs: ignore our own children @shartge
- check_http: Remove self assignment of a variable and add some comments @RincewindsHat
- check_snmp: Remove unused variable @RincewindsHat
- check_dhcp: Make implicit conversion explicit to dismiss warning @RincewindsHat
- Ini Parser: Avoid freeing symbols from text section @RincewindsHat
- check_icmp: keep performance data order in case of none-reachable hosts @sni
- check_swap: Change another fake boolean to a real one @RincewindsHat
- check_swap: Rename type since *_t is reserved for C standard types @RincewindsHat
- check_ssh: Fix a typo in "remote-protocol parameter
- check_ssh: Handle non-alpha software versions
- check_ssh: properly parse a delayed version control string
- check_disk: Fail on missing arguments for --warning and --critical and fix a test case @RincewindsHat
- check_disk: Use new test function for percentage expressions @RincewindsHat
- check_load: remove unused code @RincewindsHat
- check_curl/check_http: clarified format of POST data @andreasbaumann
Full Changelog: v2.3.5...v2.4.0
Monitoring Plugins v2.3.5 released!
The Monitoring Plugins Development Team is proud to announce version 2.3.5 of
the Monitoring Plugins! This release comes just with a small fix preventing
the tarball from being built. Sorry for this.
For the list of notable changes in this release, see below.
Fixes
General
- Include maxfd.h in lib Makefile
Please also have a look into the changes from the 2.3.4 release,
you might have missed.
v2.3.4
Monitoring Plugins v2.3.4 released!
The Monitoring Plugins Development Team is proud to announce version 2.3.4 of
the Monitoring Plugins! This release comes with various fixes provided by more
than 30 contributors. Many thanks to all of you!
For the list of notable changes in this release, see below.
Enhancements
General
- Sync with the Gnulib code 668c0b8ffa
- Set autoconf prerequisite version to 2.64
- Remove sha1 and use sha256 in some parts of the plugin structure
Single Plugins
- check_curl: added --cookie-jar and doing proper cleanup of libcurl
- check_curl: Include all IPs from getaddrinfo() in curl DNS cache
- check_dhcp: Add dhcp rogue detection
- check_disk: add ignore-missing option to return OK for missing fs
- check_disk_smb: allow checking 0-sized resource (ex. IPC$)
- check_disk: The options to include or exclude specific file systems now allow the usage of regex(7)
- check_icmp: Add support to Jitter, MOS and Score
- check_mysql: Detect running mysqldump and handle it more gracefully
- check_procs: Implement --exclude-process to exclude specific processes
- check_smtp: add new longoption --tls
- check_smtp: Add option to prefix PROXY header
- check_smtp: Add support for SMTP over TLS
- check_smtp: Add support for SNI
- check_snmp: Implement option to ignore mib file parsing errors
- check_users: prefer systemd-logind over utmp
Fixes
General
- A lot of compiler warnings were fixed
- Some code was refactored a little bit
Single Plugins
- check_disk: Display SI units correctly
- check_ircd: use pack_sockaddr_in rather than hand-rolled
- check_log/check_oracle/check_sensors: fixed the outputs of the help functionality
- check_mysql: Add mysql_close to avoid spamming the server logs
- check_smtp: add missing -r option in usage
- check_snmp: disable multiplier when unused
- check_wave: Use compile time determined path to snmpget
v2.3.3
Monitoring Plugins v2.3.3 released!
The Monitoring Plugins Development Team is proud to announce version 2.3.3 of
the Monitoring Plugins! This release comes with various fixes provided by more
than 16 contributors. Many thanks to all of you!
What's Changed
Enhancements
General
- using PRId64 and PRIu64 instead of %ld directly
Single Plugins
- check_http: Make faster with larger files
- check_snmp: add 'multiplier' to modify current value
- check_http: Implement chunked encoding decoding
- check_http/check_curl: add chunked encoding test
- check_log: Added --exclude to exclude patterns
- check_log: Add tests
- check_disk: Clarify usage possibilites
Fixes
General
- fixed two PRId64 to PRIu64 in perfdata_uint64
Single Plugins
- check_pgsql: Removing is_pg_dbname alltogether,using postgres API.
- check_http: Remove superflous CRLF in HTTP-Requests
- check_curl: detect ipv6
- check_icmp: fix parsing help/version long options
- check_http: fix test plan
- check_disk: Find accessible mount path if multiple are available
- check_apt: Fix unknown escape sequence error output
- check_curl: fix checking large bodys
- check_snmp: Improve tests for check_snmp & multiply option
- check_snmp: always apply format when applying multiplier
- check_http: Use real booleans instead of ints
- check_http: Document process_arguments a little bit better
- check_http: Remove dead code
- check_http: Fix several bug in the implementation of unchunking
- check_http: Reformat a part to increase readability
- check_apt: Put upgrade options in the root sections
- check_apt: Fix comment
- check_apt: Use real booleans
- check_mailq: Fixing nullmailer regex
- check_snmp: Fix regex matches
- check_log: Fixed a bug when using --all
- check_log: Cleaned up duplicated code in the args
- check_http: Fix memory reallocation error in chunk decoding logic
- check_http: Add space for ending NULL byte in array for chunked encoding
v2.3.2
Monitoring Plugins v2.3.2 is out!
What's Changed
General
- docs: fix simple typo, conspicuosly -> conspicuously by @timgates42 in #1652
- Migrate to GitHub actions by @jacobbaungard in #1686
- Point to Icinga Exchange instead of dead Monitoring Exchange by @RincewindsHat in #1737
- Use netcat-openbsd for debian explicitely by @RincewindsHat in #1704
- github actions: fix check_users test case by @sni in #1713
- Add CodeQL checks by @phibos in #1682
- Fix some QL problems by @RincewindsHat in #1729
- Update CodeQL and update runner before installing by @RincewindsHat in #1775
- Replace egrep with grep -E by @RincewindsHat in #1791
- Use silent automake by default by @RincewindsHat in #1747
Single Plugins
check_by_ssh: added option to exit with an warning, if there is output on STDERR by @nafets in #1301check_by_ssh: Add "-U" flag (#1123). by @archiecobbs in #1774check_by_ssh: Let ssh decide if a host is valid, enables usage of ssh .config file by @RincewindsHat in #1691check_curl: Add an option to check_curl to verify the peer certificate & host using the system CA's by @bazzisoft in #1669check curl: bugfixes by @andreasbaumann in #1667check_curl: Feature check curl by @andreasbaumann in #1671check_curl: Feature check curl by @andreasbaumann in #1700check_curl: fixed -ffollow for HTTP/2.0 (Fixes #1685): added major_version parsing to PicoHTTPParser by @andreasbaumann in #1742check_curl: fixes check_curl: "CRITICAL - Cannot retrieve certificate subject." by @andreasbaumann in #1689check_curl: fix if http header contains leading spaces by @sni in #1666check_curl: Update check_curl.c to display a specific human-readable error message where possible by @bazzisoft in #1668check_curl: verify certificates option should not force SSL to be used by @bazzisoft in #1688check_disk: Check disk compiler warnings by @RincewindsHat in #1758check_disk: Description for -M was the wrong way around by @RincewindsHat in #1746check_disk: Fixing the stuff that is broken on btrfs by @waja in #1388check_disk: Fix perfdata for big values for check disk by @RincewindsHat in #1714check_disk_smb: Add configfile feature by @Napsty in #1402check_disk_smb: Add timeout by @cdruee in #1770check_disk: Trivial printf fix and a little bit of code style by @RincewindsHat in #1695check_dns: Add --expect-nxdomain by @Jonny007-MKD in #1623check_dns: split multiple IP addresses passed in one -a argument by @DerDakon in #1649check_file_age: Make size parameter a little bit more intelligible by @RincewindsHat in #1730check_fping: Implements 'host-alive' mode (Closes. #1027) by @waja in #1740check_game: Update Url to qstat by @RincewindsHat in #1725check_http: changed 'STATE_CRITICAL' to 'STATE_WARNING' for infinite loop by @xFuture603 in #1690check_http: Docs: make -C obvious by @stblassitude in #1554check_http: Increase regexp limit by @hydrapolic in #1566check_http: Support http redirect by @waja in #1449check_icmp: buffer offerflow by @RincewindsHat in #1733check_icmp: delay set_source_ip() until address_family is detected by @ghciv6 in #1735check_icmp: Fix "Invalid Argument" from sendmsg() under FreeBSD 13.1 and "setsockopt failed" for TTL setting by @eriksejr in #1771check_icmp: Fix pkt perfdata in check_host mode by @sjoegren in #1721check_ifoperstatus: Re-attach a comment to where it actually belongs by @peternewman in #1699check_ircd: Restrict the nickname length of the test user for check_ircd by @RincewindsHat in #1710check_ldap: Allows check_ldap to read password from environment variable by @mullumaus in #1724check_load: add LOAD prefix to load plugin by @haraldj in #1694check_load: Check load compiler warnings by @RincewindsHat in #1759check_load: Display total and scaled load values if check_load scales the values by number of CPUs by @RincewindsHat in #1778check_log: Missing oldlog now aborts check_log by @RincewindsHat in #1732check_logModernize check log by @RincewindsHat in #1692check_mailq: Add mailq -C option for config dir or config file by @leeclemens in #1490check_mailq: Check mailq domain specific warnings by @RincewindsHat in #1731check_mailq: Fix regexp for nullmailer "mailq" output by @darksoul42 in #1493check_mailq: remove duplicate W=i/C=i args in check_mailq.pl by @ichdasich in #1755check_mysql: fix for issue #1562 by @ghciv6 in #1644check_ntp: Check ntp remove unused variables by @RincewindsHat in #1781check_pgsql: add --queryname parameter to check_pgsql by @datamuc in #1741check_pgsql: Using snprintf which honors the buffers size and guarantees null temination. (Closes: #1601) by @waja in #1663check_ping: Do not show RTA if no connection was possible by @RincewindsHat in #1697check_ping: understang ping6 output from iputils package by @glensc in #1412check_proc: Fix check proc ps detection by @sni in #1712check_procs: exchange needle and haystack in strstr() for proper st… by @wolfgangkarall in #1654check_procs: Fix double percentage sign in usage by @RincewindsHat in #1743check_sensors.sh: Make shellcheck happier by @RincewindsHat in #1679check_smtp: add -L flag to support LMTP (LHLO instead of HELO/EHLO). by @ghen2 in #1715check_snmp: Added option for null zero length string exit codes by @FracKenA in #1496check_snmp: Fixed option description authpassword -> authpasswd + whitespaces by @RincewindsHat in #1676check_snmp: fix performance thresholds when using multiple oids by @sni in #1722check_snmpfix segfaults by @adrb in https://github.com/monitoring-plugins/monitoring...
Monitoring Plugins 2.3.1 released!
The Monitoring Plugins Development Team is proud to announce version 2.3.1 of the Monitoring Plugins!
This release comes with various fixes provided by more than ten contributors, mostly for check_curl. Many thanks to all of you!
For the list of notable changes in this release, see:
https://www.monitoring-plugins.org/news/release-2-3-1.html
Happy monitoring!
Monitoring Plugins 2.3 released!
The Monitoring Plugins Development Team is proud to announce version 2.3
of the Monitoring Plugins! This release comes with various enhancements
and fixes provided by more than fourty contributors. Many thanks to all
of you!
For the list of notable changes in this release, see:
https://www.monitoring-plugins.org/news/release-2-3.html
Happy monitoring!