Skip to content

Check mastodon-version

Overview

Checks the installed Mastodon version against the endoflife.date API and alerts if the version is end-of-life or if newer major, minor, or patch releases are available. By default, alerts 30 days before the official EOL date. The offset is configurable. Reads the version of a Docker Compose installation, or of the running Mastodon container of a rootless Podman installation. Requires root or sudo.

Important Notes:

  • The check must run locally on the Mastodon server because it reads the version from the installation directory or from the running container.
  • It does not call tootctl, which needs a working Ruby environment and extra environment variables that a monitoring agent does not have.

Data Collection:

  • Reads the installed Mastodon version from live/docker-compose.yml in the installation directory (default: /home/mastodon, configurable via --path)
  • Without that file, asks Podman as the user given by --user (default: mastodon) for the running container of the mastodon/mastodon image and reads /opt/mastodon/lib/mastodon/version.rb inside it
  • Compares against the endoflife.date API to determine EOL status and available updates
  • Caches endoflife.date responses locally for 24 hours to reduce external requests

Fact Sheet

Fact Value
Check Plugin Download https://github.com/Linuxfabrik/monitoring-plugins/tree/main/check-plugins/mastodon-version
Nagios/Icinga Check Name check_mastodon_version
Check Interval Recommendation Every day
Can be called without parameters Yes
Runs on Cross-platform
Compiled for Windows No (runs with Python interpreter)
Uses State File $TEMP/linuxfabrik-lib-version.db

Help

usage: mastodon-version [-h] [-V] [--always-ok] [--check-major]
                        [--check-minor] [--check-patch] [--insecure]
                        [--no-perfdata] [--no-proxy] [--offset-eol OFFSET_EOL]
                        [--path PATH] [--proxy PROXY] [--timeout TIMEOUT]
                        [--unreachable-severity {ok,warn,crit,unknown}]
                        [--user USER]

Checks the installed Mastodon version against the endoflife.date API and
alerts if the version is end-of-life or if newer major, minor, or patch
releases are available. By default, alerts 30 days before the official EOL
date. The offset is configurable. Reads the version of a Docker Compose
installation, or of the running Mastodon container of a rootless Podman
installation. Requires root or sudo.

options:
  -h, --help            show this help message and exit
  -V, --version         show program's version number and exit
  --always-ok           Always returns OK.
  --check-major         Alert when a new major release is available, even if
                        the current version is not yet EOL. Example: running
                        v26 (not yet EOL) and v27 is available.
  --check-minor         Alert when a new major.minor release is available,
                        even if the current version is not yet EOL. Example:
                        running v26.2 (not yet EOL) and v26.3 is available.
  --check-patch         Alert when a new major.minor.patch release is
                        available, even if the current version is not yet EOL.
                        Example: running v26.2.7 (not yet EOL) and v26.2.8 is
                        available.
  --insecure            This option explicitly allows insecure SSL
                        connections.
  --no-perfdata         Suppress the performance data section from the output.
                        The status message and the exit code are unaffected,
                        so alerting keeps working while trending data is
                        dropped.
  --no-proxy            Do not use a proxy, not even one the environment
                        names. Overrides `--proxy`.
  --offset-eol OFFSET_EOL
                        Alert n days before ("-30") or after an EOL date ("30"
                        or "+30"). Default: -30 days
  --path PATH           Local path to your Mastodon installation. Default:
                        /home/mastodon
  --proxy PROXY         Proxy to reach the target through. The scheme defaults
                        to `http` when omitted. Overrides the proxy the
                        environment names (`http_proxy`, `https_proxy`,
                        `all_proxy`) together with the exceptions it lists in
                        `no_proxy`, and is itself overridden by `--no-proxy`.
                        Without either parameter the environment applies.
                        Credentials belong into the environment variable
                        rather than here, because a command-line argument is
                        visible to every user on the host. Example:
                        `--proxy=http://proxy.example.com:3128`.
  --timeout TIMEOUT     Network timeout in seconds. Default: 8 (seconds)
  --unreachable-severity {ok,warn,crit,unknown}
                        State to report when the online source is unreachable.
                        What is used instead - bundled offline data, a cached
                        copy, or nothing at all - is named in the output, and
                        a clean result then only covers what that fallback
                        could confirm. Default: ok
  --user USER           Owner of the rootless Podman containers Mastodon runs
                        in, asked when there is no Docker Compose installation
                        at `--path`. Podman keeps each user's rootless
                        containers in that user's own storage, so the check
                        runs podman as that user. Requires the right to `sudo
                        -u <user>` (root has this by default), and the user
                        needs a subordinate UID range in /etc/subuid, as
                        rootless Podman does. Default: mastodon

Documentation:
https://linuxfabrik.github.io/monitoring-plugins/check-plugins/mastodon-version/

Usage Examples

./mastodon-version --path=/home/mastodon

Output:

Mastodon v4.2.10 (EOL unknown)

States

  • UNKNOWN if the Mastodon installation or version information cannot be found.

The end-of-life verdict, the --check-major / --check-minor / --check-patch alerts, --offset-eol, --always-ok and what happens when endoflife.date cannot be reached work the same way in every endoflife.date-based version plugin. They are described in Version Plugins.

Perfdata / Metrics

Name Type Description
mastodon-version Float Installed Mastodon version as a floating-point number. For example, "4.2.10" becomes "4.21".

Credits, License