Management

How to start, stop, reload, and restart your Vector instance

The sections below show you how to administer your Vector instance—start, stop, reload, etc.—in a variety of settings:

Vector executable

To manage the Vector executable directly, without a process manager:

killall -s SIGHUP vector
vector --config /etc/vector/vector.yaml

# Or supply a JSON or YAML config file

Linux

APT, dpkg, RPM, YUM, pacman

If you’ve installed Vector using APT, dpkg, RPM, YUM or pacman, you can manage it using systemctl.

systemctl kill -s HUP --kill-who=main vector.service
sudo systemctl restart vector
sudo systemctl start vector
sudo systemctl stop vector

Nix

If you’ve installed Vector using Nix, you can manage it using the commands laid out in the Vector executable section.

macOS

If you’re running Vector on macOS, you can manage it using either the executable commands or Homebrew.

Homebrew

If you’ve installed Vector using Homebrew, you can manage it using Homebrew’s services utility.

killall -S SIGHUP vector
brew services restart vector
brew services start vector
brew services stop vector

Windows

If you’re running Vector on Windows (perhaps you installed it using MSI), you can manage it using these commands:

C:\Program Files\Vector\bin\vector \
  --config C:\Program Files\Vector\config\vector.yaml

# Or supply a TOML or JSON config file

Docker

If you’re running Vector using Docker, the command interface is the same across all platforms.

docker kill --signal=HUP timberio/vector
docker restart -f $(docker ps -aqf "name=vector")
docker run \
  -d \
  -v ~/vector.yaml:/etc/vector/vector.yaml:ro \
  -p 8686:8686 \
  timberio/vector:0.43.1-alpine
docker stop timberio/vector

The commands above involve configuring Vector using TOML, but you can also use JSON or YAML. You can also use one of three image variants (the commands assume alpine):

VariantImage basis
alpineAlpine, a Linux distro built around musl libc and BusyBox
debianThe debian-slim image, which is a smaller and more compact version of the standard debian image
distrolessThe Distroless project, which provides extremely lean images with no package managers, shells, or other inessential utilities

Helm

To get Vector running on Kubernetes using the Helm package manager:

Once Vector is running in Kubernetes, you can manage it using kubectl:

kubectl rollout restart --namespace vector daemonset/vector-agent
kubectl rollout restart --namespace vector statefulset/vector-aggregator

Reloading

As you can see above, many administrative interfaces for Vector enable you to trigger a restart of a Vector instance while it’s running. There are a few things that you should know about reloading.

Automatic reloading on configuration change

You can make Vector automatically reload itself when its configuration file changes by setting the --watch-config or -w flag when you first start your Vector instance.

Additionally you can add method for watching config change by setting the --watch-config-method to recommended or poll.

recommended is default and it uses file event listener for file change events. poll can used where the event listener won’t work, eg. attaching config files by NFS/EFS, which will poll for file changes on certain interval.

You can set the poll interval by setting flag --watch-config-poll-interval-seconds. which defaults to 30.

How it works

Running Vector instances accept the IPC signals and produce the exit codes listed below.

Signals

The Vector is built to handle the inter-process communication signals listed in the table below.
SignalDescription
SIGHUPReloads configuration on the fly.
SIGTERMInitiates graceful shutdown process.

Exit codes

You can find a full list of exit codes in the exitcodes Rust crate. Vector uses the codes listed in the table below.
CodeDescription
0Exited successfully.
1Exited with a generic error.
78Configuration is invalid.