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 [email protected]. To view this discussion visit https://groups.google.com/d/msgid/prometheus-users/e64ca74d-169c-4454-bcd7-87b67a5f3272n%40googlegroups.com.

