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.ymlin 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 themastodon/mastodonimage and reads/opt/mastodon/lib/mastodon/version.rbinside 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¶
- Authors: Linuxfabrik GmbH, Zurich
- License: The Unlicense, see LICENSE file.