DéveloppeurWeb.Com
    DéveloppeurWeb.Com
    • Agile Zone
    • AI Zone
    • Cloud Zone
    • Database Zone
    • DevOps Zone
    • Integration Zone
    • Web Dev Zone
    DéveloppeurWeb.Com
    Home»Uncategorized»Intégration de Blackbox Exporter dans Datadog, Prometheus et Grafana pour les métriques personnalisées
    Uncategorized

    Intégration de Blackbox Exporter dans Datadog, Prometheus et Grafana pour les métriques personnalisées

    février 26, 2023
    Intégration de Blackbox Exporter dans Datadog, Prometheus et Grafana pour les métriques personnalisées
    Share
    Facebook Twitter Pinterest Reddit WhatsApp Email

    Lors de l’exploration des capacités de Blackbox Exporter et de son rôle dans la surveillance et l’observabilité, j’avais hâte de le personnaliser pour répondre à mes besoins de production spécifiques.

    Datadog est un système de surveillance puissant fourni avec des packages pré-planifiés contenant tous les services nécessaires à votre infrastructure. Cependant, j’ai parfois besoin d’une solution plus précise et intuitive pour mon infrastructure qui me permette de passer de manière transparente entre plusieurs systèmes de surveillance cloud.

    Mon cas d’utilisation impliquait la nécessité de récupérer des métriques à partir de points de terminaison à l’aide d’une gamme de protocoles, notamment HTTP, HTTPS, DNS, TCP et ICMP. C’est là que Blackbox Exporter est entré en jeu.

    Il est important de noter qu’il existe de nombreux exportateurs open source disponibles pour une variété de technologies, telles que les bases de données, les courtiers de messages et les serveurs Web. Cependant, pour les besoins de cet article, nous nous concentrerons sur Blackbox Exporter et sur la façon dont nous pouvons récupérer les métriques et les envoyer à Datadog.

    Si votre système n’utilise pas Datadog, vous pouvez passer directement à l’étape 1 et à l’étape 3.

    Voici les étapes à suivre pour transférer des métriques personnalisées vers Datadog :

    • Instructions étape par étape sur la façon d’installer Blackbox Exporter à l’aide de Helm, avec des conseils sur la façon de l’utiliser localement ou dans un environnement de production
    • Extraire des métriques personnalisées vers DataDog à partir des points de terminaison BlackBox Exporter
    • Collectez des métriques personnalisées à partir des points de terminaison BlackBox Exporter et rendez-les disponibles dans Prometheus, puis utilisez Grafana pour les visualiser pour une meilleure surveillance.

    Étape 1 : Comment installer Blackbox Exporter à l’aide de Helm

    Nous utiliserons Helm pour installer l’exportateur Blackbox. Si nécessaire, vous pouvez personnaliser les valeurs Helm en fonction de vos besoins.

    Si vous travaillez dans un environnement de production Kubernetes, vous pouvez choisir de créer une entrée :

    ingress:
      enabled: true
      annotations:
        kubernetes.io/ingress.class: ingress-class
        nginx.ingress.kubernetes.io/proxy-connect-timeout: "30"
        nginx.ingress.kubernetes.io/proxy-read-timeout: "180"
        nginx.ingress.kubernetes.io/proxy-send-timeout: "180"
      hosts:
        - host: blackbox-exporter.<organization_name>.com
          paths:
          - backend:
              serviceName: blackbox-exporter
              servicePort: 9115
            path: /
      tls:
      - hosts:
        - '*.<organization_name>.com'

    Nous ne créerons pas d’entrée dans notre didacticiel car nous testons l’exemple localement.
    Notre commande d’installation est la suivante :

    helm upgrade -i prometheus-blackbox-exporter prometheus-community/prometheus-blackbox-exporter --version 7.2.0

    Essayons de voir l’exportateur Blackbox en action. Nous allons exporter le service BlackBox Exporter avec la redirection de port :

    export POD_NAME=$(kubectl get pods --namespace default -l "app.kubernetes.io/name=prometheus-blackbox-exporter,app.kubernetes.io/instance=prometheus-blackbox-exporter" -o jsonpath="{.items[0].metadata.name}")
    export CONTAINER_PORT=$(kubectl get pod --namespace default $POD_NAME -o jsonpath="{.spec.containers[0].ports[0].containerPort}")
    echo "Visit http://127.0.0.1:9115 to use your application"
    kubectl --namespace default port-forward $POD_NAME 9115:$CONTAINER_PORT

    Visitons l’URL : http://localhost:9115/

    Faisons une requête CURL pour vérifier si nous réussissons à obtenir une réponse de 200 de notre exportateur BlackBox :

    curl -I http://localhost:9115/probe\?target\=http://localhost:9115\&module\=http_2xx

    S’il réussit, nous pourrons voir le résultat suivant sur le tableau de bord BlackBox Exporter :


    Étape 2 : Extrayez les métriques personnalisées vers DataDog

    Nous utiliserons la version suivante de la charte Helm pour installer l’agent Datadog dans notre cluster. Une fois installé, nous pouvons spécifier les métriques que nous voulons surveiller en modifiant la configuration et en ajoutant notre bloc OpenMetrics. OpenMetrics nous permettra d’extraire des métriques personnalisées à partir de n’importe quel point de terminaison OpenMetrics.

    Notre commande d’installation est la suivante :

    helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
    helm repo update

    Nous utilisons l’intégration Prometheus avec Datadog afin de récupérer les métriques des applications. Cependant, au lieu de configurer l’URL Prometheus, nous allons configurer les points de terminaison BlackBox Exporter.

    Notre configuration dans les valeurs Datadog Helm ressemble à :

    datadog:
      confd:
        openmetrics.yaml: |-
          instances:
            - prometheus_url: https://blackbox-exporter.<organization_name>.com/probe?target=https://jenkins.<organization_name>.com&module=http_2xx
              namespace: status_code
              metrics:
                - probe_success: 200
              min_collection_interval: 120
              prometheus_timeout: 120
              tags:
                - monitor_app:jenkins
                - monitor_env:production
                - service_name:blackbox-exporter
            - prometheus_url: https://blackbox-exporter.<organization_name>.com/probe?target=https://argocd.<organization_name>.com&module=http_2xx
              namespace: status_code
              metrics:
                - probe_success: 200
              min_collection_interval: 120
              prometheus_timeout: 120
              tags:
                - monitor_app:argocd
                - monitor_env:production
                - service_name:blackbox-exporter

    Nous avons sélectionné « probe_success » comme métrique à extraire, et l’avons renommé « status_code:200 » pour le rendre plus intuitif et plus facile à définir des alertes pour plus tard.

    C’est tout. Une fois connecté à votre tableau de bord Datadog, vous pouvez explorer les métriques personnalisées en filtrant en fonction de la balise service_name que nous avons définie comme « blackbox-exporter ».

    Étape 3 : Extrayez des métriques personnalisées et visualisez-les dans Grafana à l’aide de Prometheus

    Nous utiliserons la version suivante de la charte Helm pour installer Prometheus dans notre cluster.

    Nous allons d’abord créer notre values.yaml de notre configuration Helm :

    prometheus:
      prometheusSpec:
        additionalScrapeConfigs: |
          - job_name: 'prometheus-blackbox-exporter'
            scrape_timeout: 15s
            scrape_interval: 15s
            metrics_path: /probe
            params:
              module: [http_2xx]
            static_configs:
              - targets:
                - http://localhost:9115
                - http://localhost:8080
            relabel_configs:
              - source_labels: [__address__]
                target_label: __param_target
              - source_labels: [__param_target]
                target_label: instance
              - target_label: __address__
                replacement: prometheus-blackbox-exporter:9115
    alertmanager:
      enabled: false
    nodeExporter:
      enabled: false

    Nous pouvons maintenant procéder à l’installation de la pile Prometheus :

    helm upgrade -i prometheus prometheus-community/kube-prometheus-stack -f values.yaml --version 45.0.0

    Utilisons le transfert de port Kubernetes pour Prometheus :

    kubectl port-forward service/prometheus-kube-prometheus-prometheus -n default 9090:9090

    Pour voir que nous récupérons les métriques de BlackBox Exporter, accédez à http://localhost:9090/metrics. Vous pouvez rechercher le nom du travail « prometheus-blackbox-exporter » que nous avons défini dans les valeurs Helm de la pile Prometheus.

    Utilisons le transfert de port Kubernetes pour Grafana :

    # Get the Grafana password
    # Grafana username is: admin
    kubectl get secrets -n default prometheus-grafana -o jsonpath="{.data.admin-password}" | base64 --decode ; echo
    kubectl port-forward service/prometheus-grafana -n default 3000:80

    Pour importer le tableau de bord Prometheus Blackbox Exporter, accédez à http://localhost:3000/tableau de bord/importation et utilisez l’ID de tableau de bord 7587.

    Pour confirmer que Prometheus collecte régulièrement des métriques à partir des URL spécifiées (localhost : 9115, localhost : 8080), vous pouvez vérifier en visitant http://localhost:9115/ et vérifier que le nombre de « sondes récentes » augmente.

    Résumé

    Comme indiqué dans notre article, nous avons fourni une méthode simple et gérable pour personnaliser vos métriques en fonction des exigences de surveillance de votre système. Que vous utilisiez un système de surveillance payant ou un système open source, il est crucial d’avoir la capacité de choisir et d’identifier avec précision vos besoins de production. Une compréhension approfondie de ce processus se traduira par la rentabilité et l’amélioration des connaissances de l’équipe.

    Share. Facebook Twitter Pinterest LinkedIn WhatsApp Reddit Email
    Add A Comment

    Leave A Reply Cancel Reply

    Catégories

    • Politique de cookies
    • Politique de confidentialité
    • CONTACT
    • Politique du DMCA
    • CONDITIONS D’UTILISATION
    • Avertissement
    © 2023 DéveloppeurWeb.Com.

    Type above and press Enter to search. Press Esc to cancel.