Параметри конфігурації OBI Network Metrics

Дізнайтеся про параметри конфігурації, доступні для мережевих метрик OBI

Мережеві метрики налаштовуються в підрозділі network файлу YAML-конфігурації OBI або за допомогою набору змінних середовища з префіксом OTEL_EBPF_NETWORK_.

Приклад YAML:

network:
  enable: true
  cidrs:
    - 10.10.0.0/24
    - 10.0.0.0/8
    - 10.30.0.0/16
attributes:
  kubernetes:
    enable: true
  select:
    obi_network_flow_bytes:
      include:
        - k8s.src.owner.name
        - k8s.src.namespace
        - k8s.dst.owner.name
        - k8s.dst.namespace
        - src.cidr
        - dst.cidr
otel_metrics_export:
  endpoint: http://localhost:4318

На додачу до розділу network YAML, конфігурація OBI вимагає наявності точки доступу для експорту мережевих метрик (в попередньому прикладі, otel_metrics_export, але вона також приймає точки доступу Prometheus).

Властивості конфігурації мережевих метрик

Щоб увімкнути мережеві метрики, додайте одну з наступних опцій features до розділу першого рівня metrics section:

  • network увімкне метрику obi_network_flow_bytes: кількість байтів між двома кінцевими точками вашого кластера
  • network_inter_zone увімкне метрику obi_network_inter_zone_bytes: кількість байтів між різними зонами доступності у вашому хмарному кластері
YAMLЗмінна середовищаТипСтандартно
sourceOTEL_EBPF_NETWORK_SOURCEstringsocket_filter

Вказує на функцію ядра Linux, яка використовується для отримання мережевих подій, про які повідомляє OBI.

Доступні параметри: tc та socket_filter.

Коли tc використовується як джерело подій, OBI використовує фільтри входу та виходу Linux Traffic Control для захоплення мережевих подій у режимі прямої дії. Цей режим джерела подій припускає, що жодні інші програми eBPF не підключаються до того ж інтерфейсу Linux Traffic Control у режимі прямої дії. Наприклад, Cilium Kubernetes CNI використовує той же підхід, тому, якщо у вас встановлено Cilium CNI у вашому кластері Kubernetes, налаштуйте OBI для захоплення мережевих подій за допомогою режиму socket_filter.

Коли socket_filter використовується як джерело подій, OBI встановлює фільтр сокетів eBPF Linux для захоплення мережевих подій. Цей режим не конфліктує з Cilium CNI або іншими програмами eBPF, які використовують фільтри виходу та входу Linux Traffic Control.

YAMLЗмінна середовищаТипСтандартно
cidrsOTEL_EBPF_NETWORK_CIDRS[]string(empty)

Перелік CIDR, який буде встановлено як атрибути src.cidr та dst.cidr з відповідним записом, що відповідає src.address та dst.address.

Атрибут як функція IP-адрес джерела та призначення. Якщо IP-адреса не відповідає жодній адресі тут, атрибути не будуть встановлені. Якщо IP-адреса відповідає кільком визначенням CIDR, потік буде прикрашений найвужчим CIDR. В результаті ви можете безпечно додати запис 0.0.0.0/0, щоб згрупувати весь трафік, який не відповідає жодному з інших CIDR.

Якщо ви встановите цю властивість через змінну середовища, кожен запис повинен бути розділений комою, наприклад:

OTEL_EBPF_NETWORK_CIDRS=10.0.0.0/8,192.168.0.0/16
YAMLЗмінна середовищаТипСтандартно
agent_ipOTEL_EBPF_NETWORK_AGENT_IPstring(not set)

Дозволяє перевизначити атрибут obi.ip, що повідомляється в кожній метриці. Якщо не встановлено, OBI автоматично виявляє свою IP-адресу з вказаного мережевого інтерфейсу (див. наступну властивість).

YAMLЗмінна середовищаТипСтандартно
agent_ip_ifaceOTEL_EBPF_NETWORK_AGENT_IP_IFACEstringexternal

Вказує, який інтерфейс OBI повинен використовувати для вибору своєї IP-адреси, щоб встановити значення атрибута obi.ip. Прийнятні значення: external (стандартно), local або name:<імʼя інтерфейсу> (наприклад, name:eth0).

Якщо властивість конфігурації agent_ip встановлена, ця властивість не має ефекту.

YAMLЗмінна середовищаТипСтандартно
agent_ip_typeOTEL_EBPFstringany

Вказує, який тип IP-адреси (IPv4 або IPv6 або обидва) OBI повинен повідомляти в полі obi.ip кожного потоку. Прийнятні значення: any (стандартно), ipv4, ipv6. Якщо властивість конфігурації agent_ip встановлена, ця властивість не має ефекту.

YAMLЗмінна середовищаТипСтандартно
interfacesOTEL_EBPF_NETWORK_INTERFACES[]string(empty)

Назви інтерфейсів, з яких збираються потоки. Якщо порожньо, OBI отримує всі інтерфейси в системі, за винятком тих, що вказані в excluded_interfaces (див. нижче). Якщо запис обгорнутий слешами (наприклад, /br-/), він перевіряється як регулярний вираз, в іншому випадку він перевіряється як рядок з урахуванням регістру.

