VER='v1.110.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
Установка Victoria Metrics Cluster из бинарников
1. Использованные материалы
2. Скачивание бинарников из локального репозитория на целевые хосты
-
На целевых нодах будущего кластера Victoria Metrics выполните загрузку бинарников из локального NXRM:
-
Распакуйте скачанные файлы-архивы:
tar xvf victoria-metrics-${PLATFORM}-${VER}-cluster.tar.gz tar xvf vmutils-${PLATFORM}-${VER}.tar.gz
-
Проверьте целостность всех полученных файлов:
sha256sum -c \ victoria-metrics-${PLATFORM}-${VER}-cluster_checksums.txt \ vmutils-${PLATFORM}-${VER}_checksums.txt
Ожидаемый вывод:
victoria-metrics-linux-amd64-v1.106.0-cluster.tar.gz: OK vminsert-prod: OK vmselect-prod: OK vmstorage-prod: OK vmutils-linux-amd64-v1.106.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
-
Разместите бинарники в каталоге
/usr/local/bin
:rm -f *${VER}* install vm* /usr/local/bin/
-
Удалите временный каталог со скачанными файлами Victoria Metrics:
rm -rf "${TMPDIR}"
3. Установка vmstorage
-
На двух или более хостах, выделенных для размещения vmstorage, создайте каталог для хранения данных:
VMSTORAGE_DIR='/srv/vmstorage' groupadd -r victoriametrics useradd -r -M -s /sbin/nologin -g victoriametrics -d ${VMSTORAGE_DIR} vmstorage mkdir -p ${VMSTORAGE_DIR} && \ chown -R vmstorage:victoriametrics ${VMSTORAGE_DIR}
-
Добавьте в systemd соответствующий service-модуль
vmstorage.service
:cat << EOF >/etc/systemd/system/vmstorage.service [Unit] Description=vmstorage - stores the raw data and returns the queried data on the given time range for the given label filters # https://docs.victoriametrics.com/Cluster-VictoriaMetrics.html After=network.target [Service] Type=simple User=vmstorage Group=victoriametrics StartLimitBurst=5 StartLimitInterval=0 Restart=on-failure RestartSec=1 EnvironmentFile=/etc/sysconfig/vmstorage ExecStart=/usr/local/bin/vmstorage-prod -envflag.enable ExecStop=/bin/kill -s SIGTERM \$MAINPID ExecReload=/bin/kill -s HUP \$MAINPID # See docs https://docs.victoriametrics.com/Single-server-VictoriaMetrics.html#tuning LimitNOFILE=1048576 LimitNPROC=1048576 LimitCORE=infinity WorkingDirectory=${VMSTORAGE_DIR} ReadWritePaths=${VMSTORAGE_DIR} PrivateTmp=yes ProtectHome=yes NoNewPrivileges=yes ProtectSystem=strict ProtectControlGroups=true ProtectKernelModules=true ProtectKernelTunables=yes [Install] WantedBy=multi-user.target EOF systemctl daemon-reload cat << EOF > /etc/sysconfig/vmstorage retentionPeriod=90d storageDataPath=${VMSTORAGE_DIR} EOF systemctl enable --now vmstorage
-
Проверьте работоспособность сервиса:
curl http://<ip-address>:8482/-/healthy
Ожидаемый вывод:
VictoriaMetrics is Healthy.
4. Установка vminsert
-
На тех же хостах с установленными vmstorage, или же отдельных, добавьте в systemd соответствующий service-модуль
vminsert.service
:VMSTORAGE_ADDRESSES='10.15.160.1,10.15.160.2,10.15.160.3,10.15.160.4,10.15.160.5' groupadd -r victoriametrics useradd -r -M -s sbin/nologin -g victoriametrics vminsert cat << EOF >/etc/systemd/system/vminsert.service [Unit] Description=vminsert - accepts the ingested data and spreads it among vmstorage nodes according to consistent hashing over metric name and all its labels # https://docs.victoriametrics.com/Cluster-VictoriaMetrics.html After=network.target [Service] Type=simple User=vminsert Group=victoriametrics StartLimitBurst=5 StartLimitInterval=0 Restart=on-failure RestartSec=1 EnvironmentFile=/etc/sysconfig/vminsert ExecStart=/usr/local/bin/vminsert-prod -envflag.enable ExecStop=/bin/kill -s SIGTERM \$MAINPID ExecReload=/bin/kill -s HUP \$MAINPID # See docs https://docs.victoriametrics.com/Single-server-VictoriaMetrics.html#tuning LimitNOFILE=1048576 LimitNPROC=1048576 LimitCORE=infinity PrivateTmp=yes ProtectHome=yes NoNewPrivileges=yes ProtectSystem=strict ProtectControlGroups=true ProtectKernelModules=true ProtectKernelTunables=yes [Install] WantedBy=multi-user.target EOF systemctl daemon-reload cat << EOF > /etc/sysconfig/vminsert storageNode=${VMSTORAGE_ADDRESSES} EOF systemctl enable --now vminsert
-
Проверьте работоспособность сервиса:
curl http://<ip-address>:8480/-/healthy
Ожидаемый вывод:
VictoriaMetrics is Healthy.
5. Установка vmselect
-
На двух или более хостах, выделенных для размещения vmstorage, создайте каталог для хранения данных:
VMSELECT_DIR='/srv/vmselect' VMSTORAGE_ADDRESSES='10.15.160.1,10.15.160.2,10.15.160.3,10.15.160.4,10.15.160.5' groupadd -r victoriametrics useradd -r -M -s /usr/sbin/nologin -g victoriametrics -d ${VMSELECT_DIR} vmselect mkdir -p ${VMSELECT_DIR} && \ chown -R vmselect:victoriametrics ${VMSELECT_DIR} cat << EOF >/etc/systemd/system/vmselect.service [Unit] Description=vmselect - performs incoming queries by fetching the needed data from all the configured vmstorage nodes # https://docs.victoriametrics.com/Cluster-VictoriaMetrics.html After=network.target [Service] Type=simple User=vmselect Group=victoriametrics StartLimitBurst=5 StartLimitInterval=0 Restart=on-failure RestartSec=1 EnvironmentFile=/etc/sysconfig/vmselect ExecStart=/usr/local/bin/vmselect-prod -envflag.enable ExecStop=/bin/kill -s SIGTERM \$MAINPID ExecReload=/bin/kill -s HUP \$MAINPID # See docs https://docs.victoriametrics.com/Single-server-VictoriaMetrics.html#tuning LimitNOFILE=1048576 LimitNPROC=1048576 LimitCORE=infinity WorkingDirectory=${VMSELECT_DIR} ReadWritePaths=${VMSELECT_DIR} PrivateTmp=yes ProtectHome=yes NoNewPrivileges=yes ProtectSystem=strict ProtectControlGroups=true ProtectKernelModules=true ProtectKernelTunables=yes [Install] WantedBy=multi-user.target EOF systemctl daemon-reload cat << EOF > /etc/sysconfig/vmselect storageNode=${VMSTORAGE_ADDRESSES} EOF systemctl enable --now vmselect
-
Проверьте работоспособность сервиса:
curl http://<ip-address>:8481/-/healthy
Ожидаемый вывод:
VictoriaMetrics is Healthy.