Имя хоста и теги хоста

Обновлено 15.10.2026
Как агент ProtoOBP определяет имя хоста, под которым отображаются его метрики, трейсы и логи, как задать это имя явно и как добавить к данным хоста собственные теги.

На этой странице:

Зачем имя хоста

Имя хоста — метка host у всех данных, которые отправляет агент: системных метрик, метрик интеграций, трейсов и логов. По нему хост отображается в разделе Инфраструктура > Хосты, по нему связываются метрики хоста и трейсы приложений, работающих на нём, и по нему строятся алерты на хосты.

Поэтому имя должно быть:

  • уникальным — два хоста с одинаковым именем сливаются в интерфейсе в один;
  • стабильным — после смены имени хост выглядит как новый, а история остаётся под старым именем.

Как агент определяет имя

Агент перебирает источники по порядку:

№ИсточникПоведение
1Параметр hostnameЕсли задан и корректен — используется, остальные источники не проверяются
2Файл из параметра hostname_fileЕсли задан, используется содержимое файла (пробелы и переводы строк по краям отбрасываются); дальше не проверяется
3Облачные сервисы метаданныхТолько на некоторых облачных платформах
4Полное имя (FQDN) ОСТолько при hostname_fqdn: true
5Контейнерная средаАгент в контейнере берёт имя ноды у Docker или kubelet — см. ниже; заменяет результат шага 4
6Короткое имя ОС (hostname)Если на предыдущих шагах имя не найдено

Если ни один источник не дал корректного имени, агент не запускается и пишет в журнал unable to reliably determine the host name (в ранних версиях — Error while getting hostname). Задайте имя явно — см. Как задать имя явно.

Как задать имя явно

Параметры

ПараметрПеременная окруженияНазначение
hostnamePOBP_HOSTNAMEИмя хоста. Имеет наивысший приоритет
hostname_filePOBP_HOSTNAME_FILEПуть к файлу с именем; используется, если hostname не задан
hostname_fqdnPOBP_HOSTNAME_FQDNИспользовать полное имя ОС (host.example.local) вместо короткого (host). По умолчанию false
hostname_trust_uts_namespacePOBP_HOSTNAME_TRUST_UTS_NAMESPACEДоверять имени, полученному внутри изолированного UTS-пространства (контейнер, systemd-nspawn). Только Linux, по умолчанию false

Явное имя в protoobp.yaml:

hostname: db-prod-01.corp.local

Если в инфраструктуре есть хосты с одинаковыми короткими именами в разных доменах (db01.msk.corp и db01.spb.corp), включите hostname_fqdn: true, чтобы имена не совпали.

hostname_file удобен при массовой установке, когда имя хоста заранее записывается в файл системой развёртывания:

hostname_file: /etc/protoobp-agent/hostname

Требования к имени

  • соответствует RFC 1123: латинские буквы, цифры, дефис и точка; не начинается и не заканчивается дефисом;
  • не длиннее 255 символов;
  • не localhost, localhost.localdomain, localhost6.localdomain6, ip6-localhost.

Имя, не прошедшее проверку, отбрасывается, и агент переходит к следующему источнику.

Имя хоста в Docker и Kubernetes

Внутри контейнера системное имя — это идентификатор контейнера, а не хоста, поэтому агент в контейнере определяет имя иначе:

  • Docker — агент запрашивает имя хоста у Docker. Для этого агенту нужен доступ к сокету Docker (/var/run/docker.sock), как в примерах запуска в Docker.
  • Kubernetes — агент на ноде берёт имя ноды у kubelet, поэтому хост в интерфейсе совпадает с именем ноды кластера.

Если имя не определяется (например, сокет Docker не смонтирован), задайте его переменной окружения контейнера. В Kubernetes удобно подставить имя ноды:

protoobp:
  env:
    - name: POBP_HOSTNAME
      valueFrom:
        fieldRef:
          fieldPath: spec.nodeName

Смена имени хоста

