VictoriaMetrics/docs/enterprise.md
Zakhar Bessarab 490694bb01
docs/enterprise: add info about license flags (#5085)
* docs/enterprise: add info about license flags

Signed-off-by: Zakhar Bessarab <z.bessarab@victoriametrics.com>

* docs/enterprise: add more examples on how to run enterprise components

Signed-off-by: Zakhar Bessarab <z.bessarab@victoriametrics.com>

* docs/enterprise: address review feedback

Signed-off-by: Zakhar Bessarab <z.bessarab@victoriametrics.com>

* docs/enterprise: specify release version

Signed-off-by: Zakhar Bessarab <z.bessarab@victoriametrics.com>

* docs/enterprise: fix image tag in example

Signed-off-by: Zakhar Bessarab <z.bessarab@victoriametrics.com>

* docs/enterprise: add docker-compose example, fix secret name

Signed-off-by: Zakhar Bessarab <z.bessarab@victoriametrics.com>

---------

Signed-off-by: Zakhar Bessarab <z.bessarab@victoriametrics.com>
2023-10-05 13:05:57 +04:00

11 KiB

sort weight title menu aliases
99 99 VictoriaMetrics Enterprise
docs
parent weight
victoriametrics 99
/enterprise.html

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:

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
        See https://victoriametrics.com/products/enterprise/ for trial license
  -license-file string
        See https://victoriametrics.com/products/enterprise/ for trial license
  -license.forceOffline
        Force offline verification of license code. License is verified online by default. This flag runs license verification offline.

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:

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."