Signed-off-by: Zakhar Bessarab <z.bessarab@victoriametrics.com>
12 KiB
sort | weight | title | menu | aliases | |||||||
---|---|---|---|---|---|---|---|---|---|---|---|
99 | 99 | VictoriaMetrics Enterprise |
|
|
VictoriaMetrics Enterprise
VictoriaMetrics components are provided in two kinds - community edition and enterprise edition.
VictoriaMetrics community components are open source and are free to use - see the source code and the license.
The use of VictoriaMetrics enterprise components is permitted in the following cases:
-
Evaluation use in non-production setups. Please, request trial license here. Trial key will be sent to your email after filling the trial form. Download components from usual places - releases page and docker hub. Enterprise binaries and packages have
enterprise
suffix in their names. -
Production use if you have a valid enterprise contract or valid permit from VictoriaMetrics company. Contact us if you need such contract.
-
Managed VictoriaMetrics is built on top of enterprise binaries of VictoriaMetrics.
See running VictoriaMetrics enterprise for details on how to run VictoriaMetrics enterprise.
VictoriaMetrics enterprise features
VictoriaMetrics enterprise includes all the features of the community edition, plus the following additional features:
- Downsampling - this feature allows reducing storage costs and increasing performance for queries over historical data.
- Multiple retentions - this feature allows reducing storage costs by specifying different retentions to different datasets.
- Automatic discovery of vmstorage nodes -
this feature allows updating the list of
vmstorage
nodes atvminsert
andvmselect
without the need to restart these services. - Backup automation.
- Advanced per-tenant stats.
- Advanced auth and rate limiter.
- mTLS for cluster components.
- Kafka integration.
- Multitenant support in vmalert.
- Ability to read alerting and recording rules from object storage.
- Ability to filter incoming requests by IP at vmauth.
- Anomaly Detection Service.
On top of this, enterprise package of VictoriaMetrics includes the following important Enterprise features:
- First-class consulting and technical support provided by the core dev team.
- Monitoring of monitoring - this feature allows forecasting and preventing possible issues in VictoriaMetrics setups.
- Enterprise security compliance.
- Prioritizing of feature requests from Enterprise customers.
Contact us if you are interested in VictoriaMetrics enterprise.
Running VictoriaMetrics enterprise
There are several ways to run VictoriaMetrics enterprise:
Binary releases
Binary releases of VictoriaMetrics enterprise are available here.
Enterprise binaries and packages have enterprise
suffix in their names. For example, victoria-metrics-linux-amd64-v1.94.0-enterprise.tar.gz
.
In order to run binary release of VictoriaMetrics enterprise, download the release for your OS and unpack it.
Then run victoria-metrics-enterprise
binary from the unpacked directory.
Before v1.94.0 all the enterprise apps required -eula
command-line flag to be passed to them.
This flag acknowledges that your usage fits one of the cases listed above.
After v1.94.0 either -eula
flag or the following flags are used:
-license string
enterprise license key. This flag is available only in VictoriaMetrics enterprise. Documentation - https://docs.victoriametrics.com/enterprise.html, for more information, visit https://victoriametrics.com/products/enterprise/ . To request a trial license, go to https://victoriametrics.com/products/enterprise/trial/
-license.forceOffline
enables offline license verification. License keys issued must support this feature. Contact our support team for license keys with offline check support.
-licenseFile string
path to file with enterprise license key. This flag is available only in VictoriaMetrics enterprise. Documentation - https://docs.victoriametrics.com/enterprise.html, for more information, visit https://victoriametrics.com/products/enterprise/ . To request a trial license, go to https://victoriametrics.com/products/enterprise/trial/
For example, the following command runs victoria-metrics-enterprise
binary with the specified license:
wget https://github.com/VictoriaMetrics/VictoriaMetrics/releases/download/v1.94.0/victoria-metrics-linux-amd64-v1.94.0-enterprise.tar.gz
tar -xzf victoria-metrics-linux-amd64-v1.94.0-enterprise.tar.gz
./victoria-metrics-prod -license={VM_KEY_VALUE}
Alternatively, the license can be specified via -license-file
command-line flag:
./victoria-metrics-prod -license-file=/path/to/license/file
The license file must contain the license key.
Docker images
Docker images for VictoriaMetrics enterprise are available here.
Enterprise docker images have enterprise
suffix in their names. For example, victoriametrics/victoria-metrics:v1.94.0-enteprise
.
In order to run docker image of VictoriaMetrics enterprise component it is required to provide the license key command-line flag similar to the one described in the previous section.
For example, the following command runs VictoriaMetrics single-node docker image with the specified license:
docker run --name=victoria-metrics victoriametrics/victoria-metrics:v1.94.0-enteprise -license={VM_KEY_VALUE}
Alternatively, the license can be specified via -license-file
command-line flag:
docker run --name=victoria-metrics -v /vm-license:/vm-license victoriametrics/victoria-metrics:v1.94.0-enteprise -license-file=/vm-license
Example docker-compose configuration:
version: "3.5"
services:
victoriametrics:
container_name: victoriametrics
image: victoriametrics/victoria-metrics:v1.94.0
ports:
- 8428:8428
volumes:
- vmdata:/storage
- /vm-license:/vm-license
command:
- "--storageDataPath=/storage"
- "--license-file=/vm-license"
volumes:
vmdata: {}
Note, that example assumes that license file is located at /vm-license
path on the host.
Helm charts
Helm charts for VictoriaMetrics components are available here.
In order to run VictoriaMetrics enterprise helm chart it is required to provide the license key via license
value in values.yaml
file
and adjust the image tag to the enterprise one.
For example, the following values file for VictoriaMetrics single-node chart is used to provide key in plain-text:
server:
image:
tag: v1.94.0-enterprise
license:
key: {VM_KEY_VALUE}
In order to provide key via existing secret, the following values file is used:
server:
image:
tag: v1.94.0-enterprise
license:
secret:
name: vm-license
key: license
Example secret with license key:
apiVersion: v1
kind: Secret
metadata:
name: vm-license
type: Opaque
data:
license: {BASE64_ENCODED_LICENSE_KEY}
Or create secret via kubectl
:
kubectl create secret generic vm-license --from-literal=license={VM_KEY_VALUE}
Kubernetes operator
VictoriaMetrics enterprise components can be deployed via VictoriaMetrics operator.
In order to use enterprise components it is required to provide the license key via license
field and adjust the image tag to the enterprise one.
For example, the following custom resource for VictoriaMetrics single-node is used to provide key in plain-text:
apiVersion: operator.victoriametrics.com/v1beta1
kind: VMSingle
metadata:
name: example-vmsingle
spec:
retentionPeriod: "1"
license:
key: "VM_KEY_VALUE"
image:
tag: v1.94.0-enterprise
In order to provide key via existing secret, the following custom resource is used:
apiVersion: operator.victoriametrics.com/v1beta1
kind: VMSingle
metadata:
name: example-vmsingle
spec:
retentionPeriod: "1"
license:
keyRef:
name: vm-license
key: license
image:
tag: v1.94.0-enterprise
Example secret with license key:
apiVersion: v1
kind: Secret
metadata:
name: vm-license
type: Opaque
data:
license: {BASE64_ENCODED_LICENSE_KEY}
Or create secret via kubectl
:
kubectl create secret generic vm-license --from-literal=license={VM_KEY_VALUE}
See full list of CRD specifications here.
Monitoring license expiration
All victoria metrics enterprise components expose the following metrics:
vm_license_expires_at 1694304000
vm_license_expires_in_seconds 1592720
Please, refer to monitoring section of each component for details on how to scrape these metrics.
vm_license_expires_at
is the expiration date in unix timestamp format.
vm_license_expires_in_seconds
is the amount of seconds until the license expires.
Example alerts for vmalert: {% raw %}
groups:
- name: vm-license
# note the `job` label and update accordingly to your setup
rules:
- alert: LicenseExpiresInLessThan30Days
expr: vm_license_expires_in_seconds < 30 * 24 * 3600
labels:
severity: warning
annotations:
summary: "{{ $labels.job }} instance {{ $labels.instance }} license expires in less than 30 days"
description: "{{ $labels.instance }} of job {{ $labels.job }} license expires in {{ $value | humanizeDuration }}.
Please make sure to update the license before it expires."
- alert: LicenseExpiresInLessThan7Days
expr: vm_license_expires_in_seconds < 7 * 24 * 3600
labels:
severity: critical
annotations:
summary: "{{ $labels.job }} instance {{ $labels.instance }} license expires in less than 7 days"
description: "{{ $labels.instance }} of job {{ $labels.job }} license expires in {{ $value | humanizeDuration }}.
Please make sure to update the license before it expires."
{% endraw %}