Как пинговать цели, используя blackbox_exporter с prometheus - PullRequest
0 голосов
/ 05 апреля 2019

Я пытаюсь пропинговать список целей, используя blackbox_exporter с prometheus, но мне кажется, что я могу только проверять blackbox_exporter, а не фактические цели, которые я хочу проверить.

Я не могу найти никакой документации в черном ящике о том, где должны быть перечислены цели, поэтому я сделал странное предположение, что он использует цели, представленные в конфигурации prometheus, но из того, что я понимаю, просто заставляет Прометея верить, что есть много черных ящиков для исследования.

Это мой конфиг blackbox_exporter

 modules:
  icmp:
    prober: icmp
    timeout: 5s
    icmp:
      preferred_ip_protocol: ip4

Однако, когда я захожу в веб-интерфейс для черного ящика, конфиг содержит несколько параметров, которые я не указал.

modules:
  icmp:
    prober: icmp
    timeout: 5s
    http:
      ip_protocol_fallback: true
    tcp:
      ip_protocol_fallback: true
    icmp:
      preferred_ip_protocol: ip4
      ip_protocol_fallback: true
    dns:
      ip_protocol_fallback: true

А это мой конфиг прометея

global:
  scrape_interval:     15s
  evaluation_interval: 15s

  - job_name: 'blackbox'
    metrics_path: /probe
    params:
      module: [icmp]
    static_configs:
      - targets:
        - icmp-target1 # supposed to be a switch, router, pc or anything that responds to ping
        - icmp-target2

Ожидаемый результат: Где-то в пути я ожидал, что мои цели будут проверены черным ящиком и прометеем, собирающим результат.

Фактический результат: Прометей отправляет пробный запрос через HTTP для каждой цели, указанной в его списке целей.

1 Ответ

2 голосов
/ 06 апреля 2019

Несмотря на некоторую путаницу, README blackbox_exporter объясняет, как его настроить, см. Раздел Конфигурация Prometheus .

Ваша конфигурация черного ящика правильная.

Для вашей конфигурации PrometheusВам нужно что-то вроде следующего.Я предполагаю, что экспортер черного ящика и Прометей расположены в одном месте (отсюда localhost), иначе адаптируются.

# this is to scrape blackbox itself (this is optional)
- job_name: blackbox
  static_configs:
  - targets: ['localhost:9115']


- job_name: blackbox-ping
  metrics_path: /probe
  params:
    module: [icmp]
  static_configs:
    - targets:
      - 192.168.1.1   # <== Put here your targets
  relabel_configs:    # <== This comes from the blackbox exporter README
    - source_labels: [__address__]
      target_label: __param_target
    - source_labels: [__param_target]
      target_label: instance
    - target_label: __address__
      replacement: localhost:9115 # Blackbox exporter.

Другая запутанная часть отвечает на вопрос: «Как использовать экспортер черного ящика для несколькихпротоколы, скажем, ICMP и HTTP? "В этом случае существуют различные варианты, но более понятным является наличие одного раздела на протокол.Вот почему я называю ICMP-зонды blackbox-ping.Скажем, мы хотим иметь также HTTP-зонды, мы добавим еще один раздел:

- job_name: blackbox-http
  metrics_path: /probe
  params:
    module: [http_2xx]
  static_configs:
    - targets:
      - https://www.google.com  # <== your targets here
  relabel_configs:              # <== This comes from the blackbox exporter README
    - source_labels: [__address__]
      target_label: __param_target
    - source_labels: [__param_target]
      target_label: instance
    - target_label: __address__
      replacement: localhost:9115 # Blackbox exporter.

Вам также потребуется соответствующая конфигурация черного ящика:

modules:
  http_2xx:        # <== This is the new section for HTTP
    prober: http
    timeout: 10s   # <== This depends on what you want to do
    http:
      valid_status_codes: []  # Defaults to 2xx
      method: HEAD              # <== This depends on what you want to do
      no_follow_redirects: true # <== this depends on what you want to do
  icmp:                         # <== this is the one you already have
    prober: icmp
    timeout: 10s                # <== This depends on what you want to do
    icmp:
      preferred_ip_protocol: ip4
...