diff options
Diffstat (limited to 'web')
| -rw-r--r-- | web/input/download.md | 4 | ||||
| -rw-r--r-- | web/input/impressum.md | 4 | ||||
| -rw-r--r-- | web/input/news/release-3-0-0-rc1.md | 80 | ||||
| -rw-r--r-- | web/input/news/release-3-0-0-rc2.md | 43 | ||||
| -rw-r--r-- | web/macros.py | 13 |
5 files changed, 137 insertions, 7 deletions
diff --git a/web/input/download.md b/web/input/download.md index b60b49f..4758175 100644 --- a/web/input/download.md +++ b/web/input/download.md | |||
| @@ -19,8 +19,7 @@ See the [release history][news] for an overview of changes between earlier | |||
| 19 | versions. Old releases can be found in the [download area][download]. There | 19 | versions. Old releases can be found in the [download area][download]. There |
| 20 | are mirrors available in [Belgium][mirror-be], [China][mirror-cn], | 20 | are mirrors available in [Belgium][mirror-be], [China][mirror-cn], |
| 21 | [Germany][mirror-de], [Greece][mirror-gr], [Korea][mirror-kr], | 21 | [Germany][mirror-de], [Greece][mirror-gr], [Korea][mirror-kr], |
| 22 | [Portugal][mirror-pt], [Russia][mirror-ru], [Sweden][mirror-se], and the | 22 | [Russia][mirror-ru], [Sweden][mirror-se], and the [USA][mirror-us]. |
| 23 | [USA][mirror-us]. | ||
| 24 | 23 | ||
| 25 | ### Development Snapshot | 24 | ### Development Snapshot |
| 26 | 25 | ||
| @@ -53,7 +52,6 @@ Old versions can be found [within][mib] the [download area][download]. | |||
| 53 | [mirror-de]: https://ftp.fu-berlin.de/unix/network/monitoring-plugins/ "Mirror in Germany" | 52 | [mirror-de]: https://ftp.fu-berlin.de/unix/network/monitoring-plugins/ "Mirror in Germany" |
| 54 | [mirror-gr]: https://ftp.cc.uoc.gr/mirrors/monitoring-plugins/ "Mirror in Greece" | 53 | [mirror-gr]: https://ftp.cc.uoc.gr/mirrors/monitoring-plugins/ "Mirror in Greece" |
| 55 | [mirror-kr]: https://ftp.kaist.ac.kr/nagios-plugins/ "Mirror in Korea" | 54 | [mirror-kr]: https://ftp.kaist.ac.kr/nagios-plugins/ "Mirror in Korea" |
| 56 | [mirror-pt]: https://mirrors.fe.up.pt/pub/monitoring-plugins/ "Mirror in Portugal" | ||
| 57 | [mirror-ru]: http://mirror.mephi.ru/nagios-plugins/ "Mirror in Russia" | 55 | [mirror-ru]: http://mirror.mephi.ru/nagios-plugins/ "Mirror in Russia" |
| 58 | [mirror-se]: https://ftp.lysator.liu.se/pub/monitoring-plugins/ "Mirror in Sweden" | 56 | [mirror-se]: https://ftp.lysator.liu.se/pub/monitoring-plugins/ "Mirror in Sweden" |
| 59 | [mirror-uk]: https://mirror.bytemark.co.uk/monitoring-plugins/ "Mirror in the United Kingdom" | 57 | [mirror-uk]: https://mirror.bytemark.co.uk/monitoring-plugins/ "Mirror in the United Kingdom" |
diff --git a/web/input/impressum.md b/web/input/impressum.md index 0152f04..d79ea74 100644 --- a/web/input/impressum.md +++ b/web/input/impressum.md | |||
| @@ -9,12 +9,12 @@ parent: Home | |||
| 9 | Responsible for the content of this site: | 9 | Responsible for the content of this site: |
| 10 | 10 | ||
| 11 | Holger Weiß | 11 | Holger Weiß |
| 12 | Gutsmuthsstr. 19 | 12 | Buggestr. 11 |
| 13 | 12163 Berlin | 13 | 12163 Berlin |
| 14 | Germany | 14 | Germany |
| 15 | 15 | ||
| 16 | **Phone:** | 16 | **Phone:** |
| 17 |   +49 30 61286685 | 17 |   +49 160 7282852 |
| 18 | 18 | ||
| 19 | **Email:** | 19 | **Email:** |
| 20 |   holger@zedat.fu-berlin.de | 20 |   holger@zedat.fu-berlin.de |
diff --git a/web/input/news/release-3-0-0-rc1.md b/web/input/news/release-3-0-0-rc1.md new file mode 100644 index 0000000..85c7982 --- /dev/null +++ b/web/input/news/release-3-0-0-rc1.md | |||
| @@ -0,0 +1,80 @@ | |||
| 1 | title: Version 3.0.0-rc1 Released | ||
| 2 | author: Lorenz Kästle | ||
| 3 | date: 2025-12-03 | ||
| 4 | --- | ||
| 5 | |||
| 6 | The Monitoring Plugins Development Team announces version 3.0.0-rc1 of | ||
| 7 | the Monitoring Plugins! | ||
| 8 | This release is different in several regards to previous releases. | ||
| 9 | Due the a significant refactoring and the unintented side effect this | ||
| 10 | may have, the "real" release will be following release candidates which | ||
| 11 | are intented to for early adapters and testing. | ||
| 12 | <end-of-teaser> | ||
| 13 | |||
| 14 | The core parts of this release are significant changes to the C part of this | ||
| 15 | project, which should be mostly internal and not change the results in a | ||
| 16 | significant way (meaning the input parameters mostly stay as they are and the | ||
| 17 | exit code should remain the same if the parameters are the same in the old | ||
| 18 | version and context did not change). | ||
| 19 | The reality is, that big changes have | ||
| 20 | unintented consequences which are not covered in the test cases or some | ||
| 21 | consequences were not in our scope at all. | ||
| 22 | For the list of notable changes in this release, see below. | ||
| 23 | |||
| 24 | You can get the tarball from our [download page][download]. | ||
| 25 | |||
| 26 | ### General changes | ||
| 27 | * In the C part of the project | ||
| 28 | * Heavy refactoring to simplify and unify the code base | ||
| 29 | * Introduction of a generalized output mechanism for most plugins | ||
| 30 | * Standardized code formatting via `clang-format` | ||
| 31 | |||
| 32 | ### Specific changes | ||
| 33 | #### check_curl | ||
| 34 | `check_curl` received a lot of changes which improve the documentation and | ||
| 35 | fix several bugs. | ||
| 36 | It is also not considered experimental anymore. | ||
| 37 | |||
| 38 | Additionaly `check_curl` can now be configured to handle cookies internally | ||
| 39 | without saving cookies to the filesystem. | ||
| 40 | |||
| 41 | #### check_http | ||
| 42 | `check_http` is now considered deprecated and will not receive attention any | ||
| 43 | more. It is replaced by `check_curl` | ||
| 44 | |||
| 45 | #### check_snmp | ||
| 46 | `check_snmp` does not execute `snmpget` or `snmpgetnext` anymore but executes | ||
| 47 | the net-snmp calls natively now. | ||
| 48 | |||
| 49 | #### check_nwstat | ||
| 50 | `check_nwstat` was removed, due to its perceived insignificance in the current | ||
| 51 | IT world. This reduces the maintenance load and ressource consumption in | ||
| 52 | general. | ||
| 53 | |||
| 54 | #### check_by_ssh | ||
| 55 | `check_by_ssh` ignores output on `stderr` by default now. This should | ||
| 56 | avoid false positives for warnings by the OpenSSH client (especially | ||
| 57 | about the server missing Post-Quantum cryptography. | ||
| 58 | |||
| 59 | #### check_dns | ||
| 60 | `check_dns` now ignores CNAMES in reverse DNS mode. | ||
| 61 | |||
| 62 | #### check_fping | ||
| 63 | If during compilation `fping` 5.2, 5.3 or higher are present, `check_fping` | ||
| 64 | will be able to use new options which were introduced with these versions. | ||
| 65 | These options are (equivalent to the ones with the same name in `fping`) | ||
| 66 | `--fwmark`, `--icmp-timestamp` and `--check-source`. | ||
| 67 | The older flags `--dontfrag` and `--random` were also added. | ||
| 68 | |||
| 69 | Also the `-4` and `-6` flags may not have worked as intented and should be | ||
| 70 | fixed now. | ||
| 71 | |||
| 72 | #### check_mysql | ||
| 73 | `check_mysql` should now be able to correctly detect whether a replica is | ||
| 74 | attached and working correctly. | ||
| 75 | Changes were necessary here to adapt to changes in the naming convention in | ||
| 76 | MySQL. | ||
| 77 | |||
| 78 | [download]: /download.html | ||
| 79 | |||
| 80 | <!--% # vim:set filetype=markdown textwidth=78 joinspaces expandtab: # %--> | ||
diff --git a/web/input/news/release-3-0-0-rc2.md b/web/input/news/release-3-0-0-rc2.md new file mode 100644 index 0000000..79746bd --- /dev/null +++ b/web/input/news/release-3-0-0-rc2.md | |||
| @@ -0,0 +1,43 @@ | |||
| 1 | title: Version 3.0.0-rc2 Released | ||
| 2 | author: Lorenz Kästle | ||
| 3 | date: 2026-01-02 | ||
| 4 | --- | ||
| 5 | |||
| 6 | The Monitoring Plugins Development Team announces version 3.0.0-rc2 of | ||
| 7 | the Monitoring Plugins! | ||
| 8 | |||
| 9 | This is the second release candidate for version 3.0.0. | ||
| 10 | |||
| 11 | It contains mostly fixes to the 3.0.0-rc1 version and is also not a full release, | ||
| 12 | but serves as a basis for test until we are mostly sure not to break production | ||
| 13 | setups. | ||
| 14 | |||
| 15 | ### Changes | ||
| 16 | * check_nt was removed | ||
| 17 | check_nt is no long useful in current setups and hasn't been for some time. | ||
| 18 | Therefore it was removed without a replacement. | ||
| 19 | * check_ntp was removed | ||
| 20 | check_ntp was marked as deprecated for a long time due to systematic problems. | ||
| 21 | It should not be in use anywhere and gets now removed to reduce code size and | ||
| 22 | avoid misleading users. | ||
| 23 | The replacements are check_ntp_time and check_ntp_peer | ||
| 24 | * Bugfix for check_ntp_time | ||
| 25 | An errournous change in check_ntp_time made it fail in almost all use cases. | ||
| 26 | This has been fixed | ||
| 27 | * Properly separate perfdata from different subchecks | ||
| 28 | A missing separator caused errors in perfdata strings (from C plugins) where | ||
| 29 | two different data points where not properly separated and showed up as a single | ||
| 30 | invalid data point | ||
| 31 | * check_curl: append the query string from parsed uri | ||
| 32 | When using the old style follow method (`-f follow`) with check_curl the query string was not | ||
| 33 | appended to the new target after redirect. This was fixed. (Thanks Ahmet Oeztuerk) | ||
| 34 | * Fixing different problems on OpenBSD | ||
| 35 | A few different things did prevent proper compilation and usage on OpenBSD, partly due | ||
| 36 | to different naming conventions there. These are hopefully fixed now. Thanks to Alvar Penning | ||
| 37 | and Stuart Henderson. | ||
| 38 | * Gnulib update to stable-202507 | ||
| 39 | |||
| 40 | |||
| 41 | [download]: /download.html | ||
| 42 | |||
| 43 | <!--% # vim:set filetype=markdown textwidth=78 joinspaces expandtab: # %--> | ||
diff --git a/web/macros.py b/web/macros.py index 5536f3f..eab21bc 100644 --- a/web/macros.py +++ b/web/macros.py | |||
| @@ -3,7 +3,7 @@ import math | |||
| 3 | import os.path | 3 | import os.path |
| 4 | import time | 4 | import time |
| 5 | 5 | ||
| 6 | plugins_release = '2.4.0' | 6 | plugins_release = '3.0.0-rc2' |
| 7 | mib_release = '1.0.1' | 7 | mib_release = '1.0.1' |
| 8 | release_notes = 'news/release-%s.html' % plugins_release.replace('.', '-') | 8 | release_notes = 'news/release-%s.html' % plugins_release.replace('.', '-') |
| 9 | site_url = 'https://www.monitoring-plugins.org/' | 9 | site_url = 'https://www.monitoring-plugins.org/' |
| @@ -52,6 +52,7 @@ _RSS_ITEM = """ | |||
| 52 | </item> | 52 | </item> |
| 53 | """ | 53 | """ |
| 54 | 54 | ||
| 55 | |||
| 55 | def hook_postconvert_rss(): | 56 | def hook_postconvert_rss(): |
| 56 | items = [] | 57 | items = [] |
| 57 | posts = [p for p in pages if 'date' in p] | 58 | posts = [p for p in pages if 'date' in p] |
| @@ -75,6 +76,7 @@ def hook_postconvert_rss(): | |||
| 75 | # News | 76 | # News |
| 76 | # | 77 | # |
| 77 | 78 | ||
| 79 | |||
| 78 | def hook_preconvert_news(): | 80 | def hook_preconvert_news(): |
| 79 | posts_per_page = 10 | 81 | posts_per_page = 10 |
| 80 | posts = [p for p in pages if 'date' in p] | 82 | posts = [p for p in pages if 'date' in p] |
| @@ -97,6 +99,7 @@ def hook_preconvert_news(): | |||
| 97 | parent='News') | 99 | parent='News') |
| 98 | pages.append(p) | 100 | pages.append(p) |
| 99 | 101 | ||
| 102 | |||
| 100 | def make_news_page(posts, current_index): | 103 | def make_news_page(posts, current_index): |
| 101 | marker = '<end-of-teaser>' | 104 | marker = '<end-of-teaser>' |
| 102 | if current_index == 0: | 105 | if current_index == 0: |
| @@ -121,6 +124,7 @@ def make_news_page(posts, current_index): | |||
| 121 | p['parent'] = title | 124 | p['parent'] = title |
| 122 | return '\n'.join(teaser) + '\n\n' | 125 | return '\n'.join(teaser) + '\n\n' |
| 123 | 126 | ||
| 127 | |||
| 124 | def make_news_footer(n_news_pages, current_index): | 128 | def make_news_footer(n_news_pages, current_index): |
| 125 | if n_news_pages == 1: | 129 | if n_news_pages == 1: |
| 126 | return '' | 130 | return '' |
| @@ -142,6 +146,7 @@ def make_news_footer(n_news_pages, current_index): | |||
| 142 | footer.append('[Last](news/%d.html)' % n_news_pages) | 146 | footer.append('[Last](news/%d.html)' % n_news_pages) |
| 143 | return ' '.join(footer) + '\n{: #news-footer }\n' | 147 | return ' '.join(footer) + '\n{: #news-footer }\n' |
| 144 | 148 | ||
| 149 | |||
| 145 | def next_news_chunk(posts, posts_per_page): | 150 | def next_news_chunk(posts, posts_per_page): |
| 146 | index = 0 | 151 | index = 0 |
| 147 | while len(posts[index:]) > 0: | 152 | while len(posts[index:]) > 0: |
| @@ -152,6 +157,7 @@ def next_news_chunk(posts, posts_per_page): | |||
| 152 | # Menu and Breadcrumb Navigation | 157 | # Menu and Breadcrumb Navigation |
| 153 | # | 158 | # |
| 154 | 159 | ||
| 160 | |||
| 155 | def menu(): | 161 | def menu(): |
| 156 | menu_pages = [p for p in pages if 'menu' in p] | 162 | menu_pages = [p for p in pages if 'menu' in p] |
| 157 | menu_pages.sort(key=lambda p: int(p['menu'])) | 163 | menu_pages.sort(key=lambda p: int(p['menu'])) |
| @@ -161,9 +167,10 @@ def menu(): | |||
| 161 | else: | 167 | else: |
| 162 | print('<span><a href="%s">%s</a></span>' % (p.url, hx(p.title))) | 168 | print('<span><a href="%s">%s</a></span>' % (p.url, hx(p.title))) |
| 163 | 169 | ||
| 170 | |||
| 164 | def breadcrumb(): | 171 | def breadcrumb(): |
| 165 | stable = '<span id="release">Stable release: <a href="%s">%s</a></span>' \ | 172 | stable = '<span id="release">Stable release: <a href="%s">%s</a></span>' \ |
| 166 | % (release_notes, plugins_release) | 173 | % (release_notes, plugins_release) |
| 167 | parents = {p.title: (p.url, p.get('parent')) for p in pages} | 174 | parents = {p.title: (p.url, p.get('parent')) for p in pages} |
| 168 | title = page.title | 175 | title = page.title |
| 169 | crumbs = hx(title) | 176 | crumbs = hx(title) |
| @@ -179,11 +186,13 @@ def breadcrumb(): | |||
| 179 | # Miscellaneous | 186 | # Miscellaneous |
| 180 | # | 187 | # |
| 181 | 188 | ||
| 189 | |||
| 182 | def list_kids(): | 190 | def list_kids(): |
| 183 | kids = [(p.url, p.title) for p in pages if p.get('parent') == page.title] | 191 | kids = [(p.url, p.title) for p in pages if p.get('parent') == page.title] |
| 184 | for kid in sorted(kids): | 192 | for kid in sorted(kids): |
| 185 | print('* [%s](%s)' % (kid[1], kid[0])) | 193 | print('* [%s](%s)' % (kid[1], kid[0])) |
| 186 | 194 | ||
| 195 | |||
| 187 | def copyright_years(since=None): | 196 | def copyright_years(since=None): |
| 188 | this_year = time.gmtime().tm_year | 197 | this_year = time.gmtime().tm_year |
| 189 | if since is not None and int(since) != this_year: | 198 | if since is not None and int(since) != this_year: |
