Categories: Шпаргалки

Установка и использование VictoriaMetrics на Linux

Используемые термины: VictoriaMetrics , Prometheus , Grafana .

В рамках данной инструкции мы рассмотрим установку и настройку автозапуска VictoriaMetrics, а также ee интеграцию с Prometheus и визуализацию в Grafana. Предполагается, что последние две уже установлены и настроены. Ссылки на инструкции, как это сделать, можно найти в конце данного руководства.

Предварительная настройка

1. Установка пакетов

Убедимся в наличие некоторых пакетов:

  • tar — для распаковки архива с бинарником.
  • wget — загрузка архива.
  • curl — выполнение запросов для тестирования системы.

В зависимости от дистрибутива Linux, установка будет немного различаться.

а) для систем на базе DEB (Astra Linux / Debian / Ubuntu):

apt install tar wget curl

б) для систем на базе RPM (РЕД ОС / Rocky Linux / CentOS):

yum install tar wget curl

2. Брандмауэр

По умолчанию, VictoriaMetrics слушает запросы на порту 8428. Чтобы взаимодействовать с ней по сети, нам нужно открыть соответствующий TCP-порт. Наши действия будут отличать в зависимости от используемой утилиты управления брандмауэром.

а) Iptables (как правило, для систем на базе DEB):

iptables -I INPUT -p tcp —dport 8428 -j ACCEPT

Для сохранения правла используем iptables-persistent:

apt install iptables-persistent

netfilter-persistent save

б) Firewalld (как правило, для систем на базе RPM):

firewall-cmd —permanent —add-port=8428/tcp

firewall-cmd —reload

Установка и запуск VictoriaMetrics

Мы рассмотрим простой вариант установки без кластера. На официальной странице в GitHub можно найти разные варианты развертывания VictoriaMetrics — в докере, сборка своих пакетов установки, получение бинарника из исходников golang. Мы же скачаем уже готовый бинарник и настроим его автозапуск в качестве юнита systemd.

Загрузка бинарника и изучение параметром его запуска

Переходим на страницу с последним релизом приложения. Копируем ссылку на бинарник для нашей операционной системы (в нашем случае, Linux):

На нашем сервере, загружаем архив, ссылку на который мы скопировали:

wget https://github.com/VictoriaMetrics/VictoriaMetrics/releases/download/v1.85.0/victoria-metrics-linux-amd64-v1.85.0.tar.gz

Распакуем скачанный архив:

tar zxf victoria-metrics-linux-amd64-*.tar.gz -C /usr/local/bin/

Можно запустить команду для изучения всех параметров запуска приложения:

victoria-metrics-prod -help | less

Как видим, их не мало. Мы же задействуем:

  • storageDataPath — путь до каталога хранения данных.
  • retentionPeriod — период в месяцах, после которого данные будут удаляться из базы.

Переходим к запуску приложения.

Создание и настройка юнита systemd

В нашем примере мы создадим автозапуск со следующими нюансами:

  1. Запуск сервиса будет выполняться от отдельного пользователя для обеспечения максимальной безопасности.
  2. Хранить данные будем в каталоге /var/lib/victoriametrics.

Создаем служебного пользователя victoriametrics :

useradd -r -c ‘VictoriaMetrics TSDB Service’ victoriametrics

Также создаем каталоги для хранения данных и идентификатора процесса:

mkdir -p /var/lib/victoriametrics /run/victoriametrics

Зададим в качестве владельца для созданных каталогов нашего нового пользователя:

chown victoriametrics:victoriametrics /var/lib/victoriametrics /run/victoriametrics

Теперь создадим файл юнита:

vi /etc/systemd/system/victoriametrics.service

[Unit]
Description=VictoriaMetrics
After=network.target

[Service]
Type=simple
User=victoriametrics
PIDFile=/run/victoriametrics/victoriametrics.pid
ExecStart=/usr/local/bin/victoria-metrics-prod -storageDataPath /var/lib/victoriametrics -retentionPeriod 12
ExecStop=/bin/kill -s SIGTERM $MAINPID
StartLimitBurst=5
StartLimitInterval=0
Restart=on-failure
RestartSec=1

[Install]
WantedBy=multi-user.target

* в данном примере мы, как и говорили выше, будем хранить файлы в каталоге /var/lib/victoriametrics . Срок хранения данных — 1 год.

Перечитываем конфигурацию systemd:

systemctl daemon-reload

Разрешаем запуск юнита и стартуем его:

systemctl enable victoriametrics —now

Проверим состояние сервиса:

systemctl status victoriametrics

По умолчанию VictoriaMetrics слушает на порту 8428. Мы можем сделать запрос с помощью curl:

curl 127.0.0.1:8428

Мы должны увидеть страницу с полезными ссылками:

<h2>Single-node VictoriaMetrics</h2></br>See docs at <a href=’https://docs.victoriametrics.com/’>https://docs.victoriametrics.com/</a></br>Useful endpoints:</br><a href=»vmui»>vmui</a> — Web UI<br/><a href=»targets»>targets</a> — status for discovered active targets<br/><a href=»service-discovery»>service-discovery</a> — labels before and after relabeling for discovered targets<br/><a href=»metric-relabel-debug»>metric-relabel-debug</a> — debug metric relabeling<br/><a href=»api/v1/targets»>api/v1/targets</a> — advanced information about discovered targets in JSON format<br/><a href=»config»>config</a> — -promscrape.config contents<br/><a href=»metrics»>metrics</a> — available service metrics<br/><a href=»flags»>flags</a> — command-line flags<br/><a href=»api/v1/status/tsdb»>api/v1/status/tsdb</a> — tsdb status page<br/><a href=»api/v1/status/top_queries»>api/v1/status/top_queries</a> — top queries<br/><a href=»api/v1/status/active_queries»>api/v1/status/active_queries</a> — active queries<br/>

