Установка Victoria Metrics Cluster из бинарников

1. Использованные материалы

2. Скачивание бинарников из локального репозитория на целевые хосты

  1. На целевых нодах будущего кластера Victoria Metrics выполните загрузку бинарников из локального NXRM:

    VER='v1.102.0'
    PLATFORM='linux-amd64'
    
    INTERNAL_REPO="https://nexus.example.org/repository/dud_evolut_raw"
    REPO_FOLDER="monitoring/victoriametrics"
    
    TMPDIR=$(mktemp -d) && cd $TMPDIR
    curl -LO ${INTERNAL_REPO}/${REPO_FOLDER}/victoria-metrics-${PLATFORM}-${VER}-cluster.tar.gz
    curl -LO ${INTERNAL_REPO}/${REPO_FOLDER}/victoria-metrics-${PLATFORM}-${VER}-cluster_checksums.txt
    curl -LO ${INTERNAL_REPO}/${REPO_FOLDER}/vmutils-${PLATFORM}-${VER}.tar.gz
    curl -LO ${INTERNAL_REPO}/${REPO_FOLDER}/vmutils-${PLATFORM}-${VER}_checksums.txt
  2. Распакуйте скачанные файлы-архивы:

    tar xvf victoria-metrics-${PLATFORM}-${VER}-cluster.tar.gz
    tar xvf vmutils-${PLATFORM}-${VER}.tar.gz
  3. Проверьте целостность всех полученных файлов:

    sha256sum -c \
      victoria-metrics-${PLATFORM}-${VER}-cluster_checksums.txt \
      vmutils-${PLATFORM}-${VER}_checksums.txt

    Ожидаемый вывод:

    victoria-metrics-linux-amd64-v1.102.0-cluster.tar.gz: OK
    vminsert-prod: OK
    vmselect-prod: OK
    vmstorage-prod: OK
    vmutils-linux-amd64-v1.102.0.tar.gz: OK
    vmagent-prod: OK
    vmalert-prod: OK
    vmalert-tool-prod: OK
    vmauth-prod: OK
    vmbackup-prod: OK
    vmrestore-prod: OK
    vmctl-prod: OK
  4. Разместите бинарники в каталоге /usr/local/bin:

    tar xvf victoria-metrics-${PLATFORM}-${VER}-cluster.tar.gz -C /usr/local/bin/
    tar xvf vmutils-${PLATFORM}-${VER}.tar.gz -C /usr/local/bin/
  5. Удалите временный каталог со скачанными файлами Victoria Metrics:

    rm -rf "${TMPDIR}"

3. Подготовка системы для запуска Victoria Metrics сервисов

  1. Создайте системную учётную запись victoriametrics, которая будет использоваться для запуска Victoria Metrics сервисов:

    useradd -r -M -s /usr/sbin/nologin victoriametrics
  2. Увеличьте лимиты количества открытых файлов?

4. Установка vmstorage

  1. На двух или более хостах, выделенных для размещения vmstorage, создайте каталог для хранения данных:

    VMSTORAGE_DIR='/srv/vmstorage'
    
    mkdir -p ${VMSTORAGE_DIR} && \
    chown -R victoriametrics:victoriametrics ${VMSTORAGE_DIR}
  2. Добавьте в systemd соответствующий service-модуль vmstorage.service:

    cat << EOF >/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 -retentionPeriod=90d \
      -storageDataPath=${VMSTORAGE_DIR}
    
    PrivateTmp=yes
    NoNewPrivileges=yes
    ProtectSystem=full
    
    [Install]
    WantedBy=multi-user.target
    EOF
  3. Включите и запустите модуль vmstorage.service:

    systemctl daemon-reload && systemctl enable --now vmstorage
  4. Проверьте работоспособность сервиса:

    curl http://<ip-address>:8482/-/healthy

    Ожидаемый вывод:

    VictoriaMetrics is Healthy.

5. Установка vminsert

  1. На тех же хостах с установленными vmstorage, или же отдельных, добавьте в systemd соответствующий service-модуль vminsert.service:

    VMSTORAGE_ADDRESSES='10.15.160.1,10.15.160.2'
    
    cat << EOF >/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=${VMSTORAGE_ADDRESSES}
    
    PrivateTmp=yes
    NoNewPrivileges=yes
    ProtectSystem=full
    
    [Install]
    WantedBy=multi-user.target
    EOF
  2. Включите и запустите модуль vminsert.service:

    systemctl daemon-reload && systemctl enable --now vminsert
  3. Проверьте работоспособность сервиса:

    curl http://<ip-address>:8480/-/healthy

    Ожидаемый вывод:

    VictoriaMetrics is Healthy.

6. Установка vmselect

  1. На двух или более хостах, выделенных для размещения vmstorage, создайте каталог для хранения данных:

    VMSELECT_DIR='/srv/vmselect-cache'
    
    mkdir -p ${VMSELECT_DIR} && \
    chown -R victoriametrics:victoriametrics ${VMSELECT_DIR}
  2. Добавьте в systemd соответствующий service-модуль vmselect.service:

    VMSTORAGE_ADDRESSES='10.15.160.1,10.15.160.2'
    
    cat << EOF >/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=${VMSTORAGE_ADDRESSES} \
      -cacheDataPath=${VMSELECT_DIR}
    
    PrivateTmp=yes
    NoNewPrivileges=yes
    
    ProtectSystem=full
    
    [Install]
    WantedBy=multi-user.target
    EOF
  3. Включите и запустите модуль vmselect.service:

    systemctl daemon-reload && systemctl enable --now vmselect
  4. Проверьте работоспособность сервиса:

    curl http://<ip-address>:8481/-/healthy

    Ожидаемый вывод:

    VictoriaMetrics is Healthy.