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"} 0semble prendre en charge cela. Le courtprobe_duration_secondssuggè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
curldepuis 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!