Labs 2 - Logs

Objectif : Dans ce laboratoire, vous explorerez la facilité avec laquelle vous pouvez lire les fichiers journaux NGINX avec Filebeat et les indexer dans Elasticsearch. Vous explorerez également les tableaux de bord Kibana et verrez avec quelle facilité vous pouvez surveiller les journaux NGINX.

  1. Tout d’abord, vous allez télécharger et installer (en fait, juste extraire) Filebeat. 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 Filebeat 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/filebeat/filebeat-7.14.0-linux-x86_64.tar.gz

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

cd filebeat-7.14.0-linux-x86_64
  1. Ensuite, vous allez configurer Filebeat pour qu’il sorte vers 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. Maintenant, éditez le fichier filebeat.yml pour configurer Filebeat afin qu’il sorte vers 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.

Vérifiez si Filebeat peut atteindre votre déploiement.

./filebeat 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. Ensuite, activez le module NGINX.
./filebeat 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/filebeat/7.x/filebeat-module-nginx.html

- module: nginx
  # Access logs
  access:
    enabled: true

    # Set custom paths for the log files. If left empty,
    # Filebeat will choose the paths depending on your OS.
    #var.paths:

  # Error logs
  error:
    enabled: true

    # Set custom paths for the log files. If left empty,
    # Filebeat will choose the paths depending on your OS.
    #var.paths:

  # Ingress-nginx controller logs. This is disabled by default. It could be used in Kubernetes environments to parse ingress-nginx logs
  ingress_controller:
    enabled: false

    # Set custom paths for the log files. If left empty,
    # Filebeat will choose the paths depending on your OS.
    #var.paths:

Le fichier de configuration comporte trois parties. La première et la deuxième partie collectent les journaux d’accès et d’erreurs à partir des chemins par défaut /var/log/nginx/access.log et /var/log/nginx/error.log, respectivement. Elles sont activées par défaut et vous pouvez utiliser var.paths pour modifier les chemins au cas où vos journaux NGINX ne seraient pas stockés dans le chemin par défaut. La troisième partie est désactivée par défaut, mais vous pouvez l’activer dans le cas où vous utilisez ingress-nginx comme contrôleur d’entrée pour votre environnement Kubernetes via NGINX comme proxy de réserve et équilibreur de charge.

  1. Chargez les modèles d’index Elasticsearch, les tableaux de bord Kibana et les pipelines d’ingestion. (L’exécution de cette opération peut prendre une minute).
./filebeat setup --dashboards --index-management --pipelines
  1. Exécutez Filebeat pour commencer à collecter les journaux. (L’option -e permet de journaliser vers le terminal au lieu de la sortie syslog/file).
./filebeat -e
  1. Maintenant, ouvrez une nouvelle fenêtre de terminal et exécutez le script suivant pour simuler la charge sur votre serveur NGINX.
./artificial_load.sh
  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é de l’étiquette Kibana.

image.png

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

image.png

  1. Recherchez nginx et ouvrez le tableau de bord ECS Filebeat Nginx Overview.

image.png

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

image.png

  1. Faites défiler vers le bas et vérifiez quel est le navigateur le plus utilisé. Vous remarquerez que ce devrait être curl car il est utilisé par le script de simulation de charge.

image.png

  1. Maintenant, cliquez sur Nginx access and error logs en haut du tableau de bord actuel pour voir le tableau de bord avec les journaux d’accès et d’erreurs que Filebeat a collecté de NGINX.

image.png

Résumé : Dans ce laboratoire, vous avez exploré la facilité avec laquelle vous pouvez lire les fichiers journaux NGINX avec Filebeat et les indexer dans Elasticsearch. Vous avez également exploré les tableaux de bord Kibana et vu comment vous pouvez facilement surveiller les journaux NGINX.