---
title: Charmhub | Deploy Apache Kafka Connect using Charmhub - The Open Operator Collection
description: Deploy the latest version of Apache Kafka Connect on any cloud.
url: https://charmhub.io/kafka-connect/docs/h-backup
---

# Apache Kafka Connect

[Canonical](https://charmhub.io/publisher/data-platform "View all packages from Canonical")

* [Canonical](https://charmhub.io/publisher/data-platform "View all packages from Canonical")

Platform:

24.04

22.04

4/stable 37

```
juju deploy kafka-connect --channel 4/stable
```

[Learn to deploy on juju >](https://juju.is/docs/juju/manage-applications)

---

#### Relevant links

* [Homepage](https://github.com/canonical/kafka-connect-operator)

---

#### Contacts

##### Maintainers

+ [Canonical Data Platform](mailto:data-platform@lists.launchpad.net)

* [Submit a bug](https://github.com/canonical/kafka-connect-operator/issues)

---

Share your thoughts on this charm with the community on discourse.

[Join the discussion](https://discourse.charmhub.io/)

# Configuration backup and restore

Apache Kafka configuration is distributed using Apache ZooKeeper.
An Apache ZooKeeper backup can be stored on any S3-compatible storage.
S3 access and configurations are managed with the [`s3-integrator` charm](https://charmhub.io/s3-integrator), that can be integrated with Apache ZooKeeper.

This guide contains step-by-step instructions on how to deploy and configure the `s3-integrator` charm for [AWS S3](https://aws.amazon.com/s3/), send the configurations to Charmed Apache ZooKeeper, and finally manage your Apache ZooKeeper backups.

## [Configure `s3-integrator`](https://charmhub.io/kafka-connect/docs/h-backup#p-34026-configure-s3-integrator)

First, deploy the `s3-integrator` charm:

```
juju deploy s3-integrator
juju run s3-integrator/leader sync-s3-credentials access-key=<aws-access-key-id> secret-key=<aws-secret-key>
```

Then, use `juju config` to add your configuration parameters. For example:

```
juju config s3-integrator \
    endpoint="https://s3.us-west-2.amazonaws.com" \
    bucket="zk-backups-bucket-1" \
    path="/zk-backups" \
    region="us-west-2"
```

The only mandatory configuration parameter in the command above is the `bucket`.

### [Integrate with Charmed Apache ZooKeeper](https://charmhub.io/kafka-connect/docs/h-backup#p-34026-integrate-with-charmed-apache-zookeeper)

To pass these configurations to Charmed Apache ZooKeeper, integrate the two applications:

```
juju integrate s3-integrator zookeeper
```

You can create, list, and restore backups now:

```
juju run zookeeper/leader create-backup
juju run zookeeper/leader list-backups
juju run zookeeper/leader restore backup-id=<backup-id-here>
```

## [Create a backup](https://charmhub.io/kafka-connect/docs/h-backup#p-34026-create-a-backup)

Check that Charmed Apache ZooKeeper deployment with configurations set for S3 storage is `active` and `idle` with the `juju status` command. Once it’s active, create a backup with the `create-backup` command:

```
juju run zookeeper/leader create-backup
```

Apache ZooKeeper backups created with the command above will always be **full** backups: a copy of *all* the Apache Kafka configuration will be stored in S3.

The command will output the ID of the newly created backup:

```
                                     Backup created
┏━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ Id                   ┃ Log-sequence-number ┃ Path                           ┃
┡━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩
│ 2024-09-12T14:32:46Z │          8589934621 │ zookeeper_backups/2024-09-12T1 │
│                      │                     │ 4:32:46Z/snapshot              │
└──────────────────────┴─────────────────────┴────────────────────────────────┘
```

## [List backups](https://charmhub.io/kafka-connect/docs/h-backup#p-34026-list-backups)

To list available backups, run the `list-backups` command:

```
juju run zookeeper/leader list-backups
```

This command shows available backups, for example:

```
                                     Backups
┏━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ Id                   ┃ Log-sequence-number ┃ Path                           ┃
┡━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩
│ 2024-09-12T14:32:46Z │          8589934621 │ zookeeper_backups/2024-09-12T1 │
│                      │                     │ 4:32:46Z/snapshot              │
│ 2024-09-12T14:32:00Z │          8589934621 │ zookeeper_backups/2024-09-12T1 │
│                      │                     │ 4:32:00Z/snapshot              │
│ 2024-09-12T14:26:12Z │          8589934621 │ zookeeper_backups/2024-09-12T1 │
│                      │                     │ 4:26:12Z/snapshot              │
└──────────────────────┴─────────────────────┴────────────────────────────────┘
```

Below is a list of parameters shown for each backup:

* `Id`: identifier of the backup.
* `Log-Sequence-number`: a database-specific number to identify its state. Learn more about the Zxid on [Apache ZooKeeper documentation](https://zookeeper.apache.org/doc/r3.9.2/zookeeperProgrammers.html#sc_timeInZk).
* `Path`: path of the snapshot file in the S3 repository.

## [Restore a backup](https://charmhub.io/kafka-connect/docs/h-backup#p-34026-restore-a-backup)

This operation puts you at risk of losing unsaved configuration data.
We recommend creating a backup first.

To restore from backup, run the `restore` command and pass the `backup-id` (in the `YYYY-MM-DDTHH:MM:SSZ` format) that is listed in the `list-backups` action output:

```
juju run zookeeper/leader restore backup-id=<backup-id-here>
```

The restore will then proceed. Follow its progress using `juju status`.

---
