### GENERAL CONFIGURATION ### All these directives are optional. If missing, defaults will be applied (see below). # Enable debug logging (default: false) # If enabled, detailed information about received data will be logged. # If disabled, only errors will be logged. debug: true # Maximum size of log history to maintain (default: 1000) logsize: 1000 # hostname (default: obtained from OS or "janitor"), used for Prometheus metrics hostname: "janitor" # Configuration of built in web server: # - Host name (default: '' meaning all interfaces will be bound) # - Port number (default: 8080) web: host: "" port: 8080 ### MONITORING TARGETS ### All these blocks are optional. If missing, will not be monitored. monitor: # MQTT monitoring mqtt: # Server connection details # Scheme (optional: can be mqtt or mqtts, mqtt by default) and host name server: mqtt://openwrt.lan # Port number (default: 1883) port: 1883 # User and password if required user: password: # Maximum number of messages to retain for display and average frequency calculation (default: 10) history: 10 # Standard timeout to apply as a multiple of the average transmit frequency (default: 1.5, interpreted as 1.5 * avg transmit frequency) # (can be overridden per topics below) standardtimeout: 1.5 # Topics to monitor. Can include wildcard ('/#') and wildcard subscriptions can overlap with others. # In case of overlap, the first matching topic will be used to determine timeout. targets: # Topic name - topic: "/sensors/aqara_inside/#" # Custom timeout threshold (fixed value in seconds) to be used for the topic (default: standardtimeout as defined above) timeout: 3600 # Custom name to show instead of MQTT topic (note: does not work with wildcard topic names, only exact matches) name: "Inside temperature" - topic: "/sensors/aqara_outside/#" timeout: 3600 - topic: "/sensors/#" - topic: "/stats/#" # Ping monitoring ping: # Default interval between checks in seconds (default: 60) # (can be overridden per target below) interval: 60 # Threshold for alerts - number of consecutive misses to reach (default: 2) # (can be overridden per target below) threshold: 2 # Targets to ping targets: # Name of the target (used for display and alerting) - name: openwrt # Network address to ping address: openwrt.lan # Interval between checks in seconds (default: default interval specified above) interval: 10 # Threshold for alerts - number of consecutive misses to reach (default: default threshold specified above) threshold: 3 - name: google address: google.com # HTTP monitoring http: # Default interval between checks in seconds (default: 60) # (can be overridden per target below) interval: 60 # Default timeout for the HTTP requests in milliseconds (default: 5000) # (can be overridden per target below) timeout: 5000 # Threshold for alerts - number of consecutive misses to reach (default: 2) # (can be overridden per target below) threshold: 2 # Targets to monitor with HTTP GET targets: # Name of the target (used for display and alerting) - name: NAS # HTTP address for GET request address: http://index.nas # String value to check for in reply (optional - not used if not specified) value: nas # Interval between checks in seconds (default: default interval specified above) interval: 10 # Timeout for the HTTP requests in milliseconds (default: default interval specified above) timeout: 500 # Threshold for alerts - number of consecutive failed requests to reach (default: default threshold specified above) threshold: 3 - name: google address: http://google.com # Monitoring by executing an external command exec: # Default interval between checks in seconds (default: 60) # (can be overridden per target below) interval: 60 # Default timeout for the command to complete in milliseconds (default: 5000). # The execution will be terminated and marked as failed when this timeout is reached. timeout: 5000 # Threshold for alerts - number of consecutive failed commands to reach (default: 2) # (can be overridden per target below) threshold: 2 targets: # Name of the target (used for display and alerting) - name: check if /tmp/foo exists # Command to be executed. On Linux, this will be given to a shell process. command: test -f /tmp/foo ### ALERTING METHODS ### All these blocks are optional. If missing, will not be used for alerting. alert: # Telegram alerting. Please specify token and chat id for the messages. # For more information, please see: # https://core.telegram.org/bots#6-botfather # https://stackoverflow.com/questions/45414021/get-telegram-channel-group-id #telegram: # token: "INSERTYOURTOKENHERE" # chat: 12 # Gotify alerting. Please specify server and token. #gotify: # server: "http://nas:8765" # token: AMuHwu9EhjF0Z4M # Executing arbitrary commands. On Linux, this will be given to a shell process. # The command will receive the alert message on standard input. #exec: /home/joe/bin/alert.sh # Alerting by posting to predefined MQTT topic with a JSON payload. Example payload with description of the structure: # {"type":"HTTP", // type of the sensor - potential values: HTTP, Ping, MQTT # "name":"NAS", // name of the sensor # "status":"ERROR", // status of the sensor - potential values: OK, ERROR # "since":"2020-03-22T18:58:00.157284409+01:00", // last error/ok timestamp for sensor # "error":"", // further error message if any # "message":"⚠ HTTP ERROR for NAS, last seen 2s ago"} // text alert message mqtt: # Server connection details # Scheme (optional: can be mqtt or mqtts, mqtt by default) and host name server: mqtt://openwrt.lan # Port number (default: 1883) port: 1883 # User and password if required user: password: topic: /janitor/alerts