Skip to content

Duplicati

A Duplicati server through its API: the age of each task’s last successful backup, its last result, duration, size, warnings and errors, and the task running now.

From the DumbMonit server (or its relay agent) to the device:

PortProtocolPurpose
8200TCPWeb interface and API (HTTP, default)

Duplicati has no user accounts, only the password of its web interface. From Duplicati 2.1, DumbMonit exchanges that password for a short-lived access token (POST /api/v1/auth/login, then Authorization: Bearer), keeps it for ten minutes and signs in again if the server refuses it.

The task list (GET /api/v1/backups) is the one required read. The others are read when the server answers and never fail the probe:

  • GET /api/v1/serverstate: the task running now, and whether the server is paused.
  • GET /api/v1/progressstate: the progress of that task.
  • GET /api/v1/backup/{id}/log: the result of each task’s last run (Success, Warning, Error, Fatal) with its warning and error counts, for the first 50 tasks. Without it, a failure is deduced from the task’s LastErrorDate and LastErrorMessage.

The task list already carries each task’s metadata (LastBackupDate, LastBackupFinished, LastBackupDuration, LastErrorMessage, sizes), so GET /api/v1/backup/{id} is not called.

All metrics are prefixed dumbmonit_duplicati_.

MetricLabelsMeaning
backup_failedbackup, backup_id1 when the last run failed: its result is Error or Fatal, or, without the log, an error is more recent than the last run. A warning is not a failure.
backup_runningbackup, backup_id1 for the task running now.
backup_scheduledbackup, backup_id1 when the task has a schedule.
backup_last_success_age_secondsbackup, backup_idSince the last successful backup; absent for a task that never succeeded.
backup_last_duration_secondsbackup, backup_idDuration of the last run.
backup_source_bytes, backup_source_filesbackup, backup_idSize and file count of the source.
backup_target_bytes, backup_versionsbackup, backup_idSize at the destination and number of versions kept.
backup_last_result_infobackup, backup_id, resultValue 1: success, warning, error, fatal.
backup_last_warnings, backup_last_errorsbackup, backup_idCounts of the last run.
backup_last_error_infobackup, backup_id, messageValue 1 with the last error message (200 characters at most), only while the task is failed.
backup_progress_percentbackup, backup_idProgress of the running task.
server_paused1 when the server is paused.
backups, backups_failed, backups_runningCounts; at most 200 tasks are described one by one.

The built-in rules that apply:

  • Duplicati backup failed (Warning, reminded daily).
  • Duplicati backup too old: a scheduled task has not succeeded for more than two days (Advisory, reminded daily).

The Backups panel says what is wrong in a sentence, shows the failed and running counts and whether the server is paused, then lists the tasks — failed first — with the age of their last success, their size and, for a failed one, the last error message.

  1. In the Duplicati web interface, open Settings and set a long random password for the interface: Duplicati 2.1 requires one.

  2. If the server only listens on the machine itself, start it with these options so that DumbMonit can reach it.

    --webservice-interface=any --webservice-allowed-hostnames=*
  3. In DumbMonit, enter the Duplicati address (for example nas.lan) and paste that password.

  • Interface password — Duplicati has no accounts or read-only mode

Duplicati knows a single secret, the interface password; it can neither be limited to reading nor attached to a named account. DumbMonit only issues GET requests apart from the sign-in.

CredentialFields
Web interface passwordThe password of the Duplicati web interface (stored encrypted).

Address: the host name or IP of the server, host:port, or a URL. Options:

  • Protocol (http) and Port (8200).
  • Accept an unverifiable certificate: if the server runs over HTTPS with a self-signed certificate.
  • Timeout per request (15 s).

“Duplicati refused the password”: the password differs from the interface’s.

“this collector needs Duplicati 2.1 or later”: the server has no /api/v1/auth/login; update it.

The server answers “Invalid host header” or a similar refusal: add the name you use in DumbMonit to --webservice-allowed-hostnames.

A task shows no age: it never completed a backup successfully.