В рамках данной инструкции мы рассмотрим установку и настройку автозапуска 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:
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
В нашем примере мы создадим автозапуск со следующими нюансами:
- Запуск сервиса будет выполняться от отдельного пользователя для обеспечения максимальной безопасности.
- Хранить данные будем в каталоге /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:
Готово. Можно перейти к дашборду и насладиться его видом.
Свежие комментарии