Hi
This is my first time asking a question in the group, and I may not be very 
clear on some of the rules, but I will do my best to describe my question 
clearly. Below is the description of my issue:

   -  I deployed* Prometheus, Node Exporter, Grafana, Alertmanager, 
   Blackbox Exporter, *and* Webhook-WeChat *on the server with IP 
   *10.1.1.161* using Docker, and all the ports are set to their default 
   values. These services are running normally. I want to use *Blackbox 
   Exporter* to monitor whether the *Tableau *service installed on a 
   Windows system with IP *10.101.1.112* returns a status code of 200. I am 
   monitoring port 8850 (the Tableau port).I used* curl 
   https://10.101.1.112:8850* on 10.1.1.161 and received the following 
   response:

------------------------------------------------------------------------------------------------------------------------------------------
curl: (60) Peer's certificate issuer has been marked as not trusted by the 
user.
More details here: http://curl.haxx.se/docs/sslcerts.html
curl performs SSL certificate verification by default, using a "bundle"
 of Certificate Authority (CA) public keys (CA certs). If the default
 bundle file isn't adequate, you can specify an alternate file
 using the --cacert option.
-------------------------------------------------------------------------------------------------------------------------------------------

   - when I use "*curl -k https://10.101.1.112:8850*";, I can successfully 
   retrieve the response body. Therefore, I added insecure_skip_verify: true 
   in the *'config/blackbox.yml*' file to skip certificate verification.
   - I restarted Prometheus, Blackbox Exporter, and the Blackbox container, 
   but after the restart, the Webhook-WeChat service triggered an alert: '
   *https://10.101.1.112:8850* responded with code 0' instead of 200. 
   However, when I access *https://10.101.1.112:8850* in the browser, it 
   works, though it warns that the connection is not secure. At the same time, 
   when I use the browser to access 
   
*http://10.1.1.161:9115/probemodule=http_2xx&target=https://10.101.1.112:8850*, 
   it returns a status in a format like this, which seems to indicate that the 
   request was unsuccessful(for example:probe_success 0,probe_http_status_code 
   0):

-------------------------------------------------------------------------------------------------------------------------------------------
# HELP probe_dns_lookup_time_seconds Returns the time taken for probe dns 
lookup in seconds
# TYPE probe_dns_lookup_time_seconds gauge
probe_dns_lookup_time_seconds 1.6356e-05
# HELP probe_duration_seconds Returns how long the probe took to complete 
in seconds
# TYPE probe_duration_seconds gauge
probe_duration_seconds 0.022416452
# HELP probe_failed_due_to_regex Indicates if probe failed due to regex
# TYPE probe_failed_due_to_regex gauge
probe_failed_due_to_regex 0
# HELP probe_http_content_length Length of http content response
# TYPE probe_http_content_length gauge
probe_http_content_length 0
# HELP probe_http_duration_seconds Duration of http request by phase, 
summed over all redirects
# TYPE probe_http_duration_seconds gauge
probe_http_duration_seconds{phase="connect"} 0
probe_http_duration_seconds{phase="processing"} 0
probe_http_duration_seconds{phase="resolve"} 1.6356e-05
probe_http_duration_seconds{phase="tls"} 0
probe_http_duration_seconds{phase="transfer"} 0
# HELP probe_http_redirects The number of redirects
# TYPE probe_http_redirects gauge
probe_http_redirects 0
# HELP probe_http_ssl Indicates if SSL was used for the final redirect
# TYPE probe_http_ssl gauge
probe_http_ssl 0
# HELP probe_http_status_code Response HTTP status code
# TYPE probe_http_status_code gauge
probe_http_status_code 0
# HELP probe_http_uncompressed_body_length Length of uncompressed response 
body
# TYPE probe_http_uncompressed_body_length gauge
probe_http_uncompressed_body_length 0
# HELP probe_http_version Returns the version of HTTP of the probe response
# TYPE probe_http_version gauge
probe_http_version 0
# HELP probe_ip_addr_hash Specifies the hash of IP address. It's useful to 
detect if the IP address changes.
# TYPE probe_ip_addr_hash gauge
probe_ip_addr_hash 3.959139489e+09
# HELP probe_ip_protocol Specifies whether probe ip protocol is IP4 or IP6
# TYPE probe_ip_protocol gauge
probe_ip_protocol 4
# HELP probe_success Displays whether or not the probe was a success
# TYPE probe_success gauge
probe_success 0
------------------------------------------------------------------------------------------------------------------------------------------
Here is my Prometheus prometheus.yml configuration:
---
global:
  scrape_interval: 15s
  evaluation_interval: 15s

# config alertmanagers
alerting:
  alertmanagers:
    - static_configs:
        - targets:
            - 10.1.1.161:9093
rule_files:
  - "/etc/prometheus/rules/*.yml"
scrape_configs:
  # Prometheus port 9090
  - job_name: 'prometheus'
    static_configs:
      - targets: ['10.1.1.161:9090']
        labels:
          instance: 'prometheus'
  - job_name: 'tableau_blackbox'
    metrics_path: /probe
    params:
      module: [http_2xx]
    static_configs:
      - targets:
          - https://10.101.1.112:8850
    relabel_configs:
      - source_labels: [__address__]
        target_label: __param_target
      - source_labels: [__param_target]
        target_label: instance
      - target_label: __address__
        # This is Blackbox Exporter
        replacement: 10.1.1.161:9115
      - source_labels: [__param_target]
        target_label: service
        replacement: 'new pro environment'  # https://10.101.1.112:8850
        regex: 'https://10\.101\.1\.112:8850'
---
Here is the Prometheus rule configuration:
---
groups:
  - name: tableau_alerts
    rules:
      # 1. HTTP/HTTPS 
      - alert: Tableau service problem
        expr: probe_http_status_code{job="tableau_blackbox",service="new 
pro environment"} != 200
        for: 10s
        labels:
          severity: critical
        annotations:
          summary: "tableau code exception"
          description: "Target service {{ $labels.instance }} response code 
{{ $value }},should be 200!"
---
Here is the Blackbox Exporter blackbox.yml configuration:
---
modules:
  http_2xx:
    prober: http
    timeout: 5s
    http:
      valid_http_versions: ["HTTP/1.1", "HTTP/2.0"]
      method: GET
      preferred_ip_protocol: "ip4"
      ip_protocol_fallback: false
      no_follow_redirects: false
      fail_if_ssl: false
      fail_if_not_ssl: false
      tls_config:
        insecure_skip_verify: true
---
Here is my Docker startup command:
*Prometheus:*

*docker run -d --name prometheus -p 9090:9090 -v 
/data/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml \  -v 
/data/prometheus/rules/:/etc/prometheus/rules/  prom/prometheus*

*blackbox explorter:*
*docker run -d -p 9115:9115 -v /data/blackbox_exporter/config/:/config/ 
 --name blackbox_exporter  quay.io/prometheus/blackbox-exporter *

-- 
You received this message because you are subscribed to the Google Groups 
"Prometheus Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to prometheus-users+unsubscr...@googlegroups.com.
To view this discussion visit 
https://groups.google.com/d/msgid/prometheus-users/e64ca74d-169c-4454-bcd7-87b67a5f3272n%40googlegroups.com.

Reply via email to