summaryrefslogtreecommitdiffstats
path: root/web
diff options
context:
space:
mode:
Diffstat (limited to 'web')
-rw-r--r--web/input/news/release-3-0-0-rc1.md80
-rw-r--r--web/input/news/release-3-0-0-rc2.md43
-rw-r--r--web/macros.py13
3 files changed, 134 insertions, 2 deletions
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 @@
1title: Version 3.0.0-rc1 Released
2author: Lorenz Kästle
3date: 2025-12-03
4---
5
6The Monitoring Plugins Development Team announces version 3.0.0-rc1 of
7the Monitoring Plugins!
8This release is different in several regards to previous releases.
9Due the a significant refactoring and the unintented side effect this
10may have, the "real" release will be following release candidates which
11are intented to for early adapters and testing.
12<end-of-teaser>
13
14The core parts of this release are significant changes to the C part of this
15project, which should be mostly internal and not change the results in a
16significant way (meaning the input parameters mostly stay as they are and the
17exit code should remain the same if the parameters are the same in the old
18version and context did not change).
19The reality is, that big changes have
20unintented consequences which are not covered in the test cases or some
21consequences were not in our scope at all.
22For the list of notable changes in this release, see below.
23
24You 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
35fix several bugs.
36It is also not considered experimental anymore.
37
38Additionaly `check_curl` can now be configured to handle cookies internally
39without saving cookies to the filesystem.
40
41#### check_http
42`check_http` is now considered deprecated and will not receive attention any
43more. It is replaced by `check_curl`
44
45#### check_snmp
46`check_snmp` does not execute `snmpget` or `snmpgetnext` anymore but executes
47the net-snmp calls natively now.
48
49#### check_nwstat
50`check_nwstat` was removed, due to its perceived insignificance in the current
51IT world. This reduces the maintenance load and ressource consumption in
52general.
53
54#### check_by_ssh
55`check_by_ssh` ignores output on `stderr` by default now. This should
56avoid false positives for warnings by the OpenSSH client (especially
57about the server missing Post-Quantum cryptography.
58
59#### check_dns
60`check_dns` now ignores CNAMES in reverse DNS mode.
61
62#### check_fping
63If during compilation `fping` 5.2, 5.3 or higher are present, `check_fping`
64will be able to use new options which were introduced with these versions.
65These options are (equivalent to the ones with the same name in `fping`)
66`--fwmark`, `--icmp-timestamp` and `--check-source`.
67The older flags `--dontfrag` and `--random` were also added.
68
69Also the `-4` and `-6` flags may not have worked as intented and should be
70fixed now.
71
72#### check_mysql
73`check_mysql` should now be able to correctly detect whether a replica is
74attached and working correctly.
75Changes were necessary here to adapt to changes in the naming convention in
76MySQL.
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 @@
1title: Version 3.0.0-rc2 Released
2author: Lorenz Kästle
3date: 2026-01-02
4---
5
6The Monitoring Plugins Development Team announces version 3.0.0-rc2 of
7the Monitoring Plugins!
8
9This is the second release candidate for version 3.0.0.
10
11It contains mostly fixes to the 3.0.0-rc1 version and is also not a full release,
12but serves as a basis for test until we are mostly sure not to break production
13setups.
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
3import os.path 3import os.path
4import time 4import time
5 5
6plugins_release = '2.4.0' 6plugins_release = '3.0.0-rc2'
7mib_release = '1.0.1' 7mib_release = '1.0.1'
8release_notes = 'news/release-%s.html' % plugins_release.replace('.', '-') 8release_notes = 'news/release-%s.html' % plugins_release.replace('.', '-')
9site_url = 'https://www.monitoring-plugins.org/' 9site_url = 'https://www.monitoring-plugins.org/'
@@ -52,6 +52,7 @@ _RSS_ITEM = """
52 </item> 52 </item>
53""" 53"""
54 54
55
55def hook_postconvert_rss(): 56def 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
78def hook_preconvert_news(): 80def 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
100def make_news_page(posts, current_index): 103def 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
124def make_news_footer(n_news_pages, current_index): 128def 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 '&emsp;'.join(footer) + '\n{: #news-footer }\n' 147 return '&emsp;'.join(footer) + '\n{: #news-footer }\n'
144 148
149
145def next_news_chunk(posts, posts_per_page): 150def 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
155def menu(): 161def 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
164def breadcrumb(): 171def 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
182def list_kids(): 190def 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
187def copyright_years(since=None): 196def 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: