J'ai du mal à comprendre pourquoi certains points de terminaison HTTP renvoient '0' pour 'probe_success' et 'probe_http_status_code', tout en étant parfaitement capable d'obtenir une réponse "valide" avec curl.
Exemple: curl -s "localhost: 9115 / probe? target = http: //linux.org&module=http_2xx" | grep -v '^ #'
Sortie:
modules: http_2xx: prober: http timeout: 15s http: valid_status_codes: [] method: GET
Voici la définition du travail:
- job_name: 'blackbox' scrape_interval: 30s metrics_path: /probe params: module: [http_2xx] static_configs: - targets: - http://linux.org relabel_configs: - source_labels: [__address__] regex: '(.*)(:80)?' target_label: __param_target - source_labels: [__param_target] regex: '(.*)' target_label: instance replacement: '${1}' - source_labels: [] regex: '.*' target_label: __address__ replacement: 'blackbox:9115'
3 Réponses :
Si vous ajoutez & debug = true
, vous obtiendrez des détails sur l'erreur.
Ma supposition est que blackbox_exporter ne peut pas se connecter car il utilise par défaut des connexions ipv6 et c'est ne fonctionne pas.
Dans mon cas (même problème), la sortie de débogage indique
modules: http_2xx: prober: http timeout: 15s http: valid_status_codes: [] method: GET preferred_ip_protocol: "ip4" # <---- !
De documentation de la blackbox :
# The IP protocol of the HTTP probe (ip4, ip6). [ preferred_ip_protocol: <string> | default = "ip6" ] [ ip_protocol_fallback: <boolean> | default = true ]
Donc, si vous modifiez votre module configuration, cela devrait fonctionner:
level=error msg="Resolving target address" ip_protocol=ip6 level=error msg="Resolution with IP protocol failed (fallback_ip_protocol is false): err" level=error msg="Error resolving address" err="address apple.com: no suitable address found" level=error msg="Probe failed" duration_seconds=0.003648031
Dans mon erreur était: "x509: certificat signé par une autorité inconnue"
Modifier l'option dans la section http
tls_config: insecure_skip_verify: true
Je pense que vous devriez définir insecure_skip_verify
sur true
, PAS false
Dans mon cas, je devais ajouter dans la section valid_http_versions
l'entrée HTTP / 1.0
. Mon point de terminaison était Odoo 13. Le & debug = true
suggéré par @Rafa m'a donné les informations pour m'en rendre compte.
Quelque chose dans les journaux de l'exportateur de la boîte noire? Où / comment gérez-vous l'exportateur blackbo? dans un conteneur docker? avez-vous mis à jour / installé le package
ca-certificates
?@Oliver rien sur les logs de Blackbox-Exporter. Cela fonctionne sur docker. Oui, j'ai également installé des certificats ca sous / etc / ssl / certs mais le résultat est le même.
Il semblerait que vous receviez une redirection (selon
probe_http_redirects 1
, probablementhttps://linux.org
) mais cette requête échoue. Leprobe_http_duration_seconds {phase = "tls"} 0
semble prendre en charge cela. Le courtprobe_duration_seconds
suggère que la connexion HTTPS n'est même pas tentée (pour moi, il faut environ 1+ secondes pour obtenir une sonde réussie). Pare-feu?Avez-vous essayé la requête
curl
depuis le conteneur blackbox_exporter? (en utilisant docker exec ... / bin / sh)@Oliver oui, je l'ai fait.
Peut-être que nous manquons tous quelque chose d'évident, mais à première vue, cela semble être un bogue d'exportateur de boîte noire. Vous devriez probablement signaler un problème: github.com/prometheus/blackbox_exporter/issues
Désolé les gars! J'avais 2 instances de boîte noire en cours d'exécution et je testais la mauvaise ... Néanmoins, j'ai un autre couple de domaines qui échouent avec la même sortie que ci-dessus. Je vous ferai savoir dès que je comprendrai pourquoi. Merci!