Collecte des métriques de disponibilité à l'aide de l'exportateur Prometheus Blackbox
L'exportateur Prometheus Blackbox permet de sonder la boîte noire des noeuds finaux via HTTP, HTTPS, DNS, TCP et ICMP. L'agent de surveillance peut être utilisé conjointement avec l'exportateur Blackbox pour collecter les métriques de disponibilité. Les métriques de disponibilité peuvent ensuite faire l'objet d'alertes dans IBM Cloud Monitoring pour informer les utilisateurs sur la disponibilité des noeuds finaux.
Procédez comme suit pour configurer l'exportateur Prometheus Blackbox :
Configuration d'un agent de surveillance pour collecter les mesures
Pour surveiller un ou plusieurs hôtes, vous devez configurer un agent de surveillance. L'agent collecte automatiquement un ensemble de métriques que vous pouvez surveiller via l'interface utilisateur de surveillance.
Voir Choix d'un type d'agent par infrastructure et choisissez l'agent de surveillance que vous souhaitez configurer pour surveiller un hôte.
Installation de l'exportateur Prometheus Blackbox
Pour exécuter l'exportateur Blackbox en tant que conteneur Docker, procédez comme suit:
-
Téléchargez le blackbox.yml déposer de Github.
Enregistrez le fichier dans le répertoire
/config/prometheus/blackbox/
. -
Exécutez l'exportateur Blackbox en tant que conteneur Docker :
docker run --rm -d -p 9115:9115 -l io.prometheus.scrape=true -l io.prometheus.port=9115 -l io.prometheus.path=/probe --name blackbox_exporter -v `pwd`:/config/prometheus/blackbox prom/blackbox-exporter:master --config.file=/config/prometheus/blackbox/blackbox.yml
-
Vérifiez que l'exportateur est en cours d'exécution. Exécutez la commande suivante :
docker container ls
Une sortie similaire à la suivante s'affiche :
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 2480a0034bb4 prom/blackbox-exporter:master "/bin/blackbox_expor…" 36 minutes ago Up 36 minutes 0.0.0.0:9115->9115/tcp blackbox_exporter
Pour arrêter le conteneur Blackbox, exécutez la commande suivante :
docker container stop 2480a0034bb4
.
Configurer les paramètres réseau
Si vous souhaitez collecter des métriques à partir de serveurs distants, procédez comme suit :
-
Activez le pare-feu pour autoriser l'accès à l'exportateur
blackbox_exporter
. -
[Facultatif] Mettre à jour les règles VPC
Si vous utilisez des noeuds finaux privés, ajoutez une règle entrante au groupe de sécurité pour le port
9115
avecsource type = Security Group
et choisissez le groupe de sécurité pour le serveur.
Mise à jour de l'agent de surveillance en cours d'exécution sur le serveur
Exécutez la commande suivante pour éditer la mappe de configuration et pour ajouter des informations sur les cibles Blackbox que vous souhaitez surveiller à l'aide de l'agent de surveillance Kubernetes :
kubectl edit configmap sysdig-agent -n ibm-observe
log:
file_priority: error
configmap: true
### Agent tags
# tags: linux:ubuntu,dept:dev,local:nyc
#### Monitoring Software related config ####
# Monitoring collector address
# collector: 192.168.1.1
# Collector TCP port
# collector_port: 6666
# Whether collector accepts ssl
# ssl: true
# collector certificate validation
# ssl_verify_certificate: true
#######################################
# new_k8s: true
# k8s_cluster_name: production
security:
k8s_audit_server_url: 0.0.0.0
k8s_audit_server_port: 7765
k8s_cluster_name: <CLUSTER_NAME>/<CLUSTER_ID>
tags: ibm.containers-kubernetes.cluster.id:<CLUSTER_ID>
collector: <INGESTION_ENDPOINT>
collector_port: 6443
ssl: true
ssl_verify_certificate: true
sysdig_capture_enabled: false
promscrape_fastproto: true
use_promscrape: true
prometheus:
enabled: true
prom_service_discovery: true
log_errors: true
max_metrics: 200000
max_metrics_per_process: 200000
max_tags_per_metric: 100
ingest_raw: true
ingest_calculated: false
prometheus.yaml:
----
global:
scrape_interval: 10s
scrape_configs:
- job_name: blackbox
metrics_path: /probe
params:
module: [http_2xx]
static_configs:
- targets:
- https://prometheus.io/
- https://www.google.com/search?q=promcat
- https://www.ibm.com/software/passportadvantage
relabel_configs:
- source_labels: [__address__]
target_label: __param_target
- source_labels: [__param_target]
target_label: instance
- source_labels: [__param_target]
target_label: blackbox_instance
- target_label: __address__
replacement: blackbox-exporter.ibm-observe:9115
Où
<IP_ADDRESS_OF_REMOTE_SERVER>
est l'adresse IP d'un serveur que vous souhaitez surveiller.<INGESTION_ENDPOINT>
est le noeud final d'ingestion d'instance IBM Cloud Monitoring, par exemple,ingest.us-south.monitoring.cloud.ibm.com
. Voir Noeuds finaux de collecteur.
Lorsque vous enregistrez le fichier, les modifications sont appliquées.
Configurer le tableau de bord par défaut et les alertes pour analyser l'état de la boîte noire de votre serveur
Procédez comme suit :
-
Créez un tableau de bord.
-
Ajoutez un panneau pour chacune des requêtes suivantes :
Métrique | Requête | Options |
---|---|---|
Code de statut par instance | probe_http_status_code{instance=$instance} |
number (auto) |
Expiration du certificat SSL en jours | probe_ssl_earliest_cert_expiry{instance=$instance}-time() |
time (auto) |
Recherche du DNS | probe_dns_lookup_time_seconds{instance=$instance} |
time (auto) |
Durée de la sonde | probe_duration_seconds{instance=$instance} |
time (auto) |
Par exemple, vous pouvez créer un tableau de bord qui se présente comme suit :
{: caption="bord BlackboxExemple de tableau de bord BlackboxExemple de tableau " caption-side="bottom"} bord Blackbox*