2021-09-01 08:18:56 +02:00
# Docker compose environment for VictoriaMetrics
2019-06-03 13:53:08 +02:00
2022-09-21 10:48:38 +02:00
Docker compose environment for VictoriaMetrics includes VictoriaMetrics components,
[Alertmanager ](https://prometheus.io/docs/alerting/latest/alertmanager/ )
and [Grafana ](https://grafana.com/ ).
2019-06-02 18:07:21 +02:00
2022-09-21 10:48:38 +02:00
For starting the docker-compose environment ensure you have docker installed and running and access to the Internet.
2022-12-06 07:05:31 +01:00
**All commands should be executed from the root directory of [the repo ](https://github.com/VictoriaMetrics/VictoriaMetrics ).**
2019-06-02 18:07:21 +02:00
2024-02-08 15:11:13 +01:00
* [VictoriaMetrics single server ](#victoriametrics-single-server )
* [VictoriaMetrics cluster ](#victoriametrics-cluster )
* [vmagent ](#vmagent )
* [vmauth ](#vmauth )
* [vmalert ](#vmalert )
* [alertmanager ](#alertmanager )
* [Alerts ](#alerts )
* [Grafana ](#grafana )
* [VictoriaLogs ](#victoriaLogs-server )
2021-09-01 08:18:56 +02:00
2022-09-21 10:48:38 +02:00
2024-02-08 15:11:13 +01:00
## VictoriaMetrics single server
2024-01-22 16:05:44 +01:00
2024-02-08 15:11:13 +01:00
To spin-up environment with VictoriaMetrics single server run the following command:
```
make docker-single-up
2024-01-22 16:05:44 +01:00
```
2019-06-06 22:37:44 +02:00
2021-09-01 08:18:56 +02:00
VictoriaMetrics will be accessible on the following ports:
2022-03-22 12:40:55 +01:00
2019-06-06 22:37:44 +02:00
* `--graphiteListenAddr=:2003`
* `--opentsdbListenAddr=:4242`
* `--httpListenAddr=:8428`
2022-09-21 10:48:38 +02:00
The communication scheme between components is the following:
2022-12-06 07:05:31 +01:00
* [vmagent ](#vmagent ) sends scraped metrics to `single server VictoriaMetrics` ;
* [grafana ](#grafana ) is configured with datasource pointing to `single server VictoriaMetrics` ;
* [vmalert ](#vmalert ) is configured to query `single server VictoriaMetrics` and send alerts state
2022-09-21 10:48:38 +02:00
and recording rules back to it;
2022-12-06 07:05:31 +01:00
* [alertmanager ](#alertmanager ) is configured to receive notifications from `vmalert` .
2022-09-21 10:48:38 +02:00
2024-02-23 12:20:32 +01:00
< img alt = "VictoriaMetrics single-server deployment" width = "500" src = "assets/vm-single-server.png" >
2023-09-26 10:50:10 +02:00
To access Grafana use link [http://localhost:3000 ](http://localhost:3000 ).
2022-09-21 10:48:38 +02:00
2024-04-18 03:11:03 +02:00
To access [vmui ](https://docs.victoriametrics.com/single-server-victoriametrics/#vmui )
2022-09-21 10:48:38 +02:00
use link [http://localhost:8428/vmui ](http://localhost:8428/vmui ).
2023-09-26 10:50:10 +02:00
To access `vmalert` use link [http://localhost:8428/vmalert ](http://localhost:8428/vmalert/ ).
2024-02-08 15:11:13 +01:00
To shutdown environment execute the following command:
```
make docker-single-down
```
2023-09-26 10:50:10 +02:00
2022-09-21 10:48:38 +02:00
## VictoriaMetrics cluster
2024-02-08 15:11:13 +01:00
To spin-up environment with VictoriaMetrics cluster run the following command:
```
make docker-cluster-up
```
2022-12-06 07:05:31 +01:00
VictoriaMetrics cluster environment consists of `vminsert` , `vmstorage` and `vmselect` components.
2023-09-26 10:50:10 +02:00
`vminsert` has exposed port `:8480` , access to `vmselect` components goes through `vmauth` on port `:8427` ,
and the rest of components are available only inside the environment.
2022-09-21 10:48:38 +02:00
The communication scheme between components is the following:
2022-12-06 07:05:31 +01:00
* [vmagent ](#vmagent ) sends scraped metrics to `vminsert` ;
* `vminsert` forwards data to `vmstorage` ;
2023-09-26 10:50:10 +02:00
* `vmselect` s are connected to `vmstorage` for querying data;
* [vmauth ](#vmauth ) balances incoming read requests among `vmselect` s;
* [grafana ](#grafana ) is configured with datasource pointing to `vmauth` ;
* [vmalert ](#vmalert ) is configured to query `vmselect` s via `vmauth` and send alerts state
2022-12-06 07:05:31 +01:00
and recording rules to `vminsert` ;
* [alertmanager ](#alertmanager ) is configured to receive notifications from `vmalert` .
2022-09-21 10:48:38 +02:00
2024-02-23 12:20:32 +01:00
< img alt = "VictoriaMetrics cluster deployment" width = "500" src = "assets/vm-cluster.png" >
2023-09-26 10:50:10 +02:00
To access Grafana use link [http://localhost:3000 ](http://localhost:3000 ).
2022-09-21 10:48:38 +02:00
2024-04-18 03:11:03 +02:00
To access [vmui ](https://docs.victoriametrics.com/single-server-victoriametrics/#vmui )
2023-09-26 10:50:10 +02:00
use link [http://localhost:8427/select/0/prometheus/vmui/ ](http://localhost:8427/select/0/prometheus/vmui/ ).
To access `vmalert` use link [http://localhost:8427/select/0/prometheus/vmalert/ ](http://localhost:8427/select/0/prometheus/vmalert/ ).
2022-09-21 10:48:38 +02:00
2024-02-08 15:11:13 +01:00
To shutdown environment execute the following command:
```
make docker-cluster-down
```
2021-09-01 08:18:56 +02:00
## vmagent
2019-06-06 22:37:44 +02:00
2022-12-06 07:05:31 +01:00
vmagent is used for scraping and pushing time series to VictoriaMetrics instance.
It accepts Prometheus-compatible configuration [prometheus.yml ](https://github.com/VictoriaMetrics/VictoriaMetrics/blob/master/deployment/docker/prometheus.yml )
with listed targets for scraping.
2019-06-06 22:37:44 +02:00
2021-08-31 11:28:02 +02:00
[Web interface link ](http://localhost:8429/ ).
2023-09-26 10:50:10 +02:00
## vmauth
2024-04-18 01:49:41 +02:00
[vmauth ](https://docs.victoriametrics.com/vmauth/ ) acts as a [balancer ](https://docs.victoriametrics.com/vmauth/#load-balancing )
2023-09-26 10:50:10 +02:00
to spread the load across `vmselect` 's. [Grafana ](#grafana ) and [vmalert ](#vmalert ) use vmauth for read queries.
vmauth config is available [here ](ttps://github.com/VictoriaMetrics/VictoriaMetrics/blob/master/deployment/docker/auth-cluster.yml )
2021-09-01 08:18:56 +02:00
## vmalert
2021-08-31 11:28:02 +02:00
2023-02-16 19:25:10 +01:00
vmalert evaluates alerting rules [alerts.yml ](https://github.com/VictoriaMetrics/VictoriaMetrics/blob/master/deployment/docker/alerts.yml )
2022-12-06 07:05:31 +01:00
to track VictoriaMetrics health state. It is connected with AlertManager for firing alerts,
2021-08-31 11:28:02 +02:00
and with VictoriaMetrics for executing queries and storing alert's state.
[Web interface link ](http://localhost:8880/ ).
2021-09-01 08:18:56 +02:00
## alertmanager
2021-08-31 11:28:02 +02:00
AlertManager accepts notifications from `vmalert` and fires alerts.
2023-02-16 19:25:10 +01:00
All notifications are blackholed according to [alertmanager.yml ](https://github.com/VictoriaMetrics/VictoriaMetrics/blob/master/deployment/docker/alertmanager.yml ) config.
2021-08-31 11:28:02 +02:00
[Web interface link ](http://localhost:9093/ ).
2021-09-01 08:18:56 +02:00
## Grafana
2019-06-06 22:37:44 +02:00
To access service open following [link ](http://localhost:3000 ).
2022-03-22 12:40:55 +01:00
Default credential:
2019-06-06 22:37:44 +02:00
* login - `admin`
* password - `admin`
Grafana is provisioned by default with following entities:
2022-03-22 12:40:55 +01:00
2022-09-21 10:48:38 +02:00
* `VictoriaMetrics` datasource
* `VictoriaMetrics - cluster` datasource
* `VictoriaMetrics overview` dashboard
* `VictoriaMetrics - cluster` dashboard
* `VictoriaMetrics - vmagent` dashboard
* `VictoriaMetrics - vmalert` dashboard
2023-02-16 19:25:10 +01:00
Remember to pick `VictoriaMetrics - cluster` datasource when viewing `VictoriaMetrics - cluster` dashboard.
2023-08-03 10:21:18 +02:00
2024-02-08 15:11:13 +01:00
Optionally, environment with [VictoriaMetrics Grafana datasource ](https://github.com/VictoriaMetrics/grafana-datasource )
can be started with the following commands:
```
make docker-single-vm-datasource-up # start single server
make docker-single-vm-datasource-down # shut down single server
make docker-cluster-vm-datasource-up # start cluster
make docker-cluster-vm-datasource-down # shutdown cluster
```
2024-01-25 15:27:57 +01:00
2023-08-03 10:21:18 +02:00
## Alerts
See below a list of recommended alerting rules for various VictoriaMetrics components for running in production.
2024-06-25 11:15:29 +02:00
Some alerting rules thresholds are just recommendations and could require an adjustment.
The list of alerting rules is the following:
2023-08-03 10:21:18 +02:00
* [alerts-health.yml ](https://github.com/VictoriaMetrics/VictoriaMetrics/blob/master/deployment/docker/alerts-health.yml ):
alerting rules related to all VictoriaMetrics components for tracking their "health" state;
* [alerts.yml ](https://github.com/VictoriaMetrics/VictoriaMetrics/blob/master/deployment/docker/alerts.yml ):
2024-04-18 03:11:03 +02:00
alerting rules related to [single-server VictoriaMetrics ](https://docs.victoriametrics.com/single-server-victoriametrics/ ) installation;
2023-08-03 10:21:18 +02:00
* [alerts-cluster.yml ](https://github.com/VictoriaMetrics/VictoriaMetrics/blob/master/deployment/docker/alerts-cluster.yml ):
2024-04-18 02:54:20 +02:00
alerting rules related to [cluster version of VictoriaMetrics ](https://docs.victoriametrics.com/cluster-victoriametrics/ );
2023-08-03 10:21:18 +02:00
* [alerts-vmagent.yml ](https://github.com/VictoriaMetrics/VictoriaMetrics/blob/master/deployment/docker/alerts-vmagent.yml ):
2024-04-18 01:36:13 +02:00
alerting rules related to [vmagent ](https://docs.victoriametrics.com/vmagent/ ) component;
2023-08-03 10:21:18 +02:00
* [alerts-vmalert.yml ](https://github.com/VictoriaMetrics/VictoriaMetrics/blob/master/deployment/docker/alerts-vmalert.yml ):
2024-04-18 01:44:12 +02:00
alerting rules related to [vmalert ](https://docs.victoriametrics.com/vmalert/ ) component;
2024-06-25 11:15:29 +02:00
* [alerts-vmauth.yml ](https://github.com/VictoriaMetrics/VictoriaMetrics/blob/master/deployment/docker/alerts-vmauth.yml ):
alerting rules related to [vmauth ](https://docs.victoriametrics.com/vmauth/ ) component;
2023-08-03 10:21:18 +02:00
2024-04-18 03:11:03 +02:00
Please, also see [how to monitor ](https://docs.victoriametrics.com/single-server-victoriametrics/#monitoring )
2023-08-03 10:21:18 +02:00
VictoriaMetrics installations.
2023-09-01 10:45:43 +02:00
## VictoriaLogs server
2024-02-26 10:33:04 +01:00
To spin-up environment with VictoriaLogs run the following command:
```
make docker-victorialogs-up
```
2023-09-01 10:45:43 +02:00
2024-02-26 10:33:04 +01:00
VictoriaLogs will be accessible on the `--httpListenAddr=:9428` port.
In addition to VictoriaLogs server, the docker compose contains the following componetns:
* [fluentbit ](https://docs.fluentbit.io/manual ) service for collecting docker logs and sending them to VictoriaLogs;
* VictoriaMetrics single server to collect metrics from `VictoriaLogs` and `fluentbit` ;
* [grafana ](#grafana ) is configured with [VictoriaLogs datasource ](https://github.com/VictoriaMetrics/victorialogs-datasource ).
To access Grafana use link [http://localhost:3000 ](http://localhost:3000 ).
2023-09-01 10:45:43 +02:00
2024-02-26 10:33:04 +01:00
To access [VictoriaLogs UI ](https://docs.victoriametrics.com/victorialogs/querying/#web-ui )
use link [http://localhost:9428/select/vmui ](http://localhost:9428/select/vmui ).
2023-09-01 10:45:43 +02:00
2024-05-25 00:30:58 +02:00
Please, also see [how to monitor ](https://docs.victoriametrics.com/victorialogs/#monitoring )
2023-09-01 10:45:43 +02:00
VictoriaLogs installations.
2024-02-26 10:33:04 +01:00
To shutdown environment execute the following command:
```
make docker-victorialogs-down
2024-03-13 11:31:56 +01:00
```
Please see more examples on integration of VictoriaLogs with other log shippers below:
* [filebeat-docker ](https://github.com/VictoriaMetrics/VictoriaMetrics/tree/master/deployment/docker/victorialogs/filebeat-docker )
* [filebeat-syslog ](https://github.com/VictoriaMetrics/VictoriaMetrics/tree/master/deployment/docker/victorialogs/filebeat-syslog )
* [fluentbit-docker ](https://github.com/VictoriaMetrics/VictoriaMetrics/tree/master/deployment/docker/victorialogs/fluentbit-docker )
* [logstash ](https://github.com/VictoriaMetrics/VictoriaMetrics/tree/master/deployment/docker/victorialogs/logstash )
* [promtail ](https://github.com/VictoriaMetrics/VictoriaMetrics/tree/master/deployment/docker/victorialogs/promtail )
2024-04-18 01:36:13 +02:00
* [vector-docker ](https://github.com/VictoriaMetrics/VictoriaMetrics/tree/master/deployment/docker/victorialogs/vector-docker )