Skip to content
jbaumann edited this page Jan 5, 2022 · 24 revisions

Welcome to the System_Watchdog Wiki!

Walkthrough: Installing the System_Watchdog in 8 easy steps

Documentation

On this page you can find detailed instructions that you can follow to install the System_Watchdog daemon.

Installation on the Raspberry Pi - installing a daemon on Linux is no problem, but this text describes it anyways.

Command-line Options - System_Watchdog offers a few command-line options that you can use when testing configurations.

Priming the System - When you are ready to turn on the functionality of the System_Watchdog read this short text

The Configuration File

The configuration file contains everything needed to operate the System_Watchdog. It contains different sections defining configurations that test different parts of the system. One special section, the [general] section contains both global settings and fallback settings for the different configurations.

A configuration starts with its name in brackets e.g. [my cool config] followed by lines with options and their values, separated by an equal-sign. The available options are in part determined by the type of the configuration, which determines how the System_Watchdog will implement its functionality.

As the type of the configuration is set by the type option, the available configuration options change. The most important one, the one determining the specific check to be executed, will be the option that has the same name as the type. Thus if we set the type to vorgon (this configuration type does not exist), then the vorgon configuration would expect its main data in the option vorgon as well. This ensures that we do not, by accident, use configuration options of one type with another type when switching between different configuration types, potentially wreaking havoc.

The following sections exist:

  • The [General] Section - The General Section contains default values as well as global values used by the System_Watchdog
  • The Configuration Types
    • Command Type - The Command type executes an external command to determine whether the service is healthy
    • Network Type - The Network type checks whether at least on of the given networks is up
    • Connectivity Type - The Connectivity type checks whether a route exists to the given IP address
    • MQTT Type - The MQTT type listens to a list of topics for a message. If one is received until the timeout it is successful, otherwise the repair action will be executed

Cookbook

Cookbook for Configurations - On this page you can find recipes that you can use as a template to implement your own configurations.

Writing Your Own Plugins

Actually, nearly all of the configuration types are implemented as plugins (the shortest of which has around 45 lines of code including comments). Templates allow you to very simply implement your own configuration types and thus add to the functionality of the System_Watchdog with minmimal effort.

The following text explains how to do this: Walkthrough: Implementing Your Own Plugin

Possible Future Functionality

Please note, that the functionality to use the following services is already available with the existing Configuration types, but these might be optimized regarding system overhead.

  • Docker
  • Process