ebpf_exporter


Репозиторий: ebpf_exporter

Документация: Доступна в репозитории (по использованию экспортера и настройке eBPF-программ)

Экспортер для мониторинга системы через eBPF (extended Berkeley Packet Filter). Может быть запущен как процесс или как сервис.

Описание работы

eBPF_exporter собирает низкоуровневые метрики ядра Linux с помощью eBPF-программ.

Это стандартный Prometheus экспортер с HTTP-сервером для отображения метрик.

Он содержит

Эндпойнт /metrics со стандартными метриками (go, proc, promhttp)

Возможность загрузки пользовательских eBPF-программ

Метрики:

  • Системных вызовов

  • Сетевых событий

  • Производительности ядра

  • Пользовательских событий

Запуск экспортёра

Возможна настройка через конфигурационный файл агента.

Требуется в ручную скомпилировать eBPF-программ и передать на хост.

Через конфигурационный файл агента

config.yml
exporters:
  - name: ebpf_exporter
    start_type: args
    args: "--config.file=/etc/ebpf_exporter.yaml"
    address: 127.0.0.1:9435
    labels:
      component: ebpf
      hostname: my-hostname-vm

name - должно совпадать с именем бинарного файла (ebpf_exporter)

start_type - тип запуска экспортёра

args - основные аргументы:

address - адрес для проверки здоровья

labels - дополнительные метки:

component - идентификатор компонента

monitoring_type - тип мониторинга

Конфигурационный файл экспортера

Пример конфигурации:

ebpf_exporter.yaml
programs:
  - name: "syscall_count"
    metrics:
      counters:
        - name: "syscall_total"
          help: "Total number of syscalls"
          table: "counts"
          labels:
            - name: "syscall"
              size: 8
              decoders:
                - name: "ksym"

Важно

Для запуска требуются права root, поддержка eBPF в ядре и собранные eBPF-программы, подробнее в примерах запуска.

Проверка работы

После запуска метрики будут доступны по адресу:

http://localhost:9435/metrics

Примечание

Замените localhost на IP-адрес хоста с конфигурируемым агентом.