summaryrefslogtreecommitdiffstats
path: root/docs/maintenance/backup-restore.md
blob: 87abb70db8ebf2b7071ad46fb72e6f37dbc08e38 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
# Backing up a Netdata Agent

## Introduction

When preparing to backup a Netdata Agent it is worth considering that there are different kinds of data that you may wish to backup independently or all together:

| Data type           | Description                                          | Location                                                                                                                |
|---------------------|------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------|
| Agent configuration | Files controlling configuration of the Netdata Agent | [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md) |
| Metrics             | Database files                                       | /var/cache/netdata                                                                                                      |
| Identity            | Claim token, API key and some other files            | /var/lib/netdata                                                                                                        |


## Scenarios

### Backing up to restore data in case of a node failure

In this standard scenario you are backing up your Netdata Agent in case of a node failure or data corruption so that the metrics and the configuration can be recovered. The purpose is not to backup/restore the application itself.

1. Verify that the directory-paths in the table above contain the information you expect.  

   > **Note**  
   > The specific paths may vary depending upon installation method, Operating System and whether it is a Docker/Kubernetes deployment.

2. It is recommended that you [stop the Netdata Agent](https://github.com/netdata/netdata/blob/master/docs/configure/start-stop-restart.md) when backing up the Metrics/database files.  
   Backing up the Agent configuration and Identity folders is straight-forward as they should not be changing very frequently.

3. Using a backup tool such as `tar` you will need to run the backup as _root_ or as the _netdata_ user in order to access all the files in the directories.

  ```
  sudo tar -cvpzf netdata_backup.tar.gz /etc/netdata/ /var/cache/netdata /var/lib/netdata
  ```
  
  Stopping the Netdata agent is mostly required in order to back up the _database files_ of the Netdata Agent.
  
  If you wish to minimize the gap in metrics caused by stopping the Netdata Agent, then you could have a backup job or script that uses the following sequence:
  
- Backup the Agent configuration Identity directories
- Stop the Netdata service
- Backup up up the database files
- Restart the netdata agent.

### Restoring Netdata

1. Ensure that the Netdata agent is installed and is [stopped](https://github.com/netdata/netdata/blob/master/packaging/installer/README.md#maintaining-a-netdata-agent-installation)

   If you plan to deploy the Agent and restore a backup on top of it, then you might find it helpful to use the [`--dont-start-it`](https://github.com/netdata/netdata/blob/master/packaging/installer/methods/kickstart.md#other-options) option upon installation.

   ```
   wget -O /tmp/netdata-kickstart.sh https://get.netdata.cloud/kickstart.sh && sh /tmp/netdata-kickstart.sh --dont-start-it
   ```
  
    > **Note**
    > If you are going to restore the database files then you should first ensure that the Metrics directory is empty.
    > 
    > ```
    > sudo rm -Rf /var/cache/netdata
    > ```

2. Restore the backup from the archive

    ```
    sudo tar -xvpzf /path/to/netdata_backup.tar.gz -C /
    ```

3. [Start the Netdata agent](https://github.com/netdata/netdata/blob/master/packaging/installer/README.md#maintaining-a-netdata-agent-installation)