There should be no architecture dependencies in this script, so it should be enough to build one package for all architectures.
Whats this and why?
This script is intended for icinga/nagios/icinga2 to check the state of a systemd service. We check the ServiceState and the Substate.
This tools uses dbus to gather needed informations, as systemd-developer Lennart Poettering says it is the right way to do and cli output is not stable and should not be parsed.
https://github.com/systemd/systemd/issues/83
How to install?
Debian
git clone https://github.com/pengutronix/monitoring-check-systemd-service.git
apt-get install python3-nagiosplugin python3-gi
RedHat / CentOS
python 3.6 and the corresponding gobject implementation are provided by the EPEL package. Follow the instructions to install EPEL on your system. The python3-nagiosplugin can be found at https://github.com/joernott/python-nagiosplugin-rpm and the RPM for this plugin can be built using the instructions below.
yum -y install rh-python36 python36-gobject python36-gobject-base python3-nagiosplugin nagios-plugin-systemd-service
How to build the RPM
Set up your RPMBUILD environment and put the SPEC file into the SPECS folder. Then get the source and run rpmbuild:
curl -o SPECS https://https://raw.githubusercontent.com/joernott/monitoring-check-systemd-service/master/contrib/check-systemd-service.spec
spectool -g -R SPECS/check-systemd-service.spec
rpmbuild -ba SPECS/check-systemd-service.spec
How to use?
> ./check-systemd-service -h
usage: check-systemd-service [-h] [-v] [-t TIMEOUT] unit
Nagios plugin to check a systemd service on different properties
positional arguments:
unit Check this Unit
optional arguments:
-h, --help show this help message and exit
-v, --verbose increase output verbosity (use up to 3 times)
-t TIMEOUT, --timeout TIMEOUT
abort execution after TIMEOUT seconds
> ./check-systemd-service -t 3 systemd-logind
SYSTEMD SERVICE SYSTEMD-LOGIND OK - ServiceState is active(running)
optional features (future)
It could check for every systemd service property. The plugin has access to the whole systemd-dbus dataset without parsing any CLI output.