Используемые термины: VictoriaMetrics , Prometheus , Grafana .
В рамках данной инструкции мы рассмотрим установку и настройку автозапуска VictoriaMetrics, а также ee интеграцию с Prometheus и визуализацию в Grafana. Предполагается, что последние две уже установлены и настроены. Ссылки на инструкции, как это сделать, можно найти в конце данного руководства.
Подготовка системы
Установка и настройка VictoriaMetrics
Интеграция с Prometheus
Визуализация в Grafana
Читайте также
Убедимся в наличие некоторых пакетов:
В зависимости от дистрибутива Linux, установка будет немного различаться.
а) для систем на базе DEB (Astra Linux / Debian / Ubuntu):
apt install tar wget curl
б) для систем на базе RPM (РЕД ОС / Rocky Linux / CentOS):
yum install tar wget curl
По умолчанию, 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
Мы рассмотрим простой вариант установки без кластера. На официальной странице в 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
Как видим, их не мало. Мы же задействуем:
Переходим к запуску приложения.
В нашем примере мы создадим автозапуск со следующими нюансами:
Создаем служебного пользователя 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:
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
* где:
И перезапустим прометеус:
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.
Мы рассмотрим добавление VictoriaMetrics в качестве источника данных, а также отображение собственных метрик VictoriaMetrics в Grafana.
Заходим в веб-интерфейс графаны. Переходим в пункт Configuration — Data sources :
Добавляем новый источник данных:
Выбираем Prometheus как тип источника:
Указываем имя источника и прописываем URL адрес, по которому доступен сервис VictoriaMetrics:
Сохраняем настройки.
Теперь можно использовать сохраненный источник, как будто, это источник от Prometheus.
Собственные метрики 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 .
Zulip — программное обеспечение для реализации корпоративного чата. Разработан в 2012 году, в 2014 был…
Zookeeper — cервис-координатор, который позволяет обеспечить контроль синхронизации данных. Разработан на Java компанией Apache Software…
Zimbra — программное обеспечение для реализации почтового сервиса или, если сказать точнее, автоматизации совместной деятельности…
Zabbix — бесплатная система мониторинга. Позволяет отслеживать состояние сетевых узлов, компьютеров и серверов. Возможности: Поддержка…
YouTube — компания-владелец одноименного портала для просмотра и хранения видео. Чтобы пользоваться данным порталом достаточно…
Yota — провайдер, предоставляющий доступ к сети Интернет по беспроводной связи. Впервые, сервис начал работать…