[6] Prometheus – Blackbox exporter

9 lutego 2022 Wyłączono przez Adam [zicherka] Nogły

Po skonfigurowaniu eksportera Blackbox, możliwe jest sondowanie punktów końcowych przez HTTP, HTTPS, DNS, TCP i ICMP.

[1] Na węźle, który chcesz monitorować za pomocą eksportera Blackbox, najpierw ustaw repozytorium Prometheus i zainstaluj eksporter Blackbox.

[root@vlsr02 ~]# dnf install blackbox_exporter

[2] To jest plik ustawień eksportera Blackbox. (Zachowaj wartość domyślną w tym przykładzie).

[root@vlsr02 ~]# mcedit /etc/prometheus/blackbox.yml
modules:
  http_2xx:
    prober: http
  http_post_2xx:
    prober: http
    http:
      method: POST
  tcp_connect:
    prober: tcp
  pop3s_banner:
    prober: tcp
    tcp:
      query_response:
      - expect: "^+OK"
      tls: true
      tls_config:
        insecure_skip_verify: false
  ssh_banner:
    prober: tcp
    tcp:
      query_response:
      - expect: "^SSH-2.0-"
      - send: "SSH-2.0-blackbox-ssh-check"
  irc_banner:
    prober: tcp
    tcp:
      query_response:
      - send: "NICK prober"
      - send: "USER prober prober prober :prober"
      - expect: "PING :([^ ]+)"
        send: "PONG ${1}"
      - expect: "^:[^ ]+ 001"
  icmp:
    prober: icmp

[root@vlsr02 ~]# systemctl enable --now blackbox_exporter

[3] Jeżeli Firewalld jest uruchomiony otwórz port 9115/tcp.

[root@vlsr02 ~]# firewall-cmd --add-port=9115/tcp --permanent
[root@vlsr02 ~]# firewall-cmd –reload

[4] Dodaj ustawienia na serwerze Prometheus.

[root@vlsr01 ~]# mcedit /etc/prometheus/prometheus.yml
#dodaj na końcu
#przypadek użycia modułu [icmp]
#dodaj [job_name]
  - job_name: 'Blackbox_icmp'
    metrics_path: /probe
    params:
      module: [icmp]
    static_configs:
      - targets:
        # nazwa hosta lub adres IP docelowego hosta
        - vlsr02.zicher.lab
    relabel_configs:
      - source_labels: [__address__]
        target_label: __param_target
      - source_labels: [__param_target]
        target_label: instance
      - target_label: __address__
        # exporter Blackbox Host:Port
        replacement: vlsr02.zicher.lab:9115

  #przypadek użycia modułu [ssh_banner]
  - job_name: 'Blackbox_ssh'
    metrics_path: /probe
    params:
      module: [ssh_banner]
    static_configs:
      - targets:
        # cel Host:Port
        - vlsr02.zicher.lab:22
    relabel_configs:
      - source_labels: [__address__]
        target_label: __param_target
      - source_labels: [__param_target]
        target_label: instance
      - target_label: __address__
        replacement: vlsr02.zicher.lab:9115
  #przypadek użycia modułu [tcp_connect]
  - job_name: 'Blackbox_tcp'
    metrics_path: /probe
    params:
      module: [tcp_connect]
    static_configs:
      - targets:
        # cel Host:Port (poniższy przykład wykorzystuje MariaDB/MySQL)
        - vlsr02.zicher.lab:3306
    relabel_configs:
      - source_labels: [__address__]
        target_label: __param_target
      - source_labels: [__param_target]
        target_label: instance
      - target_label: __address__
        replacement: vlsr02.zicher.lab:9115

[root@vlsr01 ~]# systemctl restart prometheus

[5] Uzyskaj dostęp do interfejsu użytkownika Prometheus i przejdź do opcji [Status] – [Targets], a następnie wyświetlą się nowe skonfigurowane cele. Można zobaczyć dane dotyczące metryki [probe_success]. [1] oznacza sukces, [0] oznacza porażkę.