All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
tbd
v3.0.0 - 2026-05-05
- ci: Scope
GITHUB_TOKENpermissions in the dependabot-auto-merge workflow to the job level, with top-level nowread-all. Matches the pattern used by the other Linuxfabrik workflows and addresses the OpenSSF ScorecardToken-Permissionsfinding.
Build, CI/CD:
- Drop the
flatdictdependency;statuspalreworked accordingly. Unblocks builds on RHEL 10 and SLE 15/16 (#1044)
Monitoring Plugins:
- haproxy-status: replaced
--username/--passwordwith HTTP basic auth in--url(e.g.https://user:pw@host/server-status); old parameters now UNKNOWN with a migration hint - mailq:
--warning/--criticalnow take a duration (1h,3D; defaults1h/3D) instead of a mail count. Newoldest_mail_ageperfdata (seconds). New--mta=auto|postfix|exim|sendmail(#781) - php-fpm-status: multi-pool via repeatable
--url; HTTP basic auth in the URL. All perfdata labels renamed and prefixed with<pool>_(queue usage→saturation;accepted conn→accepted_conn_rate;slow requests→slow_requests_delta;max children reachedremoved) — Grafana and InfluxDB queries need updating. New--severity warn|critfor unreachable pools - procs:
--argument,--command,--usernamenow regex instead of substring/startswith; use^foofor startswith,^foo$for exact match
Build, CI/CD:
- Documentation site at https://linuxfabrik.github.io/monitoring-plugins/
- Package support for SLE 15, SLE 16, Ubuntu 26.04 (incl. "OS - Ubuntu 26 Basic Service Set" template)
Monitoring Plugins:
- by-ssh: alert on single numeric values
- by-winrm: executes commands on remote Windows hosts via WinRM, with JEA support (incl.
--winrm-configuration-name) - dhcp-scope-usage: add
--briefto hide scopes within thresholds (#788) - disk-usage: add
--briefto hide filesystems within thresholds (#782) - docker-info, podman-info: add
--ignoreto filter stderr warnings/errors by regex (#834) - gitlab-version: add
--check-securityto warn on security-relevant updates (default on in the Icinga Director Service Template) (#688) - haproxy-status: add
--ignoreto filter proxies/frontends/backends/servers by regex on<proxy>/<svname>(#835) - infomaniak-swiss-backup-devices: add
--ignore-customer,--ignore-name,--ignore-tag,--ignore-user - infomaniak-swiss-backup-products: add
--ignore-customer,--ignore-tag - ipmi-sel: add
--ignoreto filter SEL entries by regex (#982) - journald-query: add
--icinga-callbackso acknowledging the service in Icinga suppresses the matching events on following runs (#649) - json-values: add
--token/--headerfor HTTP auth,--warning-key/--warning/--critical-key/--criticalfor numeric alerts at a JSON key, and dot-notation in--*-key(#1005) - librenms-alerts, librenms-health: support device-type
management - logfile:
--filenamenow accepts time macros ({today},{yesterday},{%Y},{%y},{%m},{%d},{%H},{%M},{%S}), so logfiles whose name contains the current date (20260422.log,app-2026-04-22.log, etc.) can be monitored without a wrapper script.{today}/{yesterday}resolve tolerantly: the compact form (YYYYMMDD) is tried first, ISO 8601 (YYYY-MM-DD) is used as fallback. Read offset and pending matches carry over when the filename changes on the next day (#678) - nextcloud-enterprise: reports Nextcloud Enterprise subscription information
- podman-info: displays system-wide Podman information (#1023)
- podman-stats: cpu and memory statistics for all running Podman containers (#1023)
- procs: add
--top Nto list the top N processes by CPU time and memory usage - procs: add
--lengthyfor extended--toptable output - procs: add
--warning-cpu-percent/--critical-cpu-percentfor aggregated CPU usage of filtered processes - redfish-system: checks overall system health (processors, BIOS, power state, indicator LED, hostname, SKU, serial number) reported by a Redfish-compatible server, previously bundled into
redfish-drives(#652) - scanrootkit: add 41 signatures for modern Linux rootkits, backdoors and implants (BPFDoor, Drovorub, Ebury, FontOnLake, Kaiji, Kobalos, perfctl, PUMAKIT, Reptile, Symbiote, Winnti for Linux, and more)
- scanrootkit: add 11 further signatures for recent Linux threats (Auto-Color, Bootkitty + BCDropper, DslogdRAT, Hadooken, Koske, LinkPro, randkit, Snapekit, Sutekh, tracker-fs / vmwfxs, WolfsBane / FireWood)
- scanrootkit: findings now show the year the rootkit was first publicly disclosed when known
- scanrootkit:
rootkit_itemsandrootkit_possibleperfdata now count distinct rootkits (one rootkit triggering several indicators counts once), and themaxfield carries the current total number of rootkit signatures so signature-database growth can be graphed - sensors-temperatures: add
--ignoreto filter sensors by regex (#965) - strongswan-connections: add
--matchand--ignoreto filter VICI connections by regex (#738) - statuspal: also detect
emergency-maintenancestate - valkey-status: support user and password credentials PR #954, thanks to Claudio Kuenzler
Icinga Director:
- Add Debian 13 Service Set
Assets:
- sudoers: disable PAM's session stack log lines when user icinga or nagios uses sudo
Build, CI/CD:
- Bump pinned
linuxfabrik-libdependency from 3.0.0 to 3.2.0 - Windows MSI no longer depends on an installed Icinga2 agent (install path unchanged:
ProgramFiles64Folder/ICINGA2/sbin/linuxfabrik)
Grafana:
- All panels: do not connect across nulls
Icinga Director:
- Service Templates: "Notes URL" now points at the docs site instead of GitHub source; re-run
tools/build-basket --autoto pick up the new URL
Monitoring Plugins:
- all plugins: ignore unknown arguments instead of erroring (helps when rolling out updated service definitions)
- all plugins: expanded
DESCRIPTIONin--help - all plugins: drop incorrect "Supports Nagios ranges" mentions from
--helpwhere not implemented - atlassian-statuspage: report the primary incident, affected services and maintenance windows. New
--service REGEX(repeatable). Perfdata:impact→cnt_warn/cnt_crit; Grafana dashboards need re-pointing - by-ssh, by-winrm, disk-usage, example, file-ownership, fs-ro, infomaniak-events, journald-query, logfile, matomo-reporting, mysql-logfile, php-status, pip-updates, systemd-unit: user-supplied
appendparameter values replace the defaults instead of being appended (#540) - cpu-usage: remove
--top(moved toprocs --top) - disk-io: also monitor normalized iowait on Linux (100% = one fully I/O-saturated core)
- file-count: much faster on large directories (stops counting once thresholds are exceeded)
- file-ownership:
--filenamemerges with the default file list; use--no-default-filesto check only user-supplied files - file-ownership: default file list extended with CIS benchmark-relevant files (login.defs, sudoers, sysctl, systemd, PAM, etc.)
- logfile: output now names the scanned file, each configured
--*-pattern/--*-regexwith its per-pattern match count and severity label, and the--ignore-*patterns (#547) - nextcloud-enterprise, nextcloud-version:
occno longer has to be executable;php occ <cmd>is invoked under the owner ofconfig/config.php - php-status: default to
http://localhost/monitoring.php, tolerate its absence - redfish-sensor:
--insecurenow defaults toTrueto matchredfish-drives,redfish-selandredfish-system. BMCs typically serve a self-signed certificate, so the previous default (False) made the check fail out of the box on most hardware. Pass--insecure=falseexplicitly if you have a trusted CA chain installed - scanrootkit: exact per-symbol kernel symbol matching (fewer false positives on legit symbols that share a substring with a signature)
- service: Windows services with a space in their technical name (e.g.
"RAS Telegraf") now match--service; clearer error when filtered out by--starttype(#921) - systemd-units-failed: failed unit names appear in the first output line for dashboard/SMS readability (#967)
Tools:
- build-basket:
--autois now truly non-interactive; unknown datafields and objects get fresh uuids instead of prompting - rename
tools/check2basket→tools/build-basketandtools/remove-uuids→tools/basket-remove-uuids; update any wrappers or documentation
Monitoring Plugins:
- cpu-usage: remove
--top(moved toprocs --top) - scanrootkit: remove the Suckit rootkit check and the
rootkit_extraperfdata; update Grafana panels and alerts that rely onrootkit_extra
Tools:
- remove legacy
grafana-tool
Build, CI/CD:
- RPM:
dnf install linuxfabrik-monitoring-pluginsno longer conflicts with other RPMs shipping ELF build-id symlinks (e.g.azure-cli) (#979) - requirements.txt: add missing
setuptoolsdependency
Tools:
- build-basket: strip argparse
%%escaping in Icinga Director basket descriptions - build-basket: write
[]as default value forappendparameters withdefault=None - update-readmes: backslashes in a plugin's
--helpoutput (e.g. Windows example paths likeC:\logs\...) no longer make README regeneration crash
Grafana:
- Icinga Dashboard: use a query for the service name so the dashboard works regardless of the configured service name
Monitoring Plugins:
- batch of semantic bugfixes across axenita-stats, hin-status, keycloak-version, mysql-table-locks, network-connections, nextcloud-security-scan, ntp-w32tm, openstack-swift-stat, openvpn-version, php-status, qts-temperatures, redis-status, sap-open-concur-com, starface-java-memory-usage, valkey-status, wildfly-memory-usage, wildfly-non-xa-datasource-stats, wildfly-xa-datasource-stats (#1070)
- about-me: perfdata error when
--dmidecodeis used and no HW information is available - about-me: various
sys_dimensionserrors on some machines (#1006) - by-ssh: add missing
--verboseparameter - cpu-usage: false 100% readings on Windows with 64+ cores (#626)
- deb-updates: crash when reporting the number of available updates
- docker-stats: memory perfdata used CPU thresholds
- docker-stats: replace per-container perfdata with aggregate metrics (containers, cpu)
- file-age: handle race when files disappear on busy file systems
- fs-ro: ignore
/run/credentials - keycloak-stats: incorrect symlink for lib
- librenms-alerts: also report alerts in the
WORSE,BETTERandCHANGEDstates, not onlyACTIVE. Previously any device whose alert had already transitioned (severity bumped, diff detected, etc.) was silently reported as OK. On LibreNMS 25.2.0 and newer this affected a large share of alerts because everydiffdetection now flips the alert into theCHANGEDstate (#882) - logfile:
OverflowErrorwhen inode exceeds SQLite INTEGER range on Windows/NTFS (#1035) - logfile: multiple services on the same logfile with different patterns no longer interfere with each other (#698)
- logfile: after the #698 state-DB rename, the read offset could reset on every run on hosts upgrading from an older DB schema, visible as a steadily climbing
scanned_linesin Grafana - mysql-joins: crash on a server booted less than one second ago
- mysql-memory: crash in "other process memory" on hosts with psutil older than 5.3.0
- mysql-traffic: crash from missing import and crash on a server booted less than one second ago
- needs-restarting: show "Running Kernel X != Installed Kernel Y" on Debian-based systems when
needrestartreports a pending kernel upgrade - notify-host-mail, notify-service-mail: Icinga logo renders inline again on hosts with long FQDNs (#790)
- ntp-*: prevent
TypeErrorwhen comparing int and str - podman-stats: precise numeric values; aggregate perfdata includes block and network I/O totals
- redfish-drives: a system-level warning unrelated to storage (such as an inlet temperature threshold) no longer flips the check to WARN while all drives are healthy. The system-level health is covered by
redfish-systeminstead (#652) - rocketchat-stats: crash when reporting the user count
- scanrootkit: a single malformed signature file no longer crashes the whole check
- scanrootkit: directory-only rootkit signatures (e.g. KBeast
/usr/_h4x_, Kaiji/usr/bin/lib) are now actually evaluated - updates: crash on Python 3.9 when pending updates are reported
- users: incorrect TTY count when SSH clients connect via IPv6 (#989)
- valkey-status: TLS connection PR #954, thanks to Claudio Kuenzler
v2.2.1 - 2025-09-22
Monitoring Plugins:
- ntp-chronyd, ntp-ntpd: SyntaxError: f-string: unmatched '(' on python 3.11 (#952)
v2.2.0 - 2025-09-19
Build, CI/CD:
- Add support for debian13 and rhel10 packages
Monitoring Plugins:
- about-me: add option to avoid dmidecode and sudo (#948)
- ntp-*: add
--stratumparameter and modernize code - spring-boot-actuator-health: derived from PR #940, thanks to Dominik Riva - a monitoring plugin for the Spring Boot Actuator
/healthendpoint - virustotal-scan-url: analyses URLs to detect malware and other breaches using VirusTotal
Assets:
- Linuxfabrik Monitoring Plugins SELinux Type Enforcement Policies: allow D-Bus daemon IPC with unconfined services via FIFOs and UNIX sockets
- Linuxfabrik Monitoring Plugins SELinux Type Enforcement Policies: add missing type enforcement requirements (#918)
Build, CI/CD:
- Build on Ubuntu 24.02 error on system_dbusd_t (#918)
Monitoring Plugins:
- deb-updates: apt-get returns with an error (#904)
- deb-updates: missing rights and still OK (#937)
- icinga-topflap-services: prevent stacktrace when required parameters are empty
- openstack-swift-stat: problem with python-keystoneclient, optimize requirements* (#900)
- safenet-hsm-state: set
use_agentto false and enable perfdata in Icinga Director Basket - statuspal: handle incident_type "performance"
- users: "no one is logged in" on Ubuntu 24.04 LTS (#919)
- valkey-status|redis-status: improve
--ignore-thp(#898)
Assets:
- To make it easier to integrate with other tools, all RST files have been converted to GitHub-flavoured Markdown.
Build, CI/CD:
- Change to official, up-to-date Rocky Linux containers for building RPMs (Motivation)
Icinga Director:
- about-me: change command timeout from 30 to 60
- atlassian-statuspage: increase Icinga Director command timeout
- disk-io: change command timeout from 10 to 30 for Windows
- memory-usage: change command timeout from 10 to 30 for Windows
- ntp-w32tm: change command timeout from 10 to 30 and check interval from 60 to 600
- procs: change command timeout from 10 to 30 for Windows
Monitoring Plugins:
- about-me: report current cpu frequency and avoid dmidecode noise, new perfdata
- cpu-usage: non-blocking behaviour (interval=None + manual deltas via SQLite DB) so we get both accuracy and faster runtime
- disk-io: modernize code
- gitlab-health: increase timeout from 3 to 8 secs
- gitlab-liveness: increase timeout from 3 to 8 secs
- gitlab-readiness: increase timeout from 3 to 8 secs
- infomaniak-events: increase timeout from 8 to 28 secs
- journald-usage: also print SystemMaxUse and SystemKeepFree
- memory-usage: modernize code
- pip-updates: modernize code
- procs: avoid token + PEB reads and repeated attribute calls per process, as this has an impact on busy Windows servers
- rocketchat-stats: improve output and docs a little bit
- statuspal: 'performance' degredation is now a WARN, not UNKNOWN
v2.1.1 - 2025-06-20
Icinga Director:
- Icinga2 Service Set
v2.1.0 - 2025-06-20
Icinga Director:
- Icinga2 Service Set
Monitoring Plugins:
- icinga-version: tracks if Icinga is EOL
Icinga Director:
- all-the-rest.json: correct nextcloud-app-update.timer unit states
Monitoring Plugins:
- disk-usage: handle disk accessibility (#792)
- updates: "The syntax of the command is incorrect."
Icinga Director:
- atlassian-statuspage: Increase timeout from 8 to 30 secs
- uptimerobot: Increase timeout from 8 to 30 secs
- Path to notification plugins changed back to
/usr/lib64/nagios/plugins
Monitoring Plugins:
- matomo-version: use EOL library, parameter
--cache-expireis deprecated
v2.0.0 - 2025-06-06
Build, CI/CD:
-
Windows: To save disk space, Windows plugins are only compiled if they are useful for testing local system resources. Plugins that check remote services should run on Linux. Currently we compile:
- cpu-usage
- dhcp-scope-usage
- disk-io
- disk-usage
- dns
- dummy
- file-age
- file-count
- file-size
- logfile
- memory-usage
- network-connections
- network-io
- network-port-tcp
- ntp-w32tm
- path-rw-test
- procs
- scheduled-task
- service
- swap-usage
- updates
- uptime
- users
-
Linux: To save disk space, we no longer compile to binaries. The .rpm and .deb packages now ship the source code and require Python 3.9+ to be installed on the target host. We also install a Python venv (virtual environment) in
/usr/lib64/linuxfabrik-monitoring-plugins/venv/to manage all Python libraries withpip. Sorry for the back and forth.
Icinga Director:
-
all-the-rest.json: drop legacy commands
-
The Icinga Director configuration has been updated to remove plugins that are no longer compiled for Windows:
- apache-solr-version
- axenita-stats
- composer-version
- countdown
- csv-values
- dhcp-relayed
- diacos
- disk-smart
- feed
- fortios-cpu-usage
- fortios-firewall-stats
- fortios-ha-stats
- fortios-memory-usage
- fortios-network-io
- fortios-sensor
- fortios-version
- githubstatus
- grassfish-licenses
- grassfish-players
- grassfish-screens
- haproxy-status
- hin-status
- huawei-dorado-backup-power
- huawei-dorado-controller
- huawei-dorado-disk
- huawei-dorado-enclosure
- huawei-dorado-fan
- huawei-dorado-host
- huawei-dorado-hypermetrodomain
- huawei-dorado-hypermetropair
- huawei-dorado-interface
- huawei-dorado-power
- huawei-dorado-system
- icinga-topflap-services
- infomaniak-events
- infomaniak-swiss-backup-devices
- infomaniak-swiss-backup-products
- jitsi-videobridge-stats
- jitsi-videobridge-status
- json-values
- kemp-services
- keycloak-memory-usage
- keycloak-stats
- keycloak-version
- librenms-alerts
- librenms-health
- librenms-version
- matomo-reporting
- matomo-version
- mediawiki-version
- metabase-stats
- mod-qos-stats
- moodle-version
- mysql-aria
- mysql-binlog-cache
- mysql-connections
- mysql-database-metrics
- mysql-innodb-buffer-pool-instances
- mysql-innodb-buffer-pool-size
- mysql-innodb-log-waits
- mysql-joins
- mysql-logfile
- mysql-memory
- mysql-open-files
- mysql-perf-metrics
- mysql-query
- mysql-replica-status
- mysql-slow-queries
- mysql-sorts
- mysql-storage-engines
- mysql-system
- mysql-table-cache
- mysql-table-definition-cache
- mysql-table-indexes
- mysql-table-locks
- mysql-temp-tables
- mysql-thread-cache
- mysql-traffic
- mysql-user-security
- nextcloud-security-scan
- nextcloud-stats
- nextcloud-version
- nginx-status
- nodebb-cache
- nodebb-database
- nodebb-errors
- nodebb-events
- nodebb-groups
- nodebb-info
- nodebb-users
- nodebb-version
- onlyoffice-stats
- openjdk-redhat-version
- openvpn-version
- php-fpm-ping
- php-fpm-status
- php-status
- php-version
- pip-updates
- python-version
- qts-cpu-usage
- qts-disk-smart
- qts-memory-usage
- qts-temperatures
- qts-uptime
- qts-version
- redfish-drives
- redfish-sel
- redfish-sensor
- restic-check
- restic-snapshots
- restic-stats
- rocketchat-stats
- rocketchat-version
- sap-open-concur-com
- starface-account-stats
- starface-backup-status
- starface-channel-status
- starface-database-stats
- starface-java-memory-usage
- starface-peer-stats
- starface-status
- statusiq
- statuspal
- uptimerobot
- veeam-status
- whmcs-status
- wildfly-deployment-status
- wildfly-gc-status
- wildfly-memory-pool-usage
- wildfly-memory-usage
- wildfly-non-xa-datasource-stats
- wildfly-server-status
- wildfly-thread-usage
- wildfly-uptime
- wildfly-xa-datasource-stats
- wordpress-version
- xml
Monitoring Plugins:
- atlassian-statuspage: receive alerts on incidents on a specific Atlassian Statuspage
- deb-updates: checks for software updates on systems that use package management systems based on the
apt-getcommand - kubectl-get-pods: checks the health and status of kubernetes pods by running
kubectl get podsand parsing the results - rpm-updates: displays available updates, including a list of advisories about newer versions of installed packages
- valkey-status: returns information and statistics about a Valkey server
- valkey-version: tracks if Valkey is EOL
Build, CI/CD:
- compile-one.sh: provide Nuitka's no-deployment-flag (#864)
Monitoring Plugins:
- by-ssh: fix traceback on "permission denied"
- icinga-topflap-services: ignore events with "Waiting for Icinga DB to synchronize the config." to prevent UNKNOWNs
- needs-restarting: add missung import of lib.disk
- ping: '10 received' contains '0 received' (#860)
- snmp: Special characters not supported in options --v3-auth-prot-password and --v3-priv-prot-password (#886)
Build, CI/CD:
- create-fpms.sh: fix OS detection for setting OS family
- change linux packaging workflow to use native tools (rpmbuild, debuild)
Assets:
- prefix sudoers command alias to avoid conflicts (#880)
Monitoring Plugins:
- about-me: add valkey detection
- about-me: reports type of display server (if any)
- about-me: switch from lib.version to lib.distro
- csv-values: make use of ommitted --warning-query and --critical-query more robust
- disk-io: improve help text
- fail2ban: be a bit more verbose in case everything is ok
- fedora-version: switch from lib.version to lib.distro
- fs-inodes: improve code
- grassfish-screens: initialize screen statuses earlier
- haproxy-status: add unix socket support as alternative to HTTP(S) (#767)
- icinga-topflap-services: increase default warning level from 5 to 7
- load: Use
os.getloadavg()instead ofcat /proc/loadavg(#295) - php-status: bz2 and curl are no default modules
- redfish-sel: add support for Supermicro (#866)
- rhel-version: switch from lib.version to lib.distro
- snmp: add column "skip output" to CSV definition for devices, add unit tests
- snmp: make table output suppressable, streamline output
- systemd-unit: implement support for
systemctl --machineand--user
v1.2.0.11 - 2025-03-13
Build, CI/CD:
- Due to the new conventional commits and version string requirements in Windows MSI setup files, the project switches from calendar versioning to semantic versioning. Project starts at
v1.0.0.0. - Re-implemented
/buildand/.githubfrom scratch.
Assets:
- Move
/selinuxto/assets/selinux
Icinga Director:
- all-the-rest.json: Remove Tarifpool-v2 Service Set
Monitoring Plugins:
- Since some libraries such as pymysql or openssl have security vulnerabilities for Python 3.6, the project now requires Python 3.9+ to use the plugins in the source code variant.
- jitsi-videobridge-stats: Remove deprecated values (PR #780, thanks to SnejPro)
- jitsi-videobridge-stats: Remove deprecated warning and critical parameters, always returns OK
Notification Plugins:
- notify-*-rocketchat-telegram: Remove Telegram functionality, remove
-telegramsuffix
Build, CI/CD:
- Add support for ARM (#702)
Icinga Director:
- all-the-rest.json: Add Debian 12 (Cloud Image) Service Set
- all-the-rest.json: Add IcingaDB Service Set
- all-the-rest.json: Add Mastodon Service Set
- all-the-rest.json: Add Moodle Service Set
- all-the-rest.json: Add networking Service Set (mostly for Debian-based systems)
- all-the-rest.json: Add rsyslog Service Set
- all-the-rest.json: Add Ubuntu 24 Service Set
- all-the-rest.json: Add WHMCS Service Set
Monitoring Plugins:
- graylog-version
- hin-status
- icinga-topflap-services
- keycloak-memory-usage
- keycloak-stats
- mastodon-version
- moodle-version
- openvpn-version
- scanrootkit
- statusiq
- uptimerobot
- whmcs-status
Icinga Director:
- crypto-policy: New defaults according to LFOps crypto_policy role
- dhcp-relayed: Binding a socket to all network interfaces
- disk-io: UnboundLocalError: cannot access local variable 'msg' where it is not associated with a value (#777)
- docker-stats: always-ok not referenced (#839)
- fortios-network-io: Fix reading from local SQLite database
- mysql-query: Fix director basket
- needs-restarting: UnboundLocalError under nagios user (#799)
- service: Implement
--starttype, as code was missing (parameter is now appending); implement unit-tests - snmp: With some CSV files, user gets traceback
IndexError: list index out of range. Add more unit-tests. - strongswan-connections: check fails if using AES-GCM algorithm (#806)
- swap-usage: Fix ProcessLookupError
Monitoring Plugins:
- about-me: expanded RAM isn't updating (#757)
- apache-httpd-status: failure when mod_md is enabled (#783)
- docker-stats: ValueError: could not convert string to float: '0B' (#776)
- redfish-sel: UnboundLocalError: local variable 'sel_path' referenced before assignment (#779)
- whmcs-status: handle null correctly in whmcs api response (#820)
Build, CI/CD:
- Create MSI package for Windows.
- Switch compilation for Linux from pyinstaller to Nuitka.
- Switch compilation for Windows from mingw/gcc to MSVC.
- Switch compilation platform for the .tar.gz/.zip distribution files from CentOS 7 to Ubuntu 20.04.
- Refactor CI/CD pipeline, move from self-hosted Github runners to runners at Github.
- Linuxfabrik/lib are now part of the requirements.txt, so no extra checkout needed any more.
Icinga Director:
- all-the-rest.json: Make all dmesg Service Sets use sudo
- all-the-rest.json: Check /var/log/syslog file size in all Debian Service Sets
- All plugins for Windows: Prepared for msi and changed default path from C:\ProgramData\icinga2\usr\lib64\nagios\plugins to c:\Program Files\icinga2\sbin\linuxfabrik
- Replace png with svg icons for all plugins
Monitoring Plugins:
- about-me: Determines date of birth of cloud VMs more accurately
- about-me: Add Mastodon detection
- about-me: Add Moodle detection
- about-me: Add WHMCS detection
- dhcp-scope-usage: Ignore PercentageInUse fractions
- disk-io: Re-add support for Windows after last rewrite
- disk-usage: Add
--list-fstypesand--fstypefor specifying the file system type - fail2ban: More compact output (closes #141)
- file-size: fix help text
- fs-inodes: Check inode usage on real and different disks.
--mountparameter is deprecated. - infomaniak-events: return CRIT in case of critical events
- keycloak-version: Check Keycloak Version via REST API (#748)
- librenms-alerts, librenms-health: Compact output is the new default and shows non-OK only
- mysql-thread-cache: DB daemon must have been running for an hour before the cache hit rate is measured.
- mysql-version: handle
mysql: Deprecated program name - nextcloud-security-scan: Handle error on https://scan.nextcloud.com/
- nodebb-stats: In "Last user", don't report the user you login with (#536)
- openstack-nova-list: No more need for keystoneauth and keystoneclient
- redis-status: Add
--tlsparameter - rhel-version:
--extended-supportchecks for "Extended Life Cycle Support" EOL (#740) - rocketchat-version: use EOL library, parameter
--cache-expireis deprecated - systemd-unit: Improve output
- uptime: Report downtime (#191)
Build, CI/CD:
- Remove support for debian10, rhel7, ubuntu1804 packages (OS's are EOL)
Notification Plugins:
- notify-*-rocketchat: remove telegram functionality
2024060401 - 2024-06-04
Monitoring Plugins:
- mysql-query
Build, CI/CD:
- Added Ubuntu 24.04
2024052901 - 2024-05-29
Icinga Director:
- all-the-rest.json: Remove all predefined "Journald Query" definitions, as they were not as useful in practice as we thought. Single services are more useful.
- Lowered the criticality of many service templates and service set services to make the monitoring less noisy by default. Make sure to double check and increase the criticality for important services.
Monitoring Plugins:
- disk-io: Nearly rewritten from scratch, old parameters have been replaced by new, better ones. Perfdata "throughput" has been renamed to "bandwidth". Filter disks which are really mounted, translate dm-* device names, wildcard support for ignore disks (#709, #708, #676)
- file-size: Note that the plugin now requires a size qualifier when specifying parameters, e.g.
--warning=10Kfor 10 KiB (instead of--warning=10000as in previous versions). - journald-query: Pattern-matching is now always case-sensitive (#745)
- librenms-alerts: Rewritten from scratch to fetch from LibreNMS MySQL/MariaDB database (therefore the check comes with new parameters)
- librenms-health: Rewritten from scratch to fetch from LibreNMS MySQL/MariaDB database (therefore the check comes with new parameters)
- php-fpm: Remove parameters
--*-max-childrenbecause php-fpmmax children reachedis either 0 or 1 - snmp: Improve Performance Data Handling (#481) - update your CSV definition files and add two more columns according to the check's README
- uptime: Use the plugin to warn about recent reboots (#722). Note that the plugin now requires a time qualifier when specifying parameters, e.g.
--warning=180Dfor 180 days (instead of--warning=180as in previous versions).
Notification Plugins:
- All notification plugins are now installed in
/usr/lib64/nagios/plugins/notifications/by default, because otherwise installing the notification and monitoring plugins package at the same time fails (#726)
Icinga Director:
- all-the-rest.json: New TuneD Service Set (therefore removed from all "OS - RHEL" service sets)
Monitoring Plugins:
- dhcp-relayed (a port of check_dhcp_relayed)
- composer-version
- mediawiki-version
Icinga Director:
- all-the-rest.json: Rename "Starface Java Status" to "Starface Java Memory Usage"
- all-the-rest.json: Ignore session-c*.scope in systemd-units-failed by default
Monitoring Plugins:
- *-version: Add new parameters
--insecure--no-proxy--timeout - about-me: Add detection of non-default software, udp ports, hardware and much more
- about-me: Add new parameters
--insecure--no-proxy--timeout - about-me: Pipes ("|") within the plugin output lead to broken perfdata (#741)
- apache-httpd-status: Add new parameters
--no-proxy--timeout - axenita-stats: Add new parameters
--insecure--no-proxy - cpu-usage: Add
--topparameter, showing 5 top processes by default - csv-values: Pipes in data are seen as delimiter between check output and performance data (#727)
- deb-lastactivity: WARN if last modified timestamp is not found for one or more packages (#743)
- diacos: Add new parameter
--insecure - feed: Make use of
--insecure--no-proxy--timeout - file-descriptors: Add
--topparameter, showing 5 top processes by default - file-size: Support Nagios ranges for
--warningand--critical(PR #735, thanks to djmcd89) - fs-ro: Add
/dev/loopto default ignore list - fs-ro: Make output better readable (PR #729, thanks to Konrad Bucheli)
- fs-ro: Show mount point info on first line when there is only one hit (PR #730, thanks to Konrad Bucheli)
- githubstatus: Add new parameters
--insecure--no-proxy--timeout - gitlab-health: Add new parameters
--insecure--no-proxy - gitlab-liveness: Add new parameters
--insecure--no-proxy - gitlab-readiness: Add new parameters
--insecure--no-proxy - grassfish-*: Add new parameters
--insecure--no-proxy--timeout - haproxy-status: Add new parameters
--insecure--no-proxy - huawei-dorado-*: Add new parameter
--insecure - infomaniak-*: Add new parameters
--insecure--no-proxy--timeout - infomaniak-events: Add new parameter
--ignore-regex - infomaniak-swiss-backup-products: Improve output
- jitsi-*: Add new parameters
--insecure--no-proxy - journald-query: Remove hard-coded
--bootparameter from query - kvm-vm: Improve output
- librenms-version: Fetches info from local SQLite using new librenms library
- logfile: Add new parameters
--insecure--no-proxy--timeout - memory-usage: Add
--topparameter, showing 5 top processes by default - metabase-stats: Add new parameters
--insecure--no-proxy--timeout - mod-qos-stats: Add new parameters
--insecure--no-proxy--timeout - mysql-memory: Enhance output, set threshold to 95%
- nextcloud-security-scan: Add new parameters
--insecure--no-proxy - nextcloud-stats: Add new parameter
--timeout - nodebb-*: Add new parameter
--no-proxy - nginx-status: Add new parameters
--insecure--no-proxy--timeout - ntp-chronyd: Provide config info if an ntp server is not being used
- onlyoffice-status: Add new parameters
--insecure--no-proxy - php-fpm-ping: Add new parameters
--insecure--no-proxy--timeout - php-fpm-status: Add new parameters
--insecure--no-proxy--timeout - php-status: Add new parameters
--insecure--no-proxy--timeout - redfish-drives: Add new parameters
--insecure--no-proxy--timeout - redfish-sel: Add new parameters
--insecure--no-proxy--timeout - redfish-sensor: Add new parameters
--insecure--no-proxy--timeout - rocket-*: Add new parameters
--insecure--no-proxy--timeout - sap-open-concur: Add new parameter
--insecure - statuspal: Add new parameters
--insecure--no-proxy--timeout - swap-usage: Report the top 3 processes causing the usage (Linux only)
- swap-usage: Add
--topparameter, showing 5 top processes by default - veeam-status: Add new parameters
--insecure--no-proxy - wildfly-*: Add new parameters
--insecure--no-proxy - xml: Add new parameter
--insecure
Icinga Director:
- all-the-rest.json: Fix "FreeIPA Server Service Set" definition
Monitoring Plugins:
- about-me: Throws exception for openvas (#749)
- infomaniak-events: Fix
UnboundLocalError: local variable 'keys' referenced before assignment - nextcloud-stats: KeyError: apps (#731)
- ntp-ntpd: Fixed unpacking of ntpq -p values (PR #758, thanks to Leo Pempera)
- ntp-w32tm: Fix
UnboundLocalError: local variable 'clock_rate' referenced before assignment
2023112901 - 2023-11-29
Monitoring Plugins:
- Notifications Plugins now generate URLs for Icinga DB Web instead of the old IcingaWeb2 Monitoring Module (#643)
Grafana:
- mysql-connections: Add Grafana dashboard
- mysql-memory: Add Grafana dashboard
Icinga Director:
- all-the-rest.json: Add Debian 12 (Bookworm), add deb-lastactivity
- all-the-rest.json: Add Apache Solr Service Set
- all-the-rest.json: Increase file size warning for
/var/log/secure
Monitoring Plugins:
- about-me: Add detection of Apache Solr
- apache-solr-version
- deb-lastactivity (PR #710, thanks to Yannic Schüpbach)
- gitlab-health (#670)
- gitlab-liveness (#670)
- gitlab-readiness (#670)
- gitlab-version
- ntp-w32tm (#629)
- openjdk-redhat-version
- openstack-nova-list
- postgresql-version
- python-version
- redis-version
- statuspal
Project:
- Add a
requirements.txt
Features:
- sudoers: Don't log command calls any longer.
Icinga Director:
- all-the-rest.json: Remove "Journald Query - aide-check.service" from the AIDE service set because it's not useful
Monitoring Plugins:
- All plugins: Consistently reporting errors using cu() instead of oao()
- *-version: Add eol offset date, optional warn on new major/minor/patch
- *-version: Curl from https://endoflife.date first, then use hardcoded version (#680)
- about-me: Add detection of ncdu
- about-me: Add detection of yarn
- about-me: Show systemd timers with next runtime
- cpu-usage: On Windows, exclude "System Idle Process" from the Top3 list
- disk-smart: Skip unsupported disks (#672)
- disk-usage: Add a parameter to select performance data (#697)
- fail2ban: Improve output, add unit-test
- fortios-firewall-stats: Allow the check to run even some FortiOS users use only IPv4 or IPv6 (PR #719, thanks to Pierrot la menace)
- grafana-version: Add Grafana v9.5
- infomaniak-events: Add filter for service categories
- infomaniak-swiss-backup-devices: Improve column ordering in output
- journald-query: Improve output
- mysql-aria: Remove WARN if
aria_pagecache_read_requests> 0 andpct_aria_keys_from_mem< 95% - mysql-connections: Add perfdata mysql_max_used_connections
- mysql-connections: Report and warn on current usage instead of peak usage, and improved output.
- mysql-innodb-buffer-pool-size: Improve code and output
- mysql-logfile: Returns OK instead of UNKNOWN if logfile is found but empty
- mysql-logfile: State only UNKNOWN if the log is empty and wasn't set deliberately (PR #716, thanks to Eric Esser)
- mysql-logfile: Stop magic auto-configure if
--server-logis given - openstack-nova-list: Make more robust in case of OpenStack errors
- php-version: Check multiple installed PHP versions (#694)
- ping: Check plugin to fast states "error" (#691)
- qts-*: 'Keyerror: func' while executing qts-plugins (#692)
- qts-*: General code and README improvements, all tested against QuTScloud 4.5.6, 5.0.1 and 5.1
- qts-temperature: Is it correct to have one value for CPU and System Temperature Threshold? (#313)
- qts-version: Shows up to date even when new firmware available (#692)
- rocketchat-stats: There are new values available (#151)
- systemd-unit: Encode unit-name to text before running systemd command
- uptime: Additionally report last reboot time (#190
- xca-cert: refactor check, make better use of the new libraries (#75)
Monitoring Plugins:
- csv-values: header included in data results despite setting "--skip-header" (#706)
- journald-query: Rename perfdata from "sudo journald-query" to "journald-query"
- path-rw-test: To avoid race conditions, use a unique filename (#283)
- qts-disk-smart: Plugin not working since new update (#696)
- swap-usage: Fix Traceback
PdhAddEnglishCounterW failed
2023051201 - 2023-05-12
Monitoring Plugins:
- disk-usage: Add include mount points/fs (#662) (so dropped
--ignoreparameter) - keycloak-version3: Simplified, no longer cares about patch levels, no longer needs internet access (so dropped some parameters)
- php-version3: Simplified, no longer cares about patch levels, no longer needs internet access (so dropped some parameters)
- wordpress-version3: Simplified, no longer cares about patch levels, no longer needs internet access (so dropped some parameters)
- Implement a new and cleaner directory structure (#350)
- Remove all Python 2 based plugins and libraries from the project, and therefore remove the "3" suffix from all Python3-based plugins and libraries as well (#589)
- Simplify sudoers (#651)
Features:
- Question/Documentation: Are the tools to compile the download binary part of this repo? (#660)
Monitoring Plugins:
- apache-httpd-version
- by-ssh
- cometsystem (PR #650, thanks to Dominik Riva)
- fedora-version
- githubstatus
- grafana-version
- mysql-version
- network-io (#619)
- openstack-swift-stat
- postfix-version
- rhel-version
- safenet-hsm-state (PR #648, thanks to Dominik Riva)
Grafana:
- Add new panels, update existing ones
- Dashboards written in Jsonnet, to be maintained by Grizzly
- Add a grafana dashboard for the inbuilt icinga command (#577)
Monitoring Plugins:
- apache-httpd-status: Remove
ReqPerSec,BytesPerSec,BytesPerReq,DurationPerReqperfdata as they are wrong - disk-io:
--ignorenow ignores all disks "starting with" the given parameter value - disk-io: Move top3-processes-which-caused-the-most-io to here (#285)
- disk-usage: Add include mount points/fs (#662)
- disk-usage: allow passing absolute values for warn/crit (#114)
- disk-usage: Also show "free" in table (#482)
- disk-usage: Make plugin output more generic (#664)
- fortios-version: Simplified, returns version information in perfdata
- journald-query: Lower default for
--sincefrom 24h to 8h - kemp-services: Display the original status of every Virtual Service (#654)
- Move "test3" and "examples" folder into a new "unit-test" folder for each plugin (#288)
- nextcloud-version: Simplified, no longer cares about patch levels, no longer needs internet access
- php-fpm-status: Remove
req per secperfdata as it is meaningless - php-status: Move monitoring.php
- php-status: Rename perfdata item from
php-opcache-memory_usage-current_wasted_percentagetophp-opcache-memory_usage-current_wasted-percentage - restic-snapshots: Shorten output, add
--lengthyparameter, change DEFAULT_GROUP_BY to 'host,paths' - Unified most of the *-version3 checks in behavior, also using data from https://endoflife.date (no need for internet access).
Monitoring Plugins:
- kemp-services: Credentials not converted correctly (#653)
- disk-smart: Getting error: "KeyError: 'serial_number'" (#659)
- disk-usage: module 'psutil' has no attribute 'disk_partitions' (#663)
- file-age: Type object 'SMBDirEntry' has no attribute 'from_filename' (#665)
Monitoring Plugins:
- top3-processes-which-caused-the-most-io (moved it into disk-io)
2023030801 - 2023-03-08
Features:
- Move all CHANGELOG items for the "libs" into its own file (since it is a stand-alone project)
Monitoring Plugins:
- journald-query3: Removed
--grepand--case-sensitiveparameter which are a bit weird and only work on systemd v237+. Replaced by--ignore-regex. - journald-query3: Implement filter (therefore the check comes with new parameters) (#641)
- journald-usage3: Switch
--warningparameter from MiB to GiB - mysql-*3: Removed parameters
--hostname,--password,--portand--usernameand switched to option-file authentication (therefore all checks come with new parameters) - pip-updates3: Include- and exclude-property (therefore the check comes with new parameters) (#646)
- redis-status3: Add option to disable hit-ratio check (therefore the check comes with new parameters) (#623)
- service3: Check is rewritten and now able to check multiple Windows services on a host, supporting Python Regular expressions and threshold ranges (therefore the check comes with new parameters)
- veeam-status3: Add an option switch to "WarningVmLatestState" for an integer value of tolerated VM warnings (therefore the check comes with new parameters) (#630)
Icinga Director:
- Removed "OS - RHEL 7 Basic Service Set (Hardware)"
- Removed "oVirt Engine 4.2 Service Set"
- Removed "oVirt Engine 4.3 Service Set"
- Removed "oVirt Host Service Set"
- Removed "oVirt VM Service Set (RHEL 7)"
- Removed "oVirt VM Service Set (RHEL 8)"
- Removed "oVirt VM Service Set (Windows Python)"
- Removed "oVirt VM Service Set (Windows)"
- Removed "PostgreSQL 9.6 Service Set"
- Removed tags "redhat7" and "redhat8", because there are also "rhel7" and "rhel8"
Features:
- Linuxfabrik Monitoring Plugins SELinux Type Enforcement Policies
- Add new sudoers files for Alma 9, RHEL 9, Rocky 9, Fedora 37, Oracle 7, Oracle 8, Oracle 9 (#627 and more)
Monitoring Plugins:
- crypto-policy
- csv-values
- grassfish-licenses
- grassfish-players
- grassfish-screens
- infomaniak-events
- journald-query
- journald-usage
- ntp-chronyd (from "ntp-offset: Split it into three different ntp-checks (#449)")
- ntp-ntpd (from "ntp-offset: Split it into three different ntp-checks (#449)")
- ntp-systemd-timesyncd (from "ntp-offset: Split it into three different ntp-checks (#449)")
- restic-check
- restic-snapshots
- restic-stats
- systemd-timedate-status
- tuned-profile
Notification Plugins:
- notify-host-rocketchat-telegram
- notify-host-zoom
- notify-service-rocketchat-telegram
Icinga Director:
- AIDE Service Set
- All RHEL-based Basic Service Sets: Systemd Unit - debug-shell.service
- Apache Service Set for Debian 11 (#534)")
- Basic Service Set for Debian 11 (#533)")
- FreeIPA Server Service Set
- Grav Service Set
- Ubuntu 22 Service Set
- UPS Service Set (Network UPS Tools, nut)
Features:
- Enhanced sudoers files
Monitoring Plugins:
- about-me3: Add detection of restic
- about-me3: Add detection of Snap
- about-me3: Add Maker and Model (#637)
- about-me3: Improve detection of coturn
- about-me3: Improve psutil error handling
- about-me3: Make external IP search configurable with 3rd party providers (and disabled by default) (#645)
- about-me3: Re-written from scratch, now also recommends tags for our Icinga Director Basket. New parameter
--tags. - about-me3: Remove unstable bonding detection
- disk-usage: Move state output to usage column
- dmesg3: add additional message to ignorelist
- docker-info3: Report more info in case of failures
- docker-stats3: Report more info in case of failures
- fs-ro: Exclude squashfs filesystems (#412)
- fs-ro: Ignore ramfs (#617)
- infomaniak-swiss-backup-*: Apply new API version
- journald-usage: Increase DEFAULT_WARN to 6 GiB
- matomo-reporting3: Perfdata now is also aware of percentages
- mysql-connections: add --ignore-name-resolution (#631)
- mysql-storage-engines3: Improve recognition of schema.table
- mysql-user-security: Ignore mysql.sys and mariadb.sys users
- network-connections: Alert if there's more than a specified number of conns (#621)
- php-status3: Improve output in case of startup/config/module errors
- php-status3: URL to monitoring.php should be optional
- php-version: Add PHP 8.3
- qts-version3: Add support for firmware 5.0.1+
- redis-status: Do not warn on "Peak memory"
- rpm-lastactivity: do | sort | tail -1 with Python Code (#94)
- service3: Now able to check multiple windows services at once (#609)
Icinga Director:
-
Enhanced RHEL 7+ and Fedora-based Service Sets by TuneD Profile
-
Enhanced RHEL 8+-based Service Sets by Crypto Policy
-
Enhanced all Service Sets checking for a Systemd Service by an according Journald Query
-
Enhanced all Service Sets checking for a Systemd Service by Systemd TimeDate Status
-
Notifications are enabled only for critical hardware-related services (assuming you want to stay up at 2 a.m.)
-
Split up the MariaDB/MySQL service sets into smaller sets:
- MySQL/MariaDB InnoDB Service Set
- MySQL/MariaDB Metrics Service Set
- MySQL/MariaDB Replication Service Set
- MySQL/MariaDB Schemas Service Set
- MySQL/MariaDB Security Service Set
- MySQL/MariaDB Service Set
Monitoring Plugins:
- disk-usage: ignore type CDFS by default (#632)
- docker-stats missing shortening of containername in perfdata output (#600)
- file-age: critical reported for new files because modification time is negative or not set (#618)
- infomaniak-swiss-backup-devices3: Fix TypeError: unsupported operand type(s) for -: 'int' and 'NoneType'
- librenms-version: KeyError: 'mysql_ver' (#602)
- matomo-reporting3: --metric - Got more information back instead one metric (#603)
- nextcloud-stats: Fix error non-existing ALWAYS_OK Attribute (#640)
- ping: ping -t has to be int but its float (#628)
- rpm-lastactivity: ValueError: invalid literal for int() with base 10: '' (#616)
- systemd-timedate-status: UNKNOWN with "unknown operation show" on RHEL7 (#605)
- updates: On Windows with closed firewall a PowerShell error is returned (#633)
Features:
- All plugins: Remove code for self-handling Python virtual environments (venv). (#543)")
Monitoring Plugins:
- ntp-offset (due to "ntp-offset: Split it into three different ntp-checks (#449)")
Icinga Director:
- Remove DiagTrack from Windows Service Sets, since it's windows telemetry
2022072001 - 2022-07-20
- wildfly-memory-pool-usage: Flapping PS_Eden_Space reporting (#563) - Removed
--warningand--criticalparameters (not needed anymore)
Features:
- This CHANGELOG.
- Add hidden
.windowsfiles as indication for automatic compilation on/for Windows systems. - Add sudoers file for Fedora 35 and Fedora 36.
Monitoring Plugins:
- diacos (PR #567, thanks to Dominik Riva)
- infomaniak-swiss-backup-devices
- infomaniak-swiss-backup-products
- mysql-aria
- mysql-binlog-cache
- mysql-connections
- mysql-database-metrics
- mysql-innodb-buffer-pool-instances
- mysql-innodb-buffer-pool-size
- mysql-innodb-log-waits
- mysql-joins
- mysql-logfile
- mysql-memory
- mysql-open-files
- mysql-perf-metrics
- mysql-replica-status
- mysql-slow-queries
- mysql-sorts
- mysql-storage-systems
- mysql-system
- mysql-table-cache
- mysql-table-definition-cache
- mysql-table-indexes
- mysql-temp-tables
- mysql-thread-cache
- mysql-traffic
- mysql-user-security
- nodebb-cache
- nodebb-database
- nodebb-errors
- nodebb-events
- nodebb-groups
- nodebb-info
- nodebb-users
- strongswan-connections
- xml (replacement for "wsdl" check from PR #583, thanks to Dominik Riva)
Icinga Director:
- duplicity Service Set
- strongSwan Service Set
Monitoring Plugins:
- about-me: Add AIDE (#546)
- about-me: Add Birthdate (#554)
- about-me: Add certbot and acme.sh (#433)
- about-me: Add gpg (#511)
- about-me: Add list of listening ports (#538)
- about-me: Add mod_security (#496)
- about-me: Add swanctl (#575)
- about-me: Print its own version (#439)
- about-me: Report active tuned-Profile in first line if tuned.service is found and running (#374)
- about-me: Report Boot Mode (#562)
- about-me: Show key features of the Machine (#561)
- All checks using SQLite databases: More unique sqlite db names (#333)
- apache-httpd-status: New parameter
--insecure - cpu-usage: Subtract the "nice" percentage from thresholds (#550)
- dhcp-scope-usage: Parse PercentageInUse locale-aware (PR #551)
- disk-io: Checks if psutil has a certain minimum version on systems with kernel 4.18+.
- disk-smart: Exclude zfs-volumes (PR #539)
- disk-smart: Now also runs on Windows (PR #553)
- disk-smart: Properly handle Power_On_Hours_and_Msec attribute perfdata parsing (PR #549)
- disk-usage: Critical but first line of plugin output prints "OK" (#545)
- docker-info: Raise CRIT on return code != 0 (#569)
- docker-stats: Improve handling of container names (#586). New parameter
--full-name. - file-age: Improve perfdata labels
- file-age: Performance data aggregation on file_age check (PR #544)
- file-age: shorten the message (#559)
- infomaniak-swiss-backup-devices3: Increase default thresholds from 80/90% to 90/95%
- infomaniak-swiss-backup-devices3: Sort output table by "Tags" column
- infomaniak-swiss-backup-products3: Changed thresholds from 14/5 days to 6/3 days
- infomaniak-swiss-backup-products3: Sort output table by "Tags" column
- ipmi-sel: Change the order of events (#558)
- needs-restarting3: Debian Buster/bullseye command not found (#572)
- php-status: Add a "--dev" switch to not warn on display_errors=On and display_startup_errors=On (#461)
- php-status: Change behavior when handling default values (#540)
- qts-*: Increase default connect timeout from 3 to 6 seconds
- Revert Python 3.6+
f-strings to use.format()to be more conservative - systemd-units-failed: Allow wildcards for the
--ignoreparameter (#542)
Icinga Director:
- Adjust windows director definitions to the new folder structure
- Increase windows service check intervals
Monitoring Plugins:
- disk-io3: Fix python3 lib calls
- file-count3: Traceback: KeyError: 'lib' (#591)
- fortios-memory-usage3: Change urllib.quote to urllib.parse.quote (PR #599)
- logfile3: "Database locked" and "UNKNOWN" in case of massive usage on a host (#578)
- keycloak-version3: AttributeError: 'NoneType' object has no attribute 'group' (#555)
- xca-cert3: Checks expiry date again
Monitoring Plugins:
- mysql-stats
- nodebb-stats
- nodebb-status
Icinga Director:
- Remove gpsvc on Windows
2022030201 - 2022-03-02
This is a "we migrated everything from GitLab to GitHub, but had to adjust many details afterwards" version. In terms of source code, nothing has changed compared to 2022022801, just a bunch of links in source code comments and READMEs.
- This is the last release including bugfixes for the Python 2 variant of all checks.
- This project has moved from a public repo on our self-hosted GitLab server to a public repo on GitHub to increase visibility and reach a larger community.
- The Git branches "master" and "develop" no longer exist - in the future we will only work with the "main" branch and create releases based on tags.
- Due to the removal of binaries (zip and png files), all commit hashes have changed.
- Removed all checks compiled for Windows from Git and moved them to our download server.
Monitoring Plugins:
- IPv4 scope usage for a Windows DHCP server service (running on Windows using PowerShell, or remotely on Linux or Windows using WinRM).
- Huawei OceanStor Dorado storage system: Status of backup power modules (Backup Battery Unit (BBU)), controller, disk basic status and performance data, enclosure information, plus basic information about fans, interfaces, power, attached hosts, the system itself, HyperMetro domain and pairing information.
- Redfish-based BMCs (instead of IPMI): drives, system event logs (SEL) and sensor data.
Notification Plugins:
- Notify via Zoom
- Notify via E-Mail
Icinga Director:
- Active Directory Certificate Services Service Set (#472)
- Active Directory Domain Services Service Set (#468)
- Active Directory Federation Services Service Set (#471)
- Active Directory Lightweight Directory Services Service Set (#473)
- acme.sh Service Set (#447)
- DHCP Server Service Set (#466)
- DHCP Server Failover Feature Service Set (#467)
- dhcp-scope-usage: add Icinga Director configuration
- DNS Server Service Set (#470)
- Duplicati Service Set
- Huawei Dorado Service Set
- Redfish Service Set
- Redfish no agent Service Set
- tpl-service-cert and tpl-service-cert-no-agent service templates
- Veeam Backup & Replication Service Set (#464)
- Web Server (IIS) Service Set (#465)
- Windows Basic Service Set extended Service Set
- Windows Defender Antivirus Service Service Set (#469)
Assets:
- Rocky 8 sudoers
- openSUSE Leap 15 sudoers
Monitoring Plugins:
- about-me: add ownCloud and alternate Nextcloud Path (#512)
- about-me: report virtualisation (#480)
- about-me: run even if psutil is or cannot be installed (#514)
- all plugins: adapt to pylinted libraries (#526)
- all plugins: let the new txt3 library do all encoding and decoding (#507)
- all plugins: pylint all check plugins (#529)
- all plugins: use new library "human.py" (#521)
- all plugins: use new library "shell3.py" (#525)
- all plugins: use new library "time3.py" (#524)
- all plugins: use new library "txt3.py" (#522)
- dhcp-scope-usage: add WinRM capability (#477)
- file-age: recompiled for windows
- librenms checks: add more filtering parameters
- librenms-alerts: add
--device-groupparameter - librenms-health: adjust check timeout
- nginx-status: print human readable total values (#520)
- php-status: hint when not running with sudo (#459)
- redis-status: make more tolerant when it comes to Defragmentation (#425)
- redis-status: support Redis 3.0 (#510)
- redis-status: only warn if cache hit rate < 10% (#490)
- redis-status: warn on bad OS configuration (#428)
- rocketchat-stats: rename rocket.chat to rocketchat (#335)
- swap-usage: don't display "swapped in" and "swapped out" on Windows (#454)
- veeam-status: make
--usernameand--passwordmandatory (#499) - wildfly-deployment-status: allow to limit deployment by name (#497)
Icinga Director:
- all-the-rest.json: adjust loolwsd to coolwsd
- all-the-rest.json: adjust director baskets for the new Windows variants
- all-the-rest.json: adjust Huawei service names
- all-the-rest.json: enable notifications for Redfish checks
- all-the-rest.json: extend Windows Basic Service Set
- all-the-rest.json: ensure the no-agent and sudo variants are based on Linux
- all-the-rest.json: split up LibreNMS services by type in the Service Set
- getent: increase Icinga timeout to 30 sec (#455)
Tools:
- check2basket: extend to support notification-plugins
Monitoring Plugins:
- about-me: Open Virtual Machine Tools Error: vmtoolsd must be run inside a virtual machine on a VMware hypervisor product (#513)
- about-me: Traceback "IndexError: list index out of range" (#443)
- about-me: Traceback 'ModuleWrapper' object has no attribute 'net_if_addrs' (#438)
- apache-httpd-status: Traceback on Ubuntu Xenial (16.04) (#436)
- borgbackup: AttributeError: 'str' object has no attribute 'decode' (#430)
- disk-smart: disk names like sdda, sdab and so on were not checked (#487)
- file-age: new files or modifications after now result in files from the future (#478)
- file-age: Windows variant crashes if using a glob wildcard (#494)
- fs-xfs-stats: I/O error "No such file or directory" while opening or reading /proc/fs/xfs/stat (#445)
- jitsi-videobridge-status3: TypeError: string indices must be integers (#527)
- librenms-health: timeout on too many values (#365)
- mysql-stats: Traceback (#170)
- nextcloud-stats3: TypeError: a bytes-like object is required, not 'str' (#517)
- nextcloud-stats3: TypeError: string argument without an encoding (#531)
- nextcloud-stats: DB size is reported using YiB (#463)
- nextcloud-version3: put get_owner() from base3 in here (#523)
- nginx-status3: ModuleNotFoundError: No module named 'lib.globals2' (#515)
- nginx-status: wrong perfdata (#440)
- ntp-offset: regular UNKNOWN when using with chrony (#71)
- php-status3: SyntaxError: invalid syntax (#532)
- php-status: On some machines, display_startup_errors is N/A (#434)
- php-version: Warns "PHP v7.4.25 is available (installed: v7.4.24)", but should not (#435)
- procs (Windows): Traceback "AttributeError: module object has no attribute STATUS_PARKED" (#453)
- procs3: on Windows, it always returns
oldest proc created 52Y 1M ago(#506) - procs: when checking if a process exists, returns OK even if the process is missing (#488)
- redfish-sensor: returns 404 against ESXi (#460)
- redis-status3: AttributeError: module lib has no attribute "disk2" (#498)
- redis-status: mistakenly reports "net.core.somaxconn is lower than net.ipv4.tcp_max_syn_backlog [WARNING]" (#458)
- redis-status: Redis requires more memory than available and is forced to use swap (#486)
- redis-status: warning when using a password on command line (#450)
- swap-usage: recompiled for Windows (#454), (#456)
- swap-usage: UnboundLocalError: local variable msg_body referenced before assignment (#456)
- systemd-unit: on Fedora, failed Units are printed with all columns shifted one to the right (#328)
- systemd-unit: UnitFileState is "", but supposed to be "empty" (#509)
- users: on Windows: UnicodeDecodeError: 'utf-8' codec can't decode byte 0x81 in position 25: invalid start byte (#451)
- users: quote the output because of possible pipe symbol in "WHAT" column (#17)
- veeam.py: ValueError: need more than 2 values to unpack (#45)
- Windows-compiled plugins are shipped without required 3rd party Python modules (#504)
Icinga Director:
- all-the-rest.json: fix GUIDs
Grafana:
- dns: Grafana Panels divide query time by 1000 (#453)
- fail2ban: Grafana Panels list "Banned IPs" twice (#139)
- fortios-network-io: fix Grafana dashboard name
Tools:
- basket-join: allow missing Datafield key
- basket-join: fix error on duplicate entries in JSON
- check2basket: abort on error with the
--autooption - check2basket: add workaround for notification-plugins
- check2basket: fix problem with notification-plugins
Icinga Director:
- all-the-rest.json: delete SysMain from Windows Service Set (#446)
- all-the-rest.json: remove getent from the basic Service Sets
- all-the-rest.json: disable TimeBrokerSvc (#427)
Tools:
- check2basket: remove default states for notifications
Features:
- All of the checks are ported to Python 3 (suffixed by
3). - Most of the checks are also available on Windows (compiled with Nuitka and suffixed by
.zip). - At the same time the style of the source code of all plugins has been unified according to the example check plugin.
- All plugins run flawlessly on Rocky and Alma Linux (simply so that was said).
Monitoring Plugins:
- Jitsi Videobridge Statistics and Status
- NodeBB Statistics, Status and Version
- Redis
- SAP Open Concur (thanks to Dominik Riva)
- Starface PBX: Account, Database and Peer Statistics; Overall, Backup and Channel Status; Java Memory Usage
- Veeam Status
Event Plugins:
- Cloudflare Security Level
Icinga Director:
- Four checks have been added to the Windows Basic ServiceSet (disk-io, dns, swap-usage, top3-processes-which-caused-the-most-io)
Monitoring Plugins:
- about-me: Reports much much more inventory info. New sections are Interfaces (IPv4), systemd default target, systemd timers, systemd enabled units, systemd mounts, systemd automounts, non-default users and crontabs.
- apache-httpd-status: Now calculates the average values ReqPerSec, BytesPerSec, BytesPerReq and DurationPerReq over Apache's uptime.
- php-*: Report more (don't forget to install the new
monitoring.phpas well). - procs: Counting is more accurate.
- ping: Mainly used for host alive checking, now reports OK on request (using
--always-ok) if a host cannot be reached for some reason only on the ping side, but can otherwise be checked e.g. by the Icinga agent.
Monitoring Plugins:
- about-me: add content of os family /etc/release file (#319)
- about-me: add GCC detection (#306)
- about-me: add GitLab Community Edition (Omnibus) detection (#371)
- about-me: add OpenVPN detection (#341)
- about-me: add the FQDN hostname to the first line (#368)
- about-me: add Veeam detection (#315)
- about-me: add vsftpd detection (#269)
- about-me: extend with more infos (#362)
- all plugins: add Python 3 versions for apache-httpd-stats (#327), axenita-stats (#376), borgbackup (#287), countdown (#377), disk-smart (#401), docker-info (#378), dummy (#379), fail2ban (#380), feed (#402), file-count (#381), fortios-* (#424), ipmi-sel (#384), ipmi-sensor (#385), kemp-services (#403), keycloak-version (#400), kvm-vm (#388), librenms-alerts (#389), librenms-health (#390), librenms-version (#314), mailq (#391), matomo-reporting (#405), matomo-version (#406), metabase-stats (#342), mysql-stats (#407), needs-restarting (#393), network-bonding (#409), network-port-tcp (#410), nextcloud-security-scan (#411), nextcloud-stats (#413), nginx-status (#414), ntp-offset (#387), onlyoffice-stats (#394), openvpn-client-list (#395), ping (#348), qts-* (#423), rocketchat-stats (#415), rocketchat-version (#416), sensors-battery (#418), sensors-temperature (#419), wordpress-version (#382), xca-cert (#375)
- all plugins: adapt source code to example plugin for file-size (#398), json-values (#399), logfile (#404), scheduled-task (#417), service (#386), snmp (#396), updates (#383), wildfly-* (#422)
- all plugins: consistently handle unicode (#334)
- all plugins: make usage of
--helppossible even if some Python modules are missing (#42) - all plugins: remove unnecessary import of lib.args (#347)
- all plugins: replace
print()byoao()for consistent unicode handling (#344) - all plugins: replace unit test code by new "test" library (#343)
- all plugins: save with UTF-8 encoding (#305)
- all plugins: use
lib.base.cu()instead ofprint_exc()(#345) - all plugins: validate automatically converted Python 3 variants (#359)
- apache-httpd-status: also print worker percentage state in table (#311)
- borgbackup: no need to open Borg logfile in binary mode (#420)
- cloudflare-security-level: make
--zone-idrepeatable (#309) - disk-usage: add
--ignoreparameter (repeating) (#351) - dmesg: add "brcmfmac" messages to ignore list (#338)
- dmesg: add
--ignoreparameter (repeating) (#340) - dmesg: reduce the output to a maximum of ten lines (#254)
- example: provide unit-tests (#326)
- file-age: improve output message (#361)
- file-ownership: check /tmp/linuxfabrik-plugin-cache.db (#356)
- file-ownership: fix defaults for Debian (#294), SLES (#317) and Ubuntu (#332)
- getent: also print the response (#297)
- openvpn-client-list: no need to open OpenVPN logfile in binary mode (#421)
- php-status: improve config and module error messages (#267)
- php-status: make check for a high Cache "Hit Rate" optional (#303)
- php-status: print php.ini "Off" and "On" values as "Off" and "On" (#325)
- php-status: remove "simplexml" from default module list (#284)
- php-status: report more opcache-settings in output table (#353)
- php-version: just check on PHP version Major.Minor (default), not Major.Minor.Patch (#304)
- php-version: test against package manager, print version from php.net just as a hint (#253)
- ping: add
--always-okfor unpingable but check-capable hosts (#392) - procs: alert on specific processes (#355)
- systemd-unit: the
--unitfilestateparameter should accept None to disable checking of the unit file state (#299) - systemd-units-failed: add
--ignoreparameter (repeating) (#160, #337) - wildfly-gc-status: increase default values for
avr_gc_time(#307) - wildfly-gc-status: refactor check (#308)
- wildfly-memory-pool-usage: don't alert on "PS_Survivor_Space" (if it exists) (#286)
Icinga Director:
- provide the Icinga Director command definitions using the basket (#301)
Tools:
- check2basket: add update mode (#203)
Monitoring Plugins:
- about-me: only last disk is shown (#281)
- about-me: remove newline after printing "vsftpd" (#364)
- about-me: reports loolwsd even if it is not installed (#370)
- about-me: too many values to unpack (#372)
- apache-httpd-status: ReqPerSec, BytesPerSec, BytesPerReq and DurationPerReq are average values calculated by Apache over its uptime (#310)
- apache-httpd-status: unsupported operand type(s) for +: 'float' and 'str' (#323)
- disk-io: after reboot, byte values are 0 or very low, so rate diffs are negative (#312)
- dmesg3: AttributeError: module 'lib' has no attribute 'base2' (#330)
- dmesg: always counts +1 (#331)
- dummy: broken in dev branch (#354)
- example3: partially uses base2 library (#369)
- file-age: correctly handle negative times (#188)
- getent: ascii codec can't decode byte (#367)
- mydumper-version: 'module' object has no attribute 'url2' (#322)
- mydumper-version: stumbles upon "v0.10.7-2" (#318)
- network-port-tcp: NameError: global name 'TYPE' is not defined (#298)
- php-status: monitoring.php does not run on PHP 7.2 (#289)
- php-status: reporting "Opcache not installed or not enabled" if monitoring.php is not used (#324)
- php-status: typo in output ("Opache") (#296)
- php-status: Uncaught Error: Call to undefined function opcache_get_status() (#290)
- php-version: ValueError: invalid literal for float(): 5.640-0+deb8u12 (#293)
- procs: counting in output seems to be wrong (#357)
- procs: NameError: name 'STATE_Ok' is not defined (#363)
- qts-temperatures: Traceback (#360)
- service: bad output/status if status is 'running' but not supposed to be 'running' (#336)
- systemd-units: UnitFileState might be empty ("") (#292)
- unit tests: fix failing tests (#346)
Monitoring Plugins:
- We removed the fah-stats, hostname and all Atlassian checks.
Features:
-
50% of the checks are ported to Python 3 (suffixed by
3), 17 checks of those available on Windows (compiled with Nuitka and suffixed by.zip). -
The human-readable units of measurement in the output of the checks are more precise, for example:
- Bytes: "MiB" always means "Mebibyte" = 1024 Kibibytes.
- Counters: The SI symbol "G" means "Billion" in "US, Canada and modern British", and "Milliard" in "Traditional European (long scale)".
- Date and Time: "M" means "Month" while "m" means "Minute".
- See README for further details.
-
We are using more and more Prometheus-compatible Performance Data Names (first checks doing this are fs-xfs-stats and nginx-status).
-
All README's have been revised, standardized and converted into RST format (reStructuredText). They are also available on https://docs.linuxfabrik.ch > Monitoring-Plugins.
-
Icons have been updated (useful for Icingaweb and other).
Monitoring Plugins:
- Apache mod_qos
- Docker Info and Statistics
- Filesystem XFS Statistics
- HAProxy Status
- LibreNMS Alerts and Version
- Logfiles (although we prefer using Graylog)
- Metabase Statistics
- mydumper Version
- Nginx Status
- OnlyOffice Statistics
- Path read/write test
- PHP Status and Version
- PHP-FPM Status and Availability
- pip for pending updates
- SNMP (although we prefer using LibreNMS)
- WildFly Deployment Status, Garbage Collector Status, Memory and Memory Pool Usage, Server Status, Thread Usage, Uptime, XA and Non-XA Datasource Statistics
Monitoring Plugins:
- disk-io: Automatically determines the maximum possible disk throughput.
- file-*: Deal directly with SMB/CIFS shares.
- ipmi-*: Can now connect remotely to Supermicro's IPMI, HPE iLo and DELL iDRAC.
Monitoring Plugins:
- about-me: add detection of Django (#196), LibreNMS (#195), mydumper (#202), Nikto (#197), OpenSSL-version (#164), OpenVAS (#194), tmate (#175) and more software (#171)
- about-me: extend PHP version checking (#136), improve version checking (#172)
- about-me: ignore zram devices (#227)
- about-me: report CentOS version in perfdata (#137)
- about-me: show "Local IP Address/Subnet" and "Public IP Address" (#256)
- all plugins: add Python 3 versions for dmesg (#239), dns (#229), file-descriptors (#230), file-ownership (#232), fs-inodes (#274), fs-ro (#236), getent (#237), load (#240), rpm-lastactivity (#241), selinux-mode (#275), swap-usage (#242), systemd-unit (#243), systemd-units-failed (#244), top3-processes-which-caused-the-most-io (#273)
- all plugins: implement the
*_or_nonearguments (#116) - apache-httpd-status: clean up code (#200)
- apache-httpd-status: make "total accesses" human-readable (#219)
- axenita-stats: add version number to perfdata (#184)
- cpu-usage: migrate top3-processes-which-consumed-the-most-cpu-time into cpu-usage (#248)
- cpu-usage: state in the README the different values' units (#209)
- disk-io: "State" belongs only to overusage of "RWx", remove separate column (#279)
- disk-smart: print "* sdc (model, ser) [CRIT]" instead of "* [CRIT] sdc (model, ser)" (#214)
- dmesg: add messages to ignore list (#192, #216, #270)
- dmesg: add severity parameter (#115)
- dmesg: reduce the output to a maximum of ten lines (#254)
- dmesg: use
--ctimeinstead of--reltime(#238) - feed: change behaviour, do not fetch feed items from the future (#95, #208)
- feed: in Atom feed, try "content" field when summary is not available (#207)
- feed: strip HTML from content (#206)
- file-descriptors: migrate top3-processes-opening-more-file-descriptors into file-descriptors (#247)
- file-ownership: add files according to CIS CentOS standard (#233)
- file-ownership: make the
--filenameparameter repeatable (#6) - file-ownership: print file, owner and group as table (#231)
- fortios-*: add the ability to specify a port (#186)
- fortios-*: HTTP-encode the password/access_token (#187)
- fs-ro: make
--ignoreparameter repeatable (#235) - ipmi-sel: make it usable against targets over the network (#169)
- ipmi-sensors: make it usable against targets over the network (#168)
- kemp-services: add port option (#189)
- memory-usage: migrate top3-processes into memory-usage (#246)
- memory-usage: unify v2 and v3 (#245)
- network-connections: unify v2 and v3 (#250)
- nextcloud-version: get apache user from owner of config/config.php (#225)
- nextcloud-version: review handling of Enterprise Channel (#142)
- nginx-status: make perfdata compatible to Prometheus (#271)
- php-fpm-status: rename col "ContLen" to "POST" (#211)
- php-status: improve config and module error messages (#267)
- php-status: remove "shmop" and "zip" from default module list (#215, #266)
- pip-updates: change "No venv." to "Not running in a venv." (#268)
- procs: always return perfdata for process memory usage (#264)
- procs: improve output (#255)
- procs: make filter for username, procname and arguments case-insensitive (#261)
- procs: show used filter in output (#263)
- wildfly-gc-status: collection-time and -count in perfdata are continuous counters (#185)
- wildfly-memory-pool-usage: refactor code to better distinguish between heap and non-heap (#183)
Monitoring Plugins:
- about-me: disk sizes are not shown on CentOS (#259)
- apache-httpd-status: struggles about html pages served via HTTP, containing "::" (#199)
- disk-io: if RW5 is < 0, set it to 0 (#265)
- disk-smart: ignore zram devices (#221)
- disk-smart: SyntaxError: invalid syntax, line 890 (#220)
- docker-info: Byte-UOM must be "B", not "b" (#180)
- docker-info: perfdata "ram" must be in "bytes" (#179)
- docker-stats: Byte-UOM must be "B", not "b" (#181)
- docker-stats: I/O values not usable (#277)
- docker-stats: remove "host_mem_usage", because counting is wrong (#276)
- feed: sometimes runs into 10s Plugin Timeout in Icinga and gets killed with UNKNOWN (#83)
- haproxy-stats3: TypeError: a bytes-like object is required, not "str" (#278)
- librenms-version: KeyError: "local_branch" (#204)
- nextcloud-stats: num_users counts every user who ever existed (#224)
- php-fpm-status: request duration is in us, not ms (#210)
- php-status: check status is printed without leading space (#257)
- php-status: don't set WARN threshold for Hit Rate in Perfdata (#251)
- php-status: opcache_hit_rate - WARN and CRIT are swapped (#226)
- procs: checking processes on CPU usage is wrong (#260)
- procs: several unknowns and tracebacks (#162, #166)
- users: "utf-8" codec can't decode byte 0x81 on Windows (#201)
Monitoring Plugins:
- fs-file-usage: replaced by file-descriptors (#234)
- Three of the four "Top 3" checks are merged into cpu-usage, file-descriptors and memory-usage.
Monitoring Plugins:
- virtualenv is not activated if the plugin is called using an absolute path / from a different directory (#154)
Features:
- Added support for using a virtual environment (see README)
Monitoring Plugins:
- file-age, file-count & file-size: Now support SMB.
- users: Added missing perfdata for Windows.
- nextcloud-version: throw UNKNOWN if update server is not available (#147)
- nextcloud-version: increase timeout for fetching the update server (#148)
- procs: added thresholds for cpu & memory
Monitoring Plugins:
- json: renamed to json-values due to collision with the official json library.
- pip-version: fixed mixup in the output message.
Monitoring Plugins:
- cpu-usage (for Windows)
- disk-usage (for Windows)
- dummy
- dummy (for Windows)
- file-age (for Windows)
- file-count
- file-count (for Windows)
- file-size (for Windows)
- json
- json (for Windows)
- memory-usage (for Windows)
- network-connections (for Windows)
- procs (for Windows)
- scheduled-task (for Windows)
- service (for Windows)
- updates (for Windows)
- uptime (for Windows)
- users (for Windows)
Monitoring Plugins:
- file-age: Now support globbing for selecting multiple files.
- file-size: Now support globbing for selecting multiple files.
- updates: Added the --always-ok parameter.
- users: Fixed the counting of user under Windows (it also includes disconnected users now)
Monitoring Plugins:
- systemd-unit: added more states
Monitoring Plugins:
- ntp-offset: error on server without ntp (#138)
Features:
- Added sudoers for Debian 9 and 10
Monitoring Plugins:
- This update restructures our GitLab repository and adds the first Windows-compatible python3 check plugins.
Features:
- We added a new utility to help generate Grafana Dashboards: grafana-tool. Check out the documentation for more infomation.
Monitoring Plugins:
- atlassian-confluence-version
- atlassian-jira-version
- cpu-usage (for Windows)
- disk-usage (for Windows)
- file-age (for Windows)
- file-size (for Windows)
- keycloak-version
- memory-usage (for Windows)
- network-connections (for Windows)
- pip-version
- procs (for Windows)
- qts-cpu-usage
- qts-disk-smart
- qts-memory-usage
- qts-temperatures
- qts-uptime
- qts-version
- scheduled-task (for Windows)
- service (for Windows)
- updates (for Windows)
- uptime (for Windows)
- users (for Windows)
- wordpress-version
Features:
- We unified all the sudoers into one file (for each OS), in the assets/sudoers folder.
Monitoring Plugins:
- borgbackup: changed the expected string in the logfile from rc to retc.
- feed: removed --no-icinga-callback, added --icinga-callback.
- procs: new --argument parameter.
Monitoring Plugins:
- feed: python traceback (#107)
- memory-usage: Print top3 memory consuming processes in case of WARN/CRIT (#108)
- ntp-offset: add systemd-timesyncd (#90)
- openvpn-client-list: output as table (#19)
- qts-version: "None" after update (#112)
- xca-cert: Print a list of all checked certs with "commonName, CA (y/n), Serial, Expiry date" starting at the second line (#65)
Monitoring Plugins:
- network-bonding
Monitoring Plugins:
- procs: new username parameter
Monitoring Plugins:
- nextcloud-version: AttributeError: NoneType object has no attribute group (#105)
Monitoring Plugins:
- fortios-cpu-usage
- fortios-firewall-stats
- fortios-ha-stats
- fortios-memory-usage
- fortios-network-io
- fortios-sensor
- fortios-version
- fs-ro
- kemp-services
- matomo-reporting
- matomo-version
- sensors-battery
- sensors-fans
- sensors-temperatures
- systemd-units-failed
Features:
- Most of the checks now also run on Ubuntu Server 16+.
- On stack traces, any token and password URL request parameters are now printed with asterisks.
- All checks calling shell commands force english output even if system locale is different.
Monitoring Plugins:
- disk-smart: Traceback if not running on hardware (#82)
- disk-io: Counts n loop Devices on Ubuntu 20 (#87)
- disk-usage: ignore snap Devices (#88)
- mailq: Test with Exim (#93)
- procs: total proc count in perfdata is always 0 (#96)
- apache-httpd-status: Traceback on Ubuntu 16 (#97)
- disk-io: Traceback on Ubuntu 16 (#98)
- nextcloud-version: Don't throw UNKNOWN if update server is not available, because it doesn't help at all (#99)
- disk-usage: ignore iso9660 devices (#100)
- apache-httpd-status: Report if server-info is malformed due to any reason (#101)
- sensors-temperature: Ignore psutil's IOError (#102)
Features:
- Most of the checks now also run on Ubuntu (tested on Ubuntu Server 20 Beta).
Monitoring Plugins:
- dns
- fah-stats
Monitoring Plugins:
- nextcloud-security-scan: missing urllib (#91)
- about-me: doesn't report details about NVMe disks (#89)
- ping: no duplicate Output; maybe switch to regex (#84)
Features:
- We refactored the whole library stack and adapted all checks to the new library standards.
- We started using docstrings for better documentation of libraries and plugins. Now its possible to use for example
pydoc cacheto get a description of the cache.py library.
Monitoring Plugins:
- getent
- nextcloud-version
- ping
- rocket.chat-version
Monitoring Plugins:
- docker-info, docker-container, network-io, redis, xca-cert for now. We will rewrite them from scratch soon.
Monitoring Plugins:
- feed
Monitoring Plugins:
- cpu-usage: Adjusted to changes in psutil
- dmesg: expanded the ignore list
- systemd-unit: improved output
Initial release for the general public.