После смены имени (параметром или переименованием сервера) и перезапуска агента:

  • данные начинают поступать под новым именем, хост с новым именем появляется в разделе Хосты;
  • история метрик и логов остаётся под старым именем;
  • старый хост перестаёт обновляться;
  • алерты, дашборды и фильтры, в которых указано старое имя host, нужно обновить.

Проверка

Команда hostname показывает имя, которое агент использует:

sudo protoobp-agent hostname

Источник, из которого получено имя, виден в выводе protoobp-agent status (раздел Hostnames, поле hostname provider). Команды для других платформ — на странице Команды и проверка работы.

Теги хоста

Теги хоста — пары ключ:значение, которые агент добавляет к метрикам и логам своего хоста: команда (team:billing), площадка (dc:msk-1), окружение (env:prod). По ним строятся фильтры, группировки на дашбордах и условия алертов. В хранилище метрик тег становится меткой: team:billing → team="billing".

Включение

Теги задаются двумя параметрами, значения которых объединяются:

ПараметрПеременная окруженияНазначение
tagsPOBP_TAGSОсновной список тегов
extra_tagsPOBP_EXTRA_TAGSДополнительные теги — удобно, когда tags задан в файле, а часть тегов добавляется переменной окружения при развёртывании
# protoobp.yaml
tags:
  - team:billing
  - dc:msk-1
expected_tags_duration: 87600h        # теги к метрикам
logs_config:
  expected_tags_duration: 87600h      # теги к логам

Через переменные окружения (Docker, Kubernetes):

POBP_TAGS="team:billing dc:msk-1"
POBP_EXPECTED_TAGS_DURATION=87600h
POBP_LOGS_CONFIG_EXPECTED_TAGS_DURATION=87600h

В Helm-чарте агента теги задаются параметром protoobp.tags, а сроки — переменными в protoobp.env:

protoobp:
  tags:
    - team:billing
  env:
    - name: POBP_EXPECTED_TAGS_DURATION
      value: "87600h"
    - name: POBP_LOGS_CONFIG_EXPECTED_TAGS_DURATION
      value: "87600h"

После изменения перезапустите агента.

Параметр env (переменная POBP_ENV) задаёт окружение по умолчанию для трейсов, если трейсер не передал своё. Теги отдельных трейсов задаются в настройках трейсера — см. Конвенция наименования тегов.

Что учесть

  • Новые временные ряды. Набор меток метрики меняется, поэтому после включения тегов у каждой метрики хоста начинается новый временной ряд, а старый перестаёт обновляться. На графиках за период включения возможен «разрыв» или удвоение линии, если запрос не агрегирует по меткам. То же происходит при каждом изменении или удалении тега.
  • Метки у алертов. Теги хоста попадают и в метки сработавших алертов по метрикам хоста — их можно использовать в маршрутизации уведомлений.
  • Кардинальность. Используйте теги с небольшим числом значений (команда, площадка, окружение). Уникальные значения (идентификаторы, время) многократно увеличивают число рядов в хранилище.
  • Имена ключей. Используйте строчные латинские буквы, цифры и _; ключи не должны совпадать с метками, которые агент добавляет сам (host, service, env, kube_*, container_*).
  • Теги контейнеров и интеграций. Теги для отдельного контейнера задаются лейблом com.protoobp.ad.tags (см. Автообнаружение), для отдельной интеграции — параметром tags в её instances. Для них expected_tags_duration не нужен.
  • host_aliases. Параметр принимается агентом, но бэкенд ProtoOBP псевдонимы хостов не использует.

Проверка тегов

  1. Убедитесь, что агент видит параметры: sudo protoobp-agent config | grep -E -A3 '^(tags|extra_tags|expected_tags_duration):'.
  2. Через 2–3 минуты после перезапуска найдите метрику хоста с тегом в браузере метрик, например system_load_1{host="<имя хоста>", team="billing"}.
  3. Для логов: в Logs Explorer теги хоста видны в поле pobptags записей с этого хоста.