---
title: 'VMAgent'
sidebar_label: 'VMAgent'
description: 'Как настроить VMAgent для получения метрик в свою инфраструктуру'
sidebar_position: 2
---

import CopyIcon from '@selectel/docux/icons/copy'
import Formbricks from '@theme/MDXComponents/Formbricks';
import MoreVerticalIcon from '@selectel/docux/icons/more-vertical';

# VMAgent

[VMAgent](https://docs.victoriametrics.com/victoriametrics/vmagent/) — агент, который позволяет настроить процесс сбора и обработки метрик.

Перед началом работы [настройте VMAgent](#configure-vmagent).

## Настроить VMAgent \{#configure-vmagent}

Вы можете настроить агент для получения метрик в свою инфраструктуру.

1. [Добавьте сервисного пользователя](#add-service-user).
2. [Настройте агент для получения метрик](#set-up-agent).

### 1. Добавить сервисного пользователя \{#add-service-user}

[Добавьте сервисного пользователя](/access-control/manage/add-user.mdx#add-service-user) с разрешением в области доступа **Проекты** и ролью:

* [`metrics.admin`](/metrics/manage-access.mdx#metrics-admin);
* [`member`](/access-control/role-reference.mdx#member);
* или [`reader`](/access-control/role-reference.mdx#reader).

Добавлять пользователей может [Владелец аккаунта](/access-control/user-types.mdx#account-owner) или пользователи с ролью [`iam.admin`](/access-control/role-reference.mdx#iam-admin).

### 2. Настроить агент для получения метрик \{#set-up-agent}

1. Откройте CLI.

2. Создайте файл конфигурации `vmagent.yaml`:

   ```bash
   nano /etc/vmagent/vmagent.yaml
   ```

3. В файле конфигурации `vmagent.yaml` заполните блок `scrape_configs`:

   ```yaml
   scrape_configs:
     - job_name: test_scrape
       scrape_interval: 1m
       metrics_path: /projects/<project_id>/namespaces/<namespace>/prometheus/metrics
       static_configs:
         - targets:
             - <base_url>
       basic_auth:
         username: <user_id>
         password: <password>
   ```

   Укажите:

   * `<project_id>` — ID проекта. Можно скопировать в [панели управления](https://my.selectel.ru/vpc/): в верхнем меню нажмите **Продукты** и выберите любой продукт → откройте меню проектов → в строке нужного проекта нажмите <CopyIcon />;
   * `<namespace>` — имя выбранного пространства имен, например `compute`.
     Можно посмотреть в инструкции [Справочник метрик](/metrics/metrics-references.mdx);
   * `<base_url>` — URL для обращения к API сервиса Метрики.
     Если вы настраиваете агент для сбора метрик [выделенного сервера](/dedicated/), используйте URL пула облачных серверов, который соответствует пулу, где расположен ваш выделенный сервер.
     Список URL можно посмотреть в подразделе [Метрики](/api/urls/#metrics) инструкции [Список URL](/api/urls/);
   * `<user_id>` — ID пользователя, которого вы [добавили на этапе 1](#add-service-user);
   * `<password>` — пароль пользователя, которого вы [добавили на этапе 1](#add-service-user).

4. Опционально: вы можете настроить сбор метрик из нескольких пулов или проектов.
   Чтобы добавить новый пул или проект, повторите шаг 3.

5. Опционально: добавьте отправку метрик во внешние системы хранения или обработки, например в VictoriaMetrics.
   Для этого добавьте и заполните раздел [`remote_write`](https://prometheus.io/docs/prometheus/latest/configuration/configuration/#remote_write) в файл конфигурации `vmagent.yaml`.

6. Выйдите из текстового редактора `nano` с сохранением изменений: нажмите **Ctrl+Х**, а затем **Y+Enter**.

7. Запустите VMAgent:

   ```bash
   docker run \
     --name vmagent \
     --rm \
     -v ${PWD}/vmagent.yaml:/etc/vmagent/vmagent.yaml:ro  \
     -p 8429:8429 \
     victoriametrics/vmagent:latest \
     --promscrape.config=/etc/vmagent/vmagent.yaml \
     --remoteWrite.url=http:/<storage_path>/api/v1/write
   ```

   Укажите `<storage_path>` — адрес вашего пользовательского хранилища метрик.

8. Опционально: убедитесь, что метрики собираются. Для этого проверьте подключение агента к сервису Метрики:

   ```bash
   curl localhost:8429/targets
   ```

   В выводе команды должен отобразиться статус `up`. Пример вывода:

   ```bash
   job=test_scrape (1/1 up)
   ```

<Formbricks />
