docs/victoriametrics/Quick-Start.md
VictoriaMetrics is available in the following distributions:
VictoriaMetrics is available as:
Just download VictoriaMetrics and follow these instructions. See available integrations with other systems like Prometheus or Grafana.
VictoriaMetrics is developed at a fast pace, so it is recommended to periodically check the CHANGELOG and perform regular upgrades.
Download the newest available VictoriaMetrics release from DockerHub or Quay:
docker pull victoriametrics/victoria-metrics:v1.143.0
docker run -it --rm -v `pwd`/victoria-metrics-data:/victoria-metrics-data -p 8428:8428 \
victoriametrics/victoria-metrics:v1.143.0 --selfScrapeInterval=5s -storageDataPath=victoria-metrics-data
For Enterprise images, see this link.
You should see:
started server at http://0.0.0.0:8428/
partition "2025_03" has been created
Open http://localhost:8428/vmui in WEB browser to see graphical interface vmui.
With --selfScrapeInterval=5s VictoriaMetrics scrapes its own metrics, and they should become queryable 30s after start.
Visit http://localhost:8428/vmui/#/metrics to explore available metrics or run an arbitrary query at
http://localhost:8428/vmui (i.e. process_cpu_cores_available).
Other available HTTP endpoints are listed on http://localhost:8428 page.
See how to write or read from VictoriaMetrics.
Clone VictoriaMetrics repository and start the docker environment
via make docker-vm-cluster-up command:
git clone https://github.com/VictoriaMetrics/VictoriaMetrics && cd VictoriaMetrics
make docker-vm-cluster-up
You should see:
✔ Container vmstorage-1 Started 0.4s
✔ Container vmselect-1 Started 0.4s
✔ Container vminsert Started 0.4s
✔ Container vmagent Started
The command starts a set of VictoriaMetrics components for metrics collection, storing, alerting and Grafana for user interface. See the description of deployed topology.
Visit Grafana http://localhost:3000/ (admin:admin) or vmui http://localhost:8427/select/0/vmui to start exploring metrics.
Further customization is possible by editing the compose-vm-cluster.yml file.
See more details about cluster architecture.
Download the correct binary for your OS and architecture from GitHub. For Enterprise binaries, see this link.
Extract the archive to /usr/local/bin by running:
sudo tar -xvf <victoriametrics-archive> -C /usr/local/bin
Replace <victoriametrics-archive> with the path to the archive you downloaded in step 1.
sudo useradd -s /usr/sbin/nologin victoriametrics
sudo mkdir -p /var/lib/victoria-metrics && sudo chown -R victoriametrics:victoriametrics /var/lib/victoria-metrics
sudo bash -c 'cat <<END >/etc/systemd/system/victoriametrics.service
[Unit]
Description=VictoriaMetrics service
After=network.target
[Service]
Type=simple
User=victoriametrics
Group=victoriametrics
ExecStart=/usr/local/bin/victoria-metrics-prod -storageDataPath=/var/lib/victoria-metrics -selfScrapeInterval=10s
SyslogIdentifier=victoriametrics
Restart=always
PrivateTmp=yes
ProtectHome=yes
NoNewPrivileges=yes
ProtectSystem=full
[Install]
WantedBy=multi-user.target
END'
Extra command-line flags can be added to ExecStart line.
If you want to deploy VictoriaMetrics Single Node as a Windows Service, review the running as a Windows service docs.
Please note,
victoriametricsservice is listening on:8428for HTTP connections (see-httpListenAddrflag).
sudo systemctl daemon-reload && sudo systemctl enable --now victoriametrics.service
sudo systemctl status victoriametrics.service
Running state, verify vmui is working
by going to http://<ip_or_hostname>:8428/vmui.VictoriaMetrics cluster consists of 3 components. It is recommended to run these components in the same private network (for security reasons), but on separate physical nodes for the best performance.
On all nodes, you will need to do the following:
Download the correct binary for your OS and architecture with -cluster suffix from GitHub.
For Enterprise binaries, see this link.
Extract the archive to /usr/local/bin by running:
sudo tar -xvf <victoriametrics-archive> -C /usr/local/bin
Replace <victoriametrics-archive> with the path to the archive you downloaded in step 1
sudo useradd -s /usr/sbin/nologin victoriametrics
See recommendations for installing each type of cluster component below.
vmstorage data:sudo mkdir -p /var/lib/vmstorage && sudo chown -R victoriametrics:victoriametrics /var/lib/vmstorage
vmstorage service by running the following command:sudo bash -c 'cat <<END >/etc/systemd/system/vmstorage.service
[Unit]
Description=VictoriaMetrics vmstorage service
After=network.target
[Service]
Type=simple
User=victoriametrics
Group=victoriametrics
Restart=always
ExecStart=/usr/local/bin/vmstorage-prod -storageDataPath=/var/lib/vmstorage
PrivateTmp=yes
NoNewPrivileges=yes
ProtectSystem=full
[Install]
WantedBy=multi-user.target
END'
Extra command-line flags
for vmstorage can be added to ExecStart line.
Please note,
vmstorageservice is listening on:8400for vminsert connections (see-vminsertAddrflag), on:8401for vmselect connections (see--vmselectAddrflag) and on:8482for HTTP connections (see-httpListenAddrflag).
vmstorage:sudo systemctl daemon-reload && sudo systemctl enable --now vmstorage
sudo systemctl status vmstorage
vmstorage is in Running state, confirm the service is healthy by visiting http://<ip_or_hostname>:8482/-/healthy link.
It should say "VictoriaMetrics is Healthy".vminsert by running the following command:sudo bash -c 'cat <<END >/etc/systemd/system/vminsert.service
[Unit]
Description=VictoriaMetrics vminsert service
After=network.target
[Service]
Type=simple
User=victoriametrics
Group=victoriametrics
Restart=always
ExecStart=/usr/local/bin/vminsert-prod -storageNode=<list of vmstorages>
PrivateTmp=yes
NoNewPrivileges=yes
ProtectSystem=full
[Install]
WantedBy=multi-user.target
END'
Replace <list of vmstorages> with addresses of previously configured vmstorage services.
To specify multiple addresses you can repeat the flag multiple times, or separate addresses with commas
in one flag. See more details in -storageNode flag description in vminsert flags.
Please note,
vminsertservice is listening on:8480for HTTP connections (see-httpListenAddrflag).
vminsert:sudo systemctl daemon-reload && sudo systemctl enable --now vminsert.service
sudo systemctl status vminsert.service
vminsert is in Running state, confirm the service is healthy by visiting http://<ip_or_hostname>:8480/-/healthy link.
It should say "VictoriaMetrics is Healthy."sudo mkdir -p /var/lib/vmselect-cache && sudo chown -R victoriametrics:victoriametrics /var/lib/vmselect-cache
vmselect by runningsudo bash -c 'cat <<END >/etc/systemd/system/vmselect.service
[Unit]
Description=VictoriaMetrics vmselect service
After=network.target
[Service]
Type=simple
User=victoriametrics
Group=victoriametrics
Restart=always
ExecStart=/usr/local/bin/vmselect-prod -storageNode=<list of vmstorages> -cacheDataPath=/var/lib/vmselect-cache
PrivateTmp=yes
NoNewPrivileges=yes
ProtectSystem=full
[Install]
WantedBy=multi-user.target
END'
Replace <list of vmstorages> with addresses of previously configured vmstorage services.
To specify multiple addresses, you can repeat the flag multiple times or separate addresses with commas
in one flag. See more details in -storageNode flag description vminsert flags.
Please note,
vmselectservice is listening on:8481for HTTP connections (see-httpListenAddrflag).
vmselect:sudo systemctl daemon-reload && sudo systemctl enable --now vmselect.service
vmselect service is running:sudo systemctl status vmselect.service
vmselect is in Running state, confirm the service is healthy by visiting http://<ip_or_hostname>:8481/select/0/vmui link.
It should open the vmui page.There are two main models in monitoring for data collection: push and pull. Both are used in modern monitoring, and both are supported by VictoriaMetrics.
See more details on key concepts of writing data here. See documentation for configuring metrics collectors and other integrations.
VictoriaMetrics has built-in vmui - graphical User Interface for querying and visualizing metrics. MetricsQL - is the query language for executing read queries in VictoriaMetrics. See examples of MetricsQL queries in MetricsQL concepts.
VictoriaMetrics provides an HTTP API for serving read queries. The API is used in various integrations such as Grafana.
See more details on key concepts of querying data and other integrations.
To run periodic conditions checks use vmalert. It allows creating a set of conditions using MetricsQL expressions and sending notifications to Alertmanager when such conditions are met.
See vmalert quick start.
Migrating data from other TSDBs to VictoriaMetrics is as simple as importing data via any of supported formats.
The migration might get easier when using vmctl - VictoriaMetrics command line tool. It supports the following databases for migration to VictoriaMetrics:
When moving to production with VictoriaMetrics, we recommend following these best practices.
Each VictoriaMetrics component emits its own metrics with various details regarding performance
and health state. Docs for the components also contain a Monitoring section with an explanation
of what and how should be monitored. For example,
Single-server-VictoriaMetrics Monitoring.
VictoriaMetrics has a list of Grafana dashboards. Each dashboard contains a lot of useful information and tips. It is recommended to have these dashboards installed and up to date.
Using the recommended alerting rules will help to identify unwanted issues.
The rule of thumb is to have a separate installation of VictoriaMetrics or any other monitoring system to monitor the production installation of VictoriaMetrics. This would make monitoring independent and help identify problems with the main monitoring installation.
See more details in the article VictoriaMetrics Monitoring.
VictoriaMetrics Single-node and vmstorage in VictoriaMetrics Cluster retain data for 1 month by default.
Data older than the retention period will be automatically deleted. To change the retention period, use the -retentionPeriod flag (e.g. -retentionPeriod=90d).
See the retention documentation for more details.
If free disk space falls below -storage.minFreeDiskSpaceBytes, VictoriaMetrics Single-node or vmstorage switches to read-only mode and stops accepting new data. To prevent this, ensure proper capacity planning and set up monitoring and alerting for disk usage.
See capacity planning sections in docs for Single-server-VictoriaMetrics and VictoriaMetrics Cluster.
Capacity planning isn't possible without monitoring, so consider configuring it first. Understanding resource usage and performance of VictoriaMetrics also requires knowing the tech terms active series, churn rate, cardinality, slow inserts. All of them are present in Grafana dashboards.
It is recommended to read Replication and data safety, Why replication doesn’t save from disaster?
For backup configuration, please refer to vmbackup documentation.
To avoid excessive resource usage or performance degradation, limits must be in place: