All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project does NOT adhere to Semantic Versioning.
Monitoring Plugins:
- jitsi-videobridge-stats: Remove deprecated values (PR #780, thanks to SnejPro)
- jitsi-videobridge-stats: Remove deprecated warning and critical parameters, always returns OK
Icinga Director:
- all-the-rest.json: Add Debian 12 (Cloud Image) 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
Monitoring Plugins:
- graylog-version
- mastodon-version
- moodle-version
- scanrootkit
Icinga Director:
- all-the-rest.json: Make all dmesg Service Sets use sudo
- all-the-rest.json: Check /var/log/syslog file size instead /var/log/messages in all Debian Service Sets
Monitoring Plugins:
- about-me: Determines date of birth of cloud VMs more accurately
- about-me: Add Mastodon detection
- about-me: Add Moodle detection
- dhcp-scope-usage: Ignore PercentageInUse fractions
- disk-io: Re-add support for Windows after last rewrite
- librenms-alerts, librenms-health: Compact output is the new default and shows non-OK only
- nextcloud-security-scan: Handle error on https://scan.nextcloud.com/
- openstack-nova-list: No more need for keystoneauth and keystoneclient
Icinga Director:
- crypto-policy: New defaults according to LFOps crypto_policy role
- disk-io: UnboundLocalError: cannot access local variable 'msg' where it is not associated with a value (#777)
- fortios-network-io: Fix reading from local SQLite database
- mysql-query: Fix director basket
- 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. - swap-usage: Fix ProcessLookupError
Monitoring Plugins:
- 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)
Monitoring Plugins:
- mysql-query
CI/CD:
- Added Ubuntu 24.04
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=10K
for 10 KiB (instead of--warning=10000
as 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-children
because php-fpmmax children reached
is 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=180D
for 180 days (instead of--warning=180
as 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
--top
parameter, 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
--top
parameter, showing 5 top processes by default - file-size: Support Nagios ranges for
--warning
and--critical
(PR #735, thanks to djmcd89) - fs-ro: Add
/dev/loop
to 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
--boot
parameter 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
--top
parameter, 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
--top
parameter, 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
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-log
is 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
Monitoring Plugins:
- disk-usage: Add include mount points/fs (#662) (so dropped
--ignore
parameter) - 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
,DurationPerReq
perfdata as they are wrong - disk-io:
--ignore
now 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
--since
from 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 sec
perfdata as it is meaningless - php-status: Move monitoring.php
- php-status: Rename perfdata item from
php-opcache-memory_usage-current_wasted_percentage
tophp-opcache-memory_usage-current_wasted-percentage
- restic-snapshots: Shorten output, add
--lengthy
parameter, 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)
Features:
- Move all CHANGELOG items for the "libs" into its own file (since it is a stand-alone project)
Monitoring Plugins:
- journald-query3: Removed
--grep
and--case-sensitive
parameter 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
--warning
parameter from MiB to GiB - mysql-*3: Removed parameters
--hostname
,--password
,--port
and--username
and 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]#605))
- updates: On Windows with closed firewall a PowerShell error is returned ([#633]#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
- wildfly-memory-pool-usage: Flapping PS_Eden_Space reporting (#563) - Removed
--warning
and--critical
parameters (not needed anymore)
Features:
- This CHANGELOG.
- Add hidden
.windows
files 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
--ignore
parameter (#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
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
- Active Directory Domain Services Service Set
- Active Directory Federation Services Service Set
- Active Directory Lightweight Directory Services Service Set
- DHCP Server Service Set
- DHCP Server Failover Feature Service Set
- DNS Server Service Set
- Duplicati Service Set
- Huawei Dorado Service Set
- Redfish Service Set
- Redfish no agent Service Set
- Veeam Backup & Replication Service Set
- Web Server (IIS) Service Set
- Windows Defender Antivirus Service Service Set
- Windows Basic Service Set extended Service Set
Monitoring Plugins:
- Able to choose a single or some DS in cmd-check-wildfly-non-xa-datasource-stats (#495)
- about-me: Add ownCloud and alternate Nextcloud Path (#512)
- about-me: Open Virtual Machine Tools Error: vmtoolsd must be run inside a virtual machine on a VMware hypervisor product. (#513)
- about-me: report virtualisation (#480)
- about-me: Should be able to run even if psutil is or cannot be installed (#514)
- about-me: Traceback "IndexError: list index out of range" (#443)
- about-me: Traceback 'ModuleWrapper' object has no attribute 'net_if_addrs' (#438)
- Adapt check-plugin to pylinted libraries (#526)
- added basket for redfish-sel and redfish-sensor, re-ran check2basket
- added director config for huawei checks
- added huawei dorado service set
- added notify-host-mail
- added notify-host-zoom
- added notify-service-mail
- added notify-service-zoom
- added redfish no agent service set
- added redfish service set
- added redfish-drives to the service sets
- added redfish-sel and redfish-sensor windows variants
- added Rocky8.sudoers
- added sudoers for openSUSE Leap15
- added tpl-service-cert and improved tpl-service-url
- added tpl-service-cert-no-agent
- added unit-test examples
- adjusted director baskets for the new windows variants
- adjusted huawei service names
- All Python3 Plugins: Use new §rary "human.py" (#521)
- All Python3 Plugins: Use new library "shell3.py" (#525)
- All Python3 Plugins: Use new library "time3.py" (#524)
- All Python3 Plugins: Use new library "txt3.py" (#522)
- all-the-rest.json: add service set for acme.sh (#447)
- all-the-rest.json: Delete SysMain from Windows Service Set (#446)
- all-the-rest.json: fixed guids
- all-the-rest.json: added acme.sh tag
- all-the-rest.json: added duplicati service set
- all-the-rest.json: adjusted loolwsd to coolwsd
- all-the-rest.json: removed getent from the basic service sets
- apache-httpd-status: Traceback on Ubuntu Xenial (16.04) (#436)
- basket-join: allowed missing Datafield key
- basket-join: error on duplicate entries in json
- BorgBackup: AttributeError: 'str' object has no attribute 'decode' (#430)
- check2basket: abort on error with the --auto option
- check2basket: added workaround for notification-plugins
- check2basket: extended to support notification-plugins
- check2basket: fixed problem with notification-plugins
- check2basket: removed default states for notifications
- dhcp-scope-usage: Add WinRM capability (#477)
- dhcp-scope-usage: added director config
- disabled TimeBrokerSvc for now (#427)
- disk-smart: disk names like sdda, sdab and so on were not checked (#487)
- dns: Grafana Panels divide query time by 1000 (#228)
- enabled notifcations for redfish checks
- extended windows basic service set
- fail2ban: Grafana Panels list "Banned IPs" twice (#139)
- file-age: new files or modifications after now result in files from the future (#478)
- file-age: recompiled for windows
- file-age: Windows variant crashes if using a glob wildcard (#494)
- fortios-network-io: adjusted grafana dashboard name
- fs-xfs-stats: I/O error "No such file or directory" while opening or reading /proc/fs/xfs/stat (#445)
- getent: Increase Icinga Timeout to 30sec (#455)
- jitsi-videobridge-status3: TypeError: string indices must be integers (#527)
- Let the new txt3 library do all encoding and decoding (#507)
- librenms checks: added more filtering parameters
- librenms-alerts: added --device-group parameter
- librenms-health: adjusted check timeout
- librenms-health: Timeout on too many values (#365)
- made sure that the no-agent and sudo variant are based on linux
- 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: Print human readable total values (#520)
- nginx-status: wrong perfdata (#440)
- ntp-offset: Regular UNKOWN when using with chrony (#71)
- php-status3: SyntaxError: invalid syntax (#532)
- php-status: Cannot report some values if not running with sudo, so please give a hint (#459)
- php-status: needs to run with sudo
- 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: on Windows, Traceback "AttributeError: 'module' object has no attribute 'STATUS_PARKED'" (#453)
- procs: when checking if a process exists, returns OK even if the process is missing (#488)
- pylint all check plugins (#529)
- redfish-sensor: returns 404 against esx (#460)
- redis-status3: AttributeError: module lib has no attribute "disk2" (#498)
- redis-status: Make it more tolerant when it comes to Defragmentation (#425)
- 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: Support Redis 3.0 (#510)
- redis-status: warning only if cache hit rate < 10% (#490)
- redis-status: Warning when using a password on command line (#450)
- redis: Warn on bad OS configuration (#428)
- rocketchat-stats: rename rocket.chat to rocketchat (#335)
- Some compiled Windows-Plugins are shipped without required 3rd Party Python Modules (#504)
- split up librenms services by type in the services set
- swap-usage: recompiled for windows (#454)
- swap-usage: recompiled for windows (#456)
- swap-usage: UnboundLocalError: local variable msg_body referenced before assignment (#456)
- swap: Dont display "swapped in" and "swapped out" on Windows (#454)
- 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-status: Make --username and --password mandatory (#499)
- veeam.py: ValueError: need more than 2 values to unpack (#45)
- wildfly-deployment-status: Allow to limit deployment by name (#497)
- Windows: New Service Set for "Windows Defender Antivirus Service" (#469)
- Windows: New Service Set for Windos-Servers running "Web Server (IIS)" (#465)
- Windows: New Service Set for Windows Servers running "Active Directory Certificate Services" (#472)
- Windows: New Service Set for Windows Servers running "Active Directory Domain Services" (#468)
- Windows: New Service Set for Windows Servers running "Active Directory Federation Services" (#471)
- Windows: New Service Set for Windows Servers running "Active Directory Lightweight Directory Services" (#473)
- Windows: New Service Set for Windows-Servers running "DHCP Server Failover Feature" (#467)
- Windows: New Service Set for Windows-Servers running "DHCP Server" (#466)
- Windows: New Service Set for Windows-Servers running "DNS Server" (#470)
- Windows: New ServiceSet for Windows-Servers running "Veeam Backup & Replication" (#464)
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 Perr 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.php
as 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 (#306)
- about-me: Add GitLab Community Edition (Omnibus) (#371)
- about-me: Add OpenVPN (#341)
- about-me: Add the FQDN hostname to the first line (#368)
- about-me: Add Veeam (#315)
- about-me: extend with more infos (#362)
- about-me: Find vsftpd (#269)
- 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-stats: Add a Python 3 version (#327)
- apache-httpd-status: also print worker percentage state in table (#311)
- apache-httpd-status: ReqPerSec, BytesPerSec, BytesPerReq and DurationPerReq are average values that are calculated by Apache over its uptime (#310)
- apache-httpd-status: unsupported operand type(s) for +: 'float' and 'str' (#323)
- axenita-stats: Add a Python 3 version (#376)
- borgbackup: add a Python 3 version (#287)
- borgbackup: No need to open Borg logfile in binary mode (#420)
- check2basket: add update mode (#203)
- cloudflare-security-level: Make "--zone-id" repeatable (#309)
- consistently handle unicode (#334)
- countdown: Add a Python 3 version (#377)
- disk-io: After reboot, byte values are 0 or very low, so rate diffs are negative (#312)
- disk-smart: Add a Python 3 version (#401)
- disk-usage: Add --ignore parameter (repeating) (#351)
- dmesg3: AttributeError: module 'lib' has no attribute 'base2' (#330)
- dmesg: Add "brcmfmac" messages to ignore list (#338)
- dmesg: Add --ignore parameter (repeating) (#340)
- dmesg: Always counts +1 (#331)
- dmesg: Reduce the output to a maximum of ten lines (#254)
- docker-info: Add a Python 3 version (#378)
- dummy broken in dev branch (#354)
- dummy: Add a Python 3 version (#379)
- example3: Partially uses base2 library (#369)
- example: Provide unit-tests (#326)
- fail2ban: Add a Python 3 version (#380)
- feed: Add a Python 3 version (#402)
- file-age: correctly handle negative times (#188)
- file-age: Improve output message (#361)
- file-count: Add a Python 3 version (#381)
- file-ownership: Check /tmp/linuxfabrik-plugin-cache.db (#356)
- file-ownership: On Debian, there are some other defaults (#294)
- file-ownership: On SLES, there are some other defaults (#317)
- file-ownership: On Ubuntu, there are some other defaults (#332)
- file-size: Adapt source code to example (#398)
- fortios-*: Add a Python 3 version (#424)
- getent: Also print the response (could be interesting) (#297)
- getent: ascii codec can't decode byte (#367)
- ipmi-sel: Add Python 3 version (#384)
- ipmi-sensor: Add a Python 3 version (#385)
- json-values: Adapt source code to example (#399)
- kemp-services: Add a Python 3 version (#403)
- keycloak-version: Add a Python 3 version (#400)
- kvm-vm: Add a Python 3 version (#388)
- librenms-alerts: Add Python 3 version (#389)
- librenms-health: Add a Python 3 version (#390)
- librenms-version: add a Python 3 version (#314)
- logfile: Adapt source code to example (#404)
- mailq: Add a Python 3 version (#391)
- Make usage of --help possible even if some python modules are missing (#42)
- matomo-reporting: Add a Python 3 version (#405)
- matomo-version: Add a Python 3 version (#406)
- metabase-stats: Add a Python 3 version (#342)
- mydumper-version: 'module' object has no attribute 'url2' (#322)
- mydumper-version: Stumbles upon "v0.10.7-2" (#318)
- mysql-stats: Add a Python 3 version (#407)
- needs-restarting: Add a Python 3 version (#393)
- network-bonding: Add a Python 3 version (#409)
- network-port-tcp: Add a Python 3 version (#410)
- network-port-tcp: NameError: global name 'TYPE' is not defined (#298)
- nextcloud-security-scan: Add a Python 3 version (#411)
- nextcloud-stats: Add a Python 3 version (#413)
- nginx-status: Add a Python 3 version (#414)
- ntp-offset: Add Python 3 version (#387)
- onlyoffice-stats: Add a Python 3 version (#394)
- openvpn-client-list: Add a Python 3 version (#395)
- openvpn-client-list: No need to open OpenVPN logfile in binary mode (#421)
- php-status: Config and Module error message could be a little bit more precise (#267)
- php-status: Make check for a high Cache "Hit Rate" optional (#303)
- php-status: monitoring.php does not run on PHP 7.2 (#289)
- 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-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() in /var/www/html/monitoring.php:6 (#290)
- php-version: Just check on PHP Version Major.Minor (default), not on Major.Minor.Patch (#304)
- php-version: Test against package manager. Print version from php.net just as a hint. (#253)
- php-version: ValueError: invalid literal for float(): 5.640-0+deb8u12 (#293)
- ping: Add --always-ok for unpingable but check-capable hosts (#392)
- ping: Add a Python 3 version (#348)
- procs: Alert on specific processes (#355)
- procs: Counting in output seems to be wrong (#357)
- procs: NameError: name 'STATE_Ok' is not defined (#363)
- provide the icinga director command definitions using the basket (#301)
- qts-*: Add a Python 3 version (#423)
- qts-temperatures: Traceback (#360)
- Remove unnecessary import of lib.args (#347)
- Replace print() in all plugins by oao() to make unicode handling more consistent (#344)
- Replace unit test code in all plugins by new "test" library (#343)
- rocketchat-stats: Add a Python 3 version (#415)
- rocketchat-version: Add a Python 3 version (#416)
- Save all plugins with UTF-8 Encoding (charset=utf-8
format) (
#305) - scheduled-task: Adapt source code to example (#417)
- sensors-battery: Add a Python 3 version (#418)
- sensors-temperature: Add a Python 3 version (#419)
- service: Adapt source code to example3 (#386)
- service: bad output/status if status is 'running' but not supposed to be 'running', (#336)
- snmp: Adapt source code to example (#396)
- systemd-unit: the --unitfilestate parameter should accept None to disable checking of the unit file state (#299)
- systemd-units-failed: add "ignore" parameter (repeating) (#160)
- systemd-units-failed: add --ignore parameter (repeating) (#337)
- systemd-units: UnitFileState might be empty ("") (#292)
- Unit test fails (#346)
- updates: Adapt source code to example3 (#383)
- Use lib.base.cu() instead of print_exc() (#345)
- validate automatically converted python3 variants (before next release) (#359)
- wildfly-*: Adapt source code to example (#422)
- 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)
- wordpress-version: Add a Python 3 version (#382)
- xca-cert: Add a Python 3 version (#375)
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.
- about-me: Add Django (#196)
- about-me: Add LibreNMS (#195)
- about-me: add more software (#171)
- about-me: Add mydumper (#202)
- about-me: Add Nikto (#197)
- about-me: add OpenSSL-version (#164)
- about-me: Add OpenVAS (#194)
- about-me: add tmate (#175)
- about-me: Disk sizes are not shown on CentOS (#259)
- about-me: Ignore zram Devices (#227)
- about-me: improve version checking (#172)
- about-me: Pruefung der installierten PHP Version erweitern (#136)
- about-me: Report CentOS Version in Perfdata (#137)
- about-me: Show "Local IP Address/Subnet" and "Public IP Address" (#256)
- Add port option to kemp-services (#189)
- All fortios-checks: Add the ability to specify a port (#186)
- All fortios-checks: HTTP-encode the password/access_token (#187)
- apache-httpd-status: Clean up code a little bit (#200)
- apache-httpd-status: Make "total accesses" human-readable (#219)
- apache-httpd-status: Struggles about html pages served via HTTP, containing "::" (#199)
- 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", so a separate column is misleading (#279)
- disk-io: If RW5 is < 0, set it to 0 (#265)
- disk-smart: Ignore zram Devices (#221)
- disk-smart: print "* sdc (model, ser) [CRIT]" instead of "* [CRIT] sdc (model, ser)" (#214)
- disk-smart: SyntaxError: invalid syntax, line 890 (#220)
- dmesg: Use --ctime instead of --reltime (#238)
- dmesg: "kvm_set_msr_common: MSR_IA32_DEBUGCTLMSR" to ignore list (#216)
- dmesg: Add "CIFS VFS: Free previous auth_key.response = " to ignore list (#192)
- dmesg: Add "vcpu0 disabled perfctr wrmsr" to ignore list (#270)
- dmesg: add a Python 3 version (#239)
- dmesg: add severity parameter (#115)
- dmesg: Reduce the output to a maximum of ten lines (#254)
- dns: add a Python3 version (#229)
- docker-info: Byte-UOM must be "B", not "b" (#180)
- docker-info: perfdata "ram" must be in "bytes" (currently without any UOM) (#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: Change behaviour (#95)
- feed: Change default behaviour and do not fetch feed items from the future (#208)
- feed: in Atom feed, try "content" field for summary is not available (#207)
- feed: sometimes runs into 10s Plugin Timeout in Icinga and gets killed with UNKNOWN (#83)
- feed: strip HTML from content (#206)
- file-descriptors: add a Python3 version (#230)
- file-descriptors: Migrate top3-processes-opening-more-file-descriptors into file-descriptors (#247)
- file-ownership: add a bunch of files according to CIS CentOS standard (#233)
- file-ownership: add a Python 3 version (#232)
- file-ownership: make the --filename parameter repeatable (#6)
- file-ownership: Print file, owner and group as table (#231)
- fs-file-usage: Does the same as file-descriptors, just in different way (#234)
- fs-inodes: add a Python 3 version (#274)
- fs-ro: add a Python 3 version (#236)
- fs-ro: Make --ignore parameter repeatable (#235)
- getent: add a Python 3 version (#237)
- haproxy-stats3: TypeError: a bytes-like object is required, not "str" (#278)
- implement the *_or_none arguments in the checks (#116)
- ipmi-sel: make it usable against targets over the network (#169)
- ipmi-sensors: make it usable against targets over the network (#168)
- librenms-version: KeyError: "local_branch" (#204)
- load: add a Python 3 version (#240)
- memory-usage: Migrate top3-processes-opening-more-file-descriptors completely into memory-usage (#246)
- memory-usage: unify v2 and v3 (#245)
- network-connections: unify v2 and v3 (#250)
- nextcloud-stats: num_users counts every user who ever existed (#224)
- 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-fpm-status: request duration is in us, not ms (#210)
- php-status: check status is printed without leading space (#257)
- php-status: Config and Module error message could be a little bit more precise (#267)
- php-status: Don't set WARN threshold for Hit Rate in Perfdata (#251)
- php-status: opcache_hit_rate - WARN and CRIT are swapped (#226)
- php-status: Remove "shmop" from default module list (#215)
- php-status: Remove "zip" from default module list (#266)
- pip-updates: Change "No venv." in "Not running in a venv." (#268)
- procs: Always return perfdata for process memory usage (#264)
- procs: checking processes on CPU usage is wrong (#260)
- procs: Improve output a little bit (#255)
- procs: Make filter for username, procname and arguments case-insensitive. (#261)
- procs: several unknowns and tracebacks (#162)
- procs: Show used filter in output (#263)
- procs: Some comments are wrong (#262)
- procs: Traceback (#166)
- rpm-lastactivity: add a Python 3 version (#241)
- selinux-mode: add a Python 3 version (#275)
- swap-usage: add a Python 3 version (#242)
- systemd-unit: add a Python 3 version (#243)
- systemd-units-failed: add a Python 3 version (#244)
- top3-processes-which-caused-the-most-io: add a Python 3 version (#273)
- users: "utf-8" codec can't decode byte 0x81 on Windows (#201)
- wildfly-gc-status: collection-time and -count in perfdata are continous counters (#185)
- wildfly-memory-pool-usage: Refactor code to better distinguish between heap and non-heap (#183)
- Three of the four "Top 3" checks are merged into cpu-usage, file-descriptros 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 cache
to 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.