VictoriaMetrics установлен и работает.

Хранение метрик Prometheus в VictoriaMetrics

Прежде чем начать настройку, с сервера Prometheus проверим доступность VictoriaMetrics:

curl 192.168.0.15:8428

* где 192.168.0.15 — адрес сервера VictoriaMetrics.

Мы должны получить страницу со ссылками, которую видели при проверке сервиса после его установки.

Теперь откроем конфигурационный файл Prometheus:

vi /etc/prometheus/prometheus.yml

Добавляем в global:

global:
external_labels:
server_name: prometheus01

* опция external_labels позволяет навесить тег, с помощью которого мы будем понимать, что конкретные метрики пришли с конкретного сервера Prometheus.

И добавляем опцию:

remote_write:
— url: http://192.168.0.15:8428/api/v1/write
queue_config:
max_samples_per_send: 10000
capacity: 20000
max_shards: 30

* где:

  • url — адрес сервера VictoriaMetrics, куда будут дублироваться метрики с их значениями.
  • max_samples_per_send — максимальное количество метрик, который могут быть отправлены за один раз.
  • capacity — определяет, сколько семплов ставится в очередь в памяти на каждый сегмент перед блокировкой чтения из WAL. После того, как WAL заблокирован, сэмплы не могут быть добавлены ни к каким осколкам, и вся пропускная способность прекратится.
  • max_shards — максимальное количество сегментов, которые Prometheus будет использовать для каждой удаленной очереди записи.

И перезапустим прометеус:

systemctl restart prometheus

При желании, мы можем зайти на веб-интерфейс VictoriaMetrics по адресу http://192.168.0.15:8428/vmui/ , где 192.168.0.15 — адрес нашего сервера. В поле Query 1 можно ввести любой запрос PromQL, например:

node_memory_MemTotal_bytes{server_name=»prometheus01″}

* где server_name=»prometheus01″ — тег и его значение, которые мы указали в настройках prometheus.

Данный запрос должен нам вернуть значения. Это значит, что данные попадают из Prometheus в VictoriaMetrics.

Настройка Grafana

Мы рассмотрим добавление VictoriaMetrics в качестве источника данных, а также отображение собственных метрик VictoriaMetrics в Grafana.

Добавление датасорса

Заходим в веб-интерфейс графаны. Переходим в пункт Configuration Data sources :

Добавляем новый источник данных:

Выбираем Prometheus как тип источника:

Указываем имя источника и прописываем URL адрес, по которому доступен сервис VictoriaMetrics:

Сохраняем настройки.

Теперь можно использовать сохраненный источник, как будто, это источник от Prometheus.

Визуализация метрик самой VictoriaMetrics

Собственные метрики VictoriaMetrics доступны по адресу http://<адрес victoriametrics>:8428/metrics . Нам нужно завести в качестве exportera этот адрес на Prometheus, который передает данные обратно в VictoriaMetrics. После можно будет визуализировать информацию, используя добавленный выше датасорс.

Открываем конфигурационный файл Prometheus:

vi /etc/prometheus/prometheus.yml

Добавим таргет:

— job_name: ‘node_exporter_clients’

static_configs:
— targets:

— 192.168.0.15:8428

* в данном примере мы добавили еще один target с адресом сервера VictoriaMetrics ( 192.168.0.15:8428 ). Обратите внимание, что в моем случае job_name называется node_exporter_clients . В вашем случае это может быть другое название, или, вовсе, можно добавить отдельный job_name .

Перезапустим prometheus:

systemctl restart prometheus

Теперь можно настроить Grafana. На официальном сайте мы можем прочитать о VictoriaMetrics dashboard, а также получить идентификатор для его установки.

В графане переходим в Dashboards Import :

Вводим идентификатор дашборда для VictoriaMetrics. Это 10229 :

На следующем шаге можно просто нажать Import :

Готово. Можно перейти к дашборду и насладиться его видом.

Читайте также

Другие инструкции, которые могут помочь в изучении VictoriaMetrics:

1. Установка Prometheus + Alertmanager + node_exporter на Linux .

2. Установка и настройка сервера Grafana на Linux .

3. Создание графиков в Grafana на основе данных из Prometheus .

admin

Recent Posts

Что такое Zulip

Zulip — программное обеспечение для реализации корпоративного чата. Разработан в 2012 году, в 2014 был…

2 месяца ago

Что такое Zookeeper

Zookeeper — cервис-координатор, который позволяет обеспечить контроль синхронизации данных. Разработан на Java компанией Apache Software…

2 месяца ago

Что такое Zimbra

Zimbra — программное обеспечение для реализации почтового сервиса или, если сказать точнее, автоматизации совместной деятельности…

2 месяца ago

Что такое Zabbix

Zabbix — бесплатная система мониторинга. Позволяет отслеживать состояние сетевых узлов, компьютеров и серверов. Возможности: Поддержка…

2 месяца ago

Что такое YouTube

YouTube — компания-владелец одноименного портала для просмотра и хранения видео. Чтобы пользоваться данным порталом достаточно…

2 месяца ago

Что такое yota

Yota — провайдер, предоставляющий доступ к сети Интернет по беспроводной связи. Впервые, сервис начал работать…

2 месяца ago