Skip to content

Check rpm-updates

Overview

Checks for available RPM package updates on RHEL, CentOS, Fedora, and compatible systems. Reports the number and type of available advisories (bugfix, enhancement, security). This check only lists updates and never actually installs anything.

Important Notes:

  • The --query parameter accepts an SQL WHERE clause to filter the list of available updates. The following database columns can be used:
    • arch (TEXT)
    • package (TEXT)
    • repo_installed (TEXT)
    • repo_upgrade (TEXT)
    • version_installed (TEXT)
    • version_upgrade (TEXT)
  • The "Type" column in the output lists the type of update for each intermediate version. Abbreviation meanings:
    • B: Bugfix
    • E: Enhancement
    • S: Security
    • U: Unspecified
    • no character: unknown

Data Collection:

  • Executes yum list --upgrades, yum list --installed, and yum updateinfo list --available
  • Stores all package and advisory information in a local SQLite database for SQL-based filtering via --query
  • Plugin execution may take more than 10 seconds due to yum operations (default timeout: 120 seconds)

Fact Sheet

Fact Value
Check Plugin Download https://github.com/Linuxfabrik/monitoring-plugins/tree/main/check-plugins/rpm-updates
Nagios/Icinga Check Name check_rpm_updates
Check Interval Recommendation Every day
Can be called without parameters Yes
Runs on Linux
Compiled for Windows No
Uses SQLite DBs $TEMP/linuxfabrik-monitoring-plugins-rpm-updates.db

Help

usage: rpm-updates [-h] [-V] [--always-ok] [--only-critical] [--query QUERY]
                   [--test TEST] [--timeout TIMEOUT] [-w WARN]

Checks for available RPM package updates on RHEL, CentOS, Fedora, and
compatible systems. Reports the number and type of available advisories
(bugfix, enhancement, security). Alerts when updates are available. This check
only lists updates and never actually installs anything.

options:
  -h, --help          show this help message and exit
  -V, --version       show program's version number and exit
  --always-ok         Always returns OK.
  --only-critical     Only report security updates and upgrades.
  --query QUERY       SQL WHERE clause to filter the list of available
                      updates. Supports regular expressions via a REGEXP
                      statement. See the README for a list of available
                      columns. If specified, a list of matching updates is
                      printed. Example: `--query='package like "bind9-%"'`.
                      Default: 1
  --test TEST         For unit tests. Needs "path-to-stdout-file,path-to-
                      stderr-file,expected-retc".
  --timeout TIMEOUT   Network timeout in seconds. Default: 120 (seconds)
  -w, --warning WARN  Minimum number of available updates to return WARNING.
                      Default: 1

Usage Examples

./rpm-updates --only-critical --query='package in ("audit", "bind-utils", "gcc-c++")'

Output:

30 updates available. [WARNING]

Package    ! Installed     ! Upgrade to           ! Type 
-----------+---------------+----------------------+------
audit      ! 3.0.7-5       ! 3.1.2-1              ! B    
bind-utils ! 32:9.11.36-11 ! 32:9.11.36-16.el8_10 !      
gcc-c++    ! 8.5.0-20      ! 8.5.0-26             ! BSB  

States

  • OK if the number of available updates is below --warning.
  • WARN if the number of updatable packages meets or exceeds --warning (default: 1).
  • --always-ok suppresses all alerts and always returns OK.

Perfdata / Metrics

Name Type Description
updates Number Number of updatable packages matching the current --query.

Credits, License