Якщо ви встановите цю властивість через змінну середовища, кожен запис повинен бути розділений комою, наприклад:

OTEL_EBPF_NETWORK_INTERFACES=eth0,eth1,/^veth/
YAMLЗмінна середовищаТипСтандартно
exclude_interfacesOTEL_EBPF_NETWORK_EXCLUDE_INTERFACES[]stringlo

Назви інтерфейсів, які потрібно виключити з трасування мережевих потоків. Стандартно: lo (loop-back). Якщо запис обгорнутий слешами (наприклад, /br-/), він перевіряється як регулярний вираз, в іншому випадку він перевіряється як рядок з урахуванням регістру.

Якщо ви встановите цю властивість через змінну середовища, кожен запис повинен бути розділений комою, наприклад:

OTEL_EBPF_NETWORK_EXCLUDE_INTERFACES=lo,/^veth/
YAMLЗмінна середовищаТипСтандартно
protocolsOTEL_EBPF_NETWORK_PROTOCOLS[]string(empty)

Якщо встановлено, OBI відкидає будь-який мережевий потік, який повідомляє про протокол Інтернету, що не входить до цього списку.

Прийнятні значення визначені в перерахуванні Linux Стандартні добре визначені IP-протоколи, і можуть бути: TCP, UDP, IP, ICMP, IGMP, IPIP, EGP, PUP, IDP, TP, DCCP, IPV6, RSVP, GRE, ESP, AH, MTP, BEETPH, ENCAP, PIM, COMP, L2TP, SCTP, UDPLITE, MPLS, ETHERNET, RAW

YAMLЗмінна середовищаТипСтандартно
exclude_protocolsOTEL_EBPF_NETWORK_EXCLUDE_PROTOCOLS[]string(empty)

Якщо встановлено, OBI відкидає будь-який мережевий потік, який повідомляє про протокол Інтернету, що входить до цього списку.

Якщо список protocols/OTEL_EBPF_NETWORK_PROTOCOLS вже встановлений, ця властивість ігнорується.

Допустимі значення визначені в переліку Linux Стандартні добре визначені IP-протоколи, і можуть бути: TCP, UDP, IP, ICMP, IGMP, IPIP, EGP, PUP, IDP, TP, DCCP, IPV6, RSVP, GRE, ESP, AH, MTP, BEETPH, ENCAP, PIM, COMP, L2TP, SCTP, UDPLITE, MPLS, ETHERNET, RAW

YAMLЗмінна середовищаТипСтандартно
cache_max_flowsOTEL_EBPF_NETWORK_CACHE_MAX_FLOWSinteger5000

Визначає, скільки потоків може бути накопичено в кеші обліку перед скиданням для подальшого експорту. Стандартне значення — 5000. Зменште його, якщо ви бачите помилку “отримане повідомлення більше за максимальне” в журналах OBI.

YAMLЗмінна середовищаТипСтандартно
cache_active_timeoutOTEL_EBPF_NETWORK_CACHE_ACTIVE_TIMEOUTduration5s

Визначає максимальний час, протягом якого потоки зберігаються в кеші обліку перед скиданням для подальшого експорту.

YAMLЗмінна середовищаТипСтандартно
directionOTEL_EBPF_NETWORK_DIRECTIONstringboth

Дозволяє вибрати, які потоки відстежувати відповідно до їхнього напрямку в інтерфейсі, з якого вони захоплюються. Прийнятні значення: ingress, egress, або both (стандартно).

YAMLЗмінна середовищаТипСтандартно
samplingOTEL_EBPF_NETWORK_SAMPLINGinteger0 (disabled)

Частота, з якою пакети повинні бути вибірково захоплені та надіслані до цільового колектора. Наприклад, якщо встановлено 100, в середньому один з 100 пакетів надсилається до цільового колектора.

YAMLЗмінна середовищаТипСтандартно
print_flowsOTEL_EBPF_NETWORK_PRINT_FLOWSbooleanfalse

Якщо встановлено true, OBI виводить кожен мережевий потік на стандартний вихід. Зверніть увагу, що це може згенерувати велику кількість виходу.

YAMLЗмінна середовищаТипСтандартно
guess_portsOTEL_EBPF_NETWORK_GUESS_PORTSstringdisable

Вказує, чи повинен OBI намагатися вгадати порти клієнта та сервера на основі порядкової евристики, коли ініціатора неможливо визначити за метаданими потоку. Це корисно для відстеження з’єднань із невідомими сервісами, де сам порт може допомогти ідентифікувати сервіс.

Прийнятні значення: disable (стандартно), ordinal.

Щоб знову ввімкнути вгадування портів на основі порядкової евристики, використовуйте:

network:
  guess_ports: ordinal

Або через змінну середовища:

OTEL_EBPF_NETWORK_GUESS_PORTS=ordinal

Востаннє змінено December 26, 2024: [uk] Ukrainian documentation for OpenTelemetry (091c99cf)