Labs 3 - Metrics

Objectif : Dans ce laboratoire, vous explorerez la facilité avec laquelle vous pouvez obtenir des métriques système et NGINX avec Metricbeat et les indexer dans Elasticsearch. Vous explorerez également les tableaux de bord Kibana et verrez avec quelle facilité vous pouvez surveiller ces métriques.

  1. Tout d’abord, vous allez télécharger et installer (en fait, juste extraire) Metricbeat. Pour ce faire, ouvrez une nouvelle fenêtre de terminal et exécutez les commandes suivantes. Notez que vous devez télécharger une version de Metricbeat qui correspond à votre déploiement Elastic Cloud. Modifiez donc la version 7.14.0 en conséquence si votre déploiement fonctionne avec une version différente.
curl -L -O https://artifacts.elastic.co/downloads/beats/metricbeat/metricbeat-7.14.0-linux-x86_64.tar.gz

tar -xzf metricbeat-7.14.0-linux-x86_64.tar.gz

cd metricbeat-7.14.0-linux-x86_64
  1. Ensuite, vous allez configurer Metricbeat pour qu’il sorte sur votre instance de cloud. Vous aurez besoin du cloud.id et du mot de passe de l’utilisateur élastique. Vous pouvez obtenir votre cloud.id en accédant à votre observability-deployment et en cliquant sur le bouton copy to clipboard.

image.png

  1. Avez-vous pensé à copier le mot de passe de l’utilisateur élastique dans un endroit sûr ? Très bien ! (Si ce n’est pas le cas, vous pouvez toujours réinitialiser le mot de passe de l’utilisateur d’elastic ; rappelez-vous simplement que vous devrez peut-être modifier toutes les applications dans lesquelles ce mot de passe est stocké).

Pour réinitialiser le mot de passe à tout moment, il suffit de cliquer sur le lien Sécurité, puis sur le bouton Réinitialiser le mot de passe. Cette fois, n’oubliez pas de copier le mot de passe et de le sauvegarder dans un endroit sûr !

image.png

  1. Modifiez maintenant le fichier metricbeat.yml pour configurer Metricbeat de manière à ce qu’il sorte sur votre déploiement Elastic Cloud. Insérez les deux lignes suivantes à la fin du fichier de configuration :
cloud.id: "YOUR_CLOUD_ID"
cloud.auth: "elastic:YOUR_CLOUD_PASSWORD"
  1. Remplacez VOTRE_CLOUD_ID et VOTRE_CLOUD_PASSWORD par l’ID du nuage et le mot de passe de l’utilisateur élastique de votre déploiement, respectivement.

  2. Vérifiez si Metricbeat peut atteindre votre déploiement.

./metricbeat test output

Vous devriez obtenir un résultat similaire à celui ci-dessous :

elasticsearch: https://196fdefef0f64d08a64fe63bff7ae538.europe-west1.gcp.cloud.es.io:443...
  parse url... OK
  connection...
    parse host... OK
    dns lookup... OK
    addresses: 35.195.130.253
    dial up... OK
  TLS...
    security: server's certificate chain verification is enabled
    handshake... OK
    TLS version: TLSv1.2
    dial up... OK
  talk to server... OK
  version: 7.14.0
  1. Le module système est déjà activé par défaut. Utilisez la commande suivante pour vérifier sa configuration :
cat modules.d/system.yml

Vous devriez voir les configurations suivantes :

# Module: system
# Docs: https://www.elastic.co/guide/en/beats/metricbeat/7.x/metricbeat-module-system.html

- module: system
  period: 10s
  metricsets:
    - cpu
    - load
    - memory
    - network
    - process
    - process_summary
    - socket_summary
    #- entropy
    #- core
    #- diskio
    #- socket
    #- service
    #- users
  process.include_top_n:
    by_cpu: 5      # include top 5 processes by CPU
    by_memory: 5   # include top 5 processes by memory
  # Configure the mount point of the host’s filesystem for use in monitoring a host from within a container
  #system.hostfs: "/hostfs"

- module: system
  period: 1m
  metricsets:
    - filesystem
    - fsstat
  processors:
  - drop_event.when.regexp:
      system.filesystem.mount_point: '^/(sys|cgroup|proc|dev|etc|host|lib|snap)($|/)'

- module: system
  period: 15m
  metricsets:
    - uptime

#- module: system
#  period: 5m
#  metricsets:
#    - raid
#  raid.mount_point: '/'

Le fichier de configuration comporte trois parties. La première collecte les mesures concernant l’utilisation du CPU, la charge moyenne du CPU, l’utilisation de la mémoire, les E/S du réseau, les processus et les sockets toutes les dix secondes. La deuxième collecte les statistiques du système de fichiers toutes les minutes. La troisième collecte le temps de fonctionnement du système toutes les quinze minutes.

  1. Ensuite, activez le module NGINX.
./metricbeat modules enable nginx
  1. Utilisez la commande suivante pour vérifier la configuration de NGINX :
cat modules.d/nginx.yml

Vous devriez voir les configurations suivantes :

