Diagnose and troubleshooting#

One of the features that tools require is the ability to troubleshoot problems in an efficient way. Barman provides multiple ways to diagnose and troubleshoot problems.

Usually problems arise from errors or warning messages returned by barman check, but they may come up from other sources as well.

Barman status#

You can check the status of a specific Postgres server using the barman status command. This command provides a detailed view of the status of the server, such as the PostgreSQL version, the current data size, the PostgreSQL data directory, the current WAL, the archive command, the last archived WAL, the number of available backups, and more:

$ barman status pg16
Server pg16:
    Description: PostgreSQL 16 Database (via SSH)
    Active: True
    Disabled: False
    PostgreSQL version: 16.4
    Cluster state: in production
    Current data size: 31.9 MiB
    PostgreSQL Data directory: /var/lib/pgsql/16/data
    Current WAL segment: 000000010000003B00000010
    PostgreSQL 'archive_command' setting: barman-wal-archive barman_server pg16 %p
    Last archived WAL: 000000010000003B0000000F, at Mon Nov 18 07:54:54 2024
    Failures of WAL archiver: 0
    Passive node: False
    Retention policies: not enforced
    No. of available backups: 2
    First available backup: 20240911T085206
    Last available backup: 20240911T085736
    Minimum redundancy requirements: satisfied (2/0)

This is a good tool to collaborate that the server’s configuration aligns with the configuration of the barman server.

Barman show servers#

You can use the barman show-servers command to list all the configuration options and values for a specific Postgres server configured for backups.

$ barman show-servers pg16
Server local16:
    active: True
    archive_command: barman-wal-archive barman-server pg16 %p
    archive_mode: on
    archive_timeout: 0
    archived_count: 1
    ...

Barman replication status#

You can do a quick check of the replication status for a specific Postgres server by using the barman replication-status command. This command provides a detailed view of the status of the replication.

$ barman replication-status pg16
Status of streaming clients for server 'pg16':
Current LSN on master: 3B/10000148
Number of streaming clients: 1

1. Async WAL streamer
    Application name: barman_receive_wal
    Sync stage      : 3/3 Remote write
    Communication   : Unix domain socket
    User name       : barman
    Current state   : streaming (async)
    Replication slot: standby
    WAL sender PID  : 165959
    Started at      : 2024-11-18 07:49:01.837787+00:00
    Sent LSN   : 3B/10000148 (diff: 0 B)
    Write LSN  : 3B/10000148 (diff: 0 B)
    Flush LSN  : 3B/10000000 (diff: -328 B)

Barman diagnose#

The barman diagnose command gathers important information about the status of all the configured servers. It’s an overall view of the configured Postgres servers that are being backed up by Barman.

barman diagnose

The diagnose command output is a full snapshot of the barman server, providing useful information, such as global configuration, SSH version, Python version, rsync version, PostgreSQL clients version, as well as current configuration and status of all servers.

The diagnose command is extremely useful for troubleshooting problems, as it gives a global view on the status of your Barman installation.