From a2a409a405fe64d92120088d492ae5644eee68a8 Mon Sep 17 00:00:00 2001 From: mellis Date: Fri, 12 Jan 2024 16:38:48 +0100 Subject: [PATCH] MKP 2.5.1, added version infos for apps with available updates --- README.md | 36 ++++++++++++++++++ images/Nextcloud-Update-Status-WARN.png | Bin 0 -> 8353 bytes .../plugins/agent_based/nextcloud_info.py | 18 +++++++-- .../check_mk/agents/special/agent_nextcloud | 17 ++++++--- local/share/check_mk/checkman/nextcloud_info | 2 + .../web/plugins/wato/nextcloud_info_rules.py | 2 + mkp/Nextcloud-2.4.0.mkp | Bin 10958 -> 0 bytes mkp/Nextcloud-2.4.1.mkp | Bin 11641 -> 0 bytes mkp/Nextcloud-2.5.1.mkp | Bin 0 -> 12333 bytes 9 files changed, 65 insertions(+), 10 deletions(-) create mode 100644 images/Nextcloud-Update-Status-WARN.png delete mode 100644 mkp/Nextcloud-2.4.0.mkp delete mode 100644 mkp/Nextcloud-2.4.1.mkp create mode 100644 mkp/Nextcloud-2.5.1.mkp diff --git a/README.md b/README.md index 7952f4f..6918934 100644 --- a/README.md +++ b/README.md @@ -5,10 +5,42 @@ Tested with Nextcloud 25/26/27/28. Tested only with MySQL/MariaDB as database backend. Feel free to report other working environments. + +Upgrade from older MKPs (before 2.4.0): +If you upgrade from a already installed version before 2.4.0, you have to re-create your rules for the "Nextcloud Server Information" (reason: massive parameter changes). +Steps to accomplish this without problems: + +1. Take a screenshot of your settings in the above mentioned ruleset +2. Assure that you have access to the passwords/tokens you used within the current rules +3. Delete all rules for "Nextcloud Server Information" +4. Install and enable the new MKP +5. Re-create your rules with the previously saved information from steps 1 and 2 +6. Apply your changes + +Hint: You have to create an app password now for accessing your Nextcloud instance. For this to accomplish login to your Nextcloud server with an administrative user account. Go to "Personal Settings|Security" and take note of the section "Devices & Sessions". Create the app password via clicking the button "create new app password". You may use this password explicitly within the rule or store it first in the password safe of CheckMK. + + +General installation instructions: +1. Upload and enable the MKP +2. Apply changes +3. Click Setup, search for "Nextcloud" +4. Click on "Nextcloud Server Information" below "Other integrations" +5. Create a new rule and fill in all mandatory information (Hostname, Username, App Password) +6. Adjust all other options to your needs +7. Bind this rule to your Nextcloud host object (e.g. via "Explicit hosts") +8. If you have no host object at all, create a dummy host for this (with no IP or something like 127.0.0.2) +9. Assure that your agents settings for this host object are correct (must contain "Configured API integrations") +10. Apply your changes +11. Execute a service discovery on your Nextcloud host(s) and accept the newly detected services +12. Feel free to adjust the various parameters for thresholds within the available parameter sections (Setup, "Service monitoring rules" after searching for "Nextcloud") + + Version History: -- |Date|Version|Changes| |----|-------|-------| +|2023/01/12|2.5.1|Added versions for apps with available updates| +|2023/01/12|2.4.1|Removed Parameter "token", switched to parameter "app password" only| |2023/01/12|2.4.0|Integrated Password Store for App Password, some changes for compatibility with NC 28 added| |2023/11/26|2.3.4|Fixed agent crash if opcache_get_status is disabled by server settings| |2023/08/16|2.3.3|Fixed some misleading info strings regarding database opcache| @@ -26,3 +58,7 @@ Example how the checks look like: Example of the details of the info check: -- ![Nextcloud Info Details](images/Nextcloud-Info-Details.png) + +Example when app updates are available: +-- +![Nextcloud AppUpdateInfo](images/Nextcloud-Update-Status-WARN.png) diff --git a/images/Nextcloud-Update-Status-WARN.png b/images/Nextcloud-Update-Status-WARN.png new file mode 100644 index 0000000000000000000000000000000000000000..ddad0d69b3f01931d7dee10c96a59e1d3e872d81 GIT binary patch literal 8353 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") print(f"NC_Version;{data['ocs']['data']['nextcloud']['system']['version']}") print(f"NC_Freespace;{data['ocs']['data']['nextcloud']['system']['freespace']}") @@ -205,6 +205,11 @@ def doCmkOutput(data): try: print(f"NC_Num_Apps_Installed;{data['ocs']['data']['nextcloud']['system']['apps']['num_installed']}") print(f"NC_Num_Apps_Updates_Available;{data['ocs']['data']['nextcloud']['system']['apps']['num_updates_available']}") + apps_with_updates_available = data['ocs']['data']['nextcloud']['system']['apps']['app_updates'] + if apps_with_updates_available: + for app, version in apps_with_updates_available.items(): + str_apps_with_updates_available = str_apps_with_updates_available + app + "/" + version + " " + print(f"NC_Apps_With_Updates_Available;{str_apps_with_updates_available}") except KeyError: pass print(f"NC_Active_Users_Last_5Min;{data['ocs']['data']['activeUsers']['last5minutes']}") diff --git a/local/share/check_mk/checkman/nextcloud_info b/local/share/check_mk/checkman/nextcloud_info index 073d084..86f6cbb 100644 --- a/local/share/check_mk/checkman/nextcloud_info +++ b/local/share/check_mk/checkman/nextcloud_info @@ -12,7 +12,9 @@ description: The user must not be secured with 2FA. Shows several information about a Nextcloud instance, e.g. number of files/storages/(active)users, free space on disk. The check will raise CRIT if the Nextcloud instance is not in "ok" state. + The check will raise WARN if there is an update availbale for Nextcloud. The check will raise WARN/CRIT if free space on disk is below the configurable levels. The check will raise WARN/CRIT if the number of installed apps with available updates is above the configurable levels. + The check will raise WARN/CRIT if the number of files is above the configurable levels. inventory: one service is created (with several details) \ No newline at end of file diff --git a/local/share/check_mk/web/plugins/wato/nextcloud_info_rules.py b/local/share/check_mk/web/plugins/wato/nextcloud_info_rules.py index f777406..29e8c53 100644 --- a/local/share/check_mk/web/plugins/wato/nextcloud_info_rules.py +++ b/local/share/check_mk/web/plugins/wato/nextcloud_info_rules.py @@ -51,10 +51,12 @@ def _parameter_spec_nextcloud_info(): Integer( title=_("Warning at"), default_value=100000, + size=32, ), Integer( title=_("Critical at"), default_value=250000, + size=32, ) ], )), diff --git a/mkp/Nextcloud-2.4.0.mkp b/mkp/Nextcloud-2.4.0.mkp deleted file mode 100644 index 466145fabf3023fea66fcf3f41330d9f9b3092c7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10958 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 n$y diff --git a/mkp/Nextcloud-2.4.1.mkp b/mkp/Nextcloud-2.4.1.mkp deleted file mode 100644 index 41ab8fda316ec800ff714861281f39d1abed3842..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11641 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