# Module: nginx
# Docs: https://www.elastic.co/guide/en/beats/metricbeat/7.x/metricbeat-module-nginx.html

- module: nginx
  #metricsets:
  #  - stubstatus
  period: 10s

  # Nginx hosts
  hosts: ["http://127.0.0.1"]

  # Path to server status. Default server-status
  #server_status_path: "server-status"

  #username: "user"
  #password: "secret"

Ce fichier de configuration indique essentiellement à Metricbeat quel est l’hôte du serveur ainsi que son chemin d’état pour la collecte des métriques NGINX toutes les dix secondes. Cependant, notez qu’il suppose que NGINX n’a pas d’authentification, ce qui n’est pas le cas de votre environnement de laboratoire.

  1. Editez modules.d/nginx.yml pour décommenter username et password. Changez également user par training et secret par nonprodpwd.

Après avoir édité modules.d/nginx.yml, il devrait ressembler à ce qui suit.

# Module: nginx
# Docs: https://www.elastic.co/guide/en/beats/metricbeat/7.10/metricbeat-module-nginx.html

- module: nginx
  #metricsets:
  #  - stubstatus
  period: 10s

  # Nginx hosts
  hosts: ["http://127.0.0.1"]

  # Path to server status. Default server-status
  #server_status_path: "server-status"

  username: "training"
  password: "nonprodpwd"
  1. Chargez les modèles d’index Elasticsearch et les tableaux de bord Kibana. (L’exécution de cette opération peut prendre une minute).
./metricbeat setup
  1. Exécutez Metricbeat pour commencer à collecter des métriques. (L’option -e permet de journaliser dans le terminal au lieu de la sortie syslog/file).
./metricbeat -e
  1. Lancez Kibana pour commencer à explorer les tableaux de bord qui ont été inclus dans le processus de configuration.

Pour lancer Kibana, accédez à votre observability-deployment et cliquez sur le lien Open juste à côté du logo Kibana.

image.png

  1. Ensuite, accédez à Dashboard via le menu principal.

image.png

  1. Recherchez le système et ouvrez la vue d’ensemble de Metricbeat System ECS.

image.png

Vous verrez quelque chose de similaire à la page ci-dessous.

image.png

  1. Cliquez sur Vue d’ensemble de l’hôte en haut du tableau de bord actuel pour voir un tableau de bord avec plus d’informations que Metricbeat a collectées à partir de l’hôte de votre environnement de laboratoire.

image.png

  1. Retournez sur la page des tableaux de bord Kibana, recherchez nginx et ouvrez le tableau de bord ECS [Metricbeat Nginx] Overview.

image.png

Vous verrez quelque chose de similaire à la page ci-dessous.

image.png

  1. Retournez dans les tableaux de bord Kibana et cliquez sur Créer un nouveau tableau de bord pour comparer les données NGINX collectées à partir de Filebeat et Metricbeat.

image.png

Cliquez sur Ajouter depuis la bibliothèque pour commencer à ajouter des visualisations à votre tableau de bord.

image.png

Utilisez la barre de requête pour filtrer par visualisations filebeat nginx et ajoutez les visualisations Filebeat suivantes : Journaux d’accès dans le temps et Codes de réponse dans le temps.

image.png

Maintenant, filtrez par visualisations metricbeat nginx pour ajouter les visualisations Metricbeat suivantes : Taux de requêtes et Taux de lecture/écriture/attente.

image.png

Fermez la boîte de dialogue Ajouter à partir de la bibliothèque et enregistrez votre tableau de bord sous le nom de Filebeat x Metricbeat.

image.png

Vérifiez les différentes informations que vous pouvez obtenir à partir des journaux et des métriques de NGINX dans le tableau de bord que vous venez de créer.

image.png

Notez que vous pouvez utiliser les données de Filebeat et de Metricbeat pour vérifier le nombre de requêtes par seconde, comme le montrent les visualisations Access logs over time et Request Rate. La version open source de NGINX ne fournit pas de métriques sur les codes de réponse, mais vous pouvez utiliser Filebeat pour obtenir ces informations à partir des journaux NGINX, comme vous pouvez le voir dans la visualisation des codes de réponse dans le temps. Avec les journaux NGINX, vous pouvez également vérifier l’emplacement, le système d’exploitation, le navigateur, la durée et de nombreuses autres informations sur les demandes. Cependant, les journaux NGINX ne vous disent pas combien de connexions ont été acceptées, traitées et abandonnées. Dans ce cas, vous pouvez utiliser Metricbeat pour collecter ces informations ainsi que le nombre de connexions actives et le nombre de connexions en lecture, écriture et attente, comme vous pouvez le voir dans la visualisation du taux de lecture / écriture / attente.

Résumé : Dans ce laboratoire, vous avez exploré la facilité avec laquelle vous pouvez obtenir des mesures du système et de NGINX avec Metricbeat et les indexer dans Elasticsearch. Vous avez également exploré les tableaux de bord Kibana et vu avec quelle facilité vous pouvez surveiller ces mesures.