mirror of https://github.com/hashicorp/consul
parent
74cfcd3014
commit
e1e43dec7a
@ -0,0 +1,156 @@
|
||||
---
|
||||
layout: "docs"
|
||||
page_title: "Commands: Snapshot Agent"
|
||||
sidebar_current: "docs-commands-snapshot-agent"
|
||||
---
|
||||
|
||||
# Consul Snapshot Agent
|
||||
|
||||
Command: `consul snapshot agent`
|
||||
|
||||
~> The [`agent`](/docs/commands/snapshot/agent.html) subcommand described here is
|
||||
available only in [Consul Enterprise](https://www.hashicorp.com/consul.html)
|
||||
version 0.7.1 and later. All other [snapshot subcommands](/docs/commands/snapshot.html)
|
||||
are available in the open source version of Consul.
|
||||
|
||||
The `snapshot agent` subcommand starts a process that takes snapshots of the
|
||||
state of the Consul servers and saves them locally, or pushes them to an
|
||||
optional remote storage service. This subcommand is only available in Consul
|
||||
Enterprise 0.7.1 and later.
|
||||
|
||||
The agent can be run as a long-running daemon process or in a one-shot mode
|
||||
from a batch job, based on the [`-interval`](#interval) argument. Snapshotting
|
||||
a remote datacenter is only available in one-shot mode.
|
||||
|
||||
As a long-running daemon, the agent will perform a leader election so multiple
|
||||
processes can be run in a highly available fashion with automatic failover. The
|
||||
agent will also register itself with Consul as a service, along with health
|
||||
checks that show the agent is alive ("Consul Snapshot Agent Alive") and able to
|
||||
take snapshots ("Consul Snapshot Agent Saving Snapshots"). The latter check is
|
||||
only added on agents who have become a leader, so it's possible for operators to
|
||||
tell which instances are alive and on standby and which instance has become
|
||||
leader and starting saving snapshots.
|
||||
|
||||
As snapshots are saved, they will be reported in the log produced by the agent:
|
||||
|
||||
```
|
||||
2016/11/16 21:21:13 [INFO] Snapshot agent running
|
||||
2016/11/16 21:21:13 [INFO] Waiting to obtain leadership...
|
||||
2016/11/16 21:21:13 [INFO] Obtained leadership
|
||||
2016/11/16 21:21:13 [INFO] Saved snapshot 1479360073448728784
|
||||
```
|
||||
|
||||
The number shown with the saved snapshot is its ID, which is based on a UNIX
|
||||
timestamp with nanosecond resolution, so collisions are unlikely and IDs are
|
||||
monotonically increasing with time. This makes it easy to locate the latest
|
||||
snapshot, even if the log data isn't available. The snapshot ID always appears
|
||||
in the file name when using local storage, or in the object key when using
|
||||
remote storage.
|
||||
|
||||
Snapshots can be restored using the
|
||||
[`consul snapshot restore`](/docs/commands/snapshot/restore.html) command, or
|
||||
the [HTTP API](/docs/agent/http/snapshot.html).
|
||||
|
||||
If ACLs are enabled, a management token must be supplied in order to perform
|
||||
snapshot operations.
|
||||
|
||||
## Usage
|
||||
|
||||
Usage: `consul snapshot agent [options]`
|
||||
|
||||
#### API Options
|
||||
|
||||
<%= partial "docs/commands/http_api_options" %>
|
||||
|
||||
#### Snapshot Options
|
||||
|
||||
* <a name="interval">`-interval`</a> - Interval at which to perform snapshots
|
||||
as a time with a unit suffix, which can be "s", "m", "h" for seconds, minutes,
|
||||
or hours. If 0 is provided, the agent will take a single snapshot and then exit,
|
||||
which is useful for running snapshots via batch jobs. Defaults to "1h"
|
||||
|
||||
* `-lock-key` - A prefix in Consul's key-value store used to coordinate between
|
||||
different instances of the snapshot agent order to only have one active instance
|
||||
at a time. For highly available operation of the snapshot agent, simply run
|
||||
multiple instances. All instances must be configured with the same lock key in
|
||||
order to properly coordinate. Defaults to "consul-snapshot/lock".
|
||||
|
||||
* `-max-failures` - Number of snapshot failures after which the snapshot agent
|
||||
will give up leadership. In a highly available operation with multiple snapshot
|
||||
agents available, this gives another agent a chance to take over if an agent
|
||||
is experiencing issues, such as running out of disk space for snapshots.
|
||||
Defaults to 3.
|
||||
|
||||
* `-retain` - Number of snapshots to retain. After each snapshot is taken, the
|
||||
oldest snapshots will start to be deleted in order to retain at most this many
|
||||
snapshots. If this is set to 0, the agent will not perform this and snapshots
|
||||
will accumulate forever. Defaults to 30.
|
||||
|
||||
|
||||
#### Agent Options
|
||||
|
||||
* `-deregister-after` - An interval, after which if the agent is unhealthy it will be
|
||||
automatically deregistered from Consul service discovery. This is a time with a
|
||||
unit suffix, which can be "s", "m", "h" for seconds, minutes, or hours. If 0 is
|
||||
provided, this will be disabled. Defaults to "72h".
|
||||
|
||||
* `-log-level` - Controls verbosity of snapshot agent logs. Valid options are
|
||||
"TRACE", "DEBUG", "INFO", "WARN", "ERR". Defaults to "INFO".
|
||||
|
||||
* `-service` - The service name to used when registering the agent with Consul.
|
||||
Registering helps monitor running agents and the leader registers an additional
|
||||
health check to monitor that snapshots are taking place. Defaults to
|
||||
"consul-snapshot".
|
||||
|
||||
* `-syslog` - This enables forwarding logs to syslog. Defaults to false.
|
||||
|
||||
* `-syslog-facility` - Sets the facility to use for forwarding logs to syslog.
|
||||
Defaults to "LOCAL0".
|
||||
|
||||
#### Local Storage Options
|
||||
|
||||
* `-snapshot-path` - Location to store snapshots locally. The default behavior
|
||||
of the snapshot agent is to store snapshots locally in this directory. Defaults
|
||||
to "." to use the current working directory. If an alternate storage option is
|
||||
configured, then local storage will be disabled and this option will be ignored.
|
||||
|
||||
#### Amazon S3 Storage Options
|
||||
|
||||
* `-aws-access-key-id` and `-aws-secret-access-key` - These arguments supply
|
||||
authentication information for connecting to AWS. These may also be supplied using
|
||||
the following alternative methods:<br>
|
||||
- `AWS_ACCESS_KEY_ID` and `AWS_SECRET_ACCESS_KEY` environment variables
|
||||
- A credentials file (`~/.aws/credentials` or the file at the path specified by the
|
||||
`AWS_SHARED_CREDENTIALS_FILE` environment variable)
|
||||
- ECS task role metadata (container-specific)
|
||||
- EC2 instance role metadata
|
||||
|
||||
* `-aws-s3-bucket` - S3 bucket to use. Required for S3 storage, and setting this
|
||||
disables local storage.
|
||||
|
||||
* `-aws-s3-key-prefix` - Prefix to use for snapshot files in S3. Defaults to
|
||||
"consul-snapshot".
|
||||
|
||||
* `-aws-s3-region` - S3 region to use. Required for S3 storage.
|
||||
|
||||
## Examples
|
||||
|
||||
Running the agent with no arguments will run a long-running daemon process that will
|
||||
perform leader election for highly available operation, register itself with Consul
|
||||
service discovery with health checks, take snapshots every hour, retain the last 30
|
||||
snapshots, and save snapshots into the current working directory:
|
||||
|
||||
```
|
||||
$ consul snapshot agent
|
||||
```
|
||||
|
||||
To run a one-shot backup, set the backup interval to 0. This will run a single snapshot
|
||||
and delete any old snapshots based on the retain settings, but it will not perform any
|
||||
leader election or service registration:
|
||||
|
||||
```
|
||||
$ consul snapshot agent -interval=0
|
||||
```
|
||||
|
||||
Please see the [HTTP API](/docs/agent/http/snapshot.html) documentation for
|
||||
more details about snapshot internals.
|
Loading…
Reference in new issue