Technique

Monitoring de l'infrastructure Azure avec Filebeat et Elastic Observability

Pour optimiser vos applications et l'expérience de vos utilisateurs, il n'y a pas de secret : vous devez pouvoir connaître l'état interne de votre écosystème d'applications. Elastic Cloud sur Microsoft Azure vous permet d'accéder à Elastic Observability, une solution qui vous aide à monitorer votre infrastructure et à déterminer les interdépendances de chaque signal grâce à un éventail de ressources déployables en quelques minutes.

Notre service géré Elasticsearch sur Azure vous offre de nombreux avantages, tels que les mises à niveau en un clic, la sécurité activée par défaut, et bien plus encore. Résultat : vos opérations informatiques sont simplifiées. Par ailleurs, Elastic Observability vous aide à unifier vos logs, vos indicateurs et vos traces APM à grande échelle, pour que vous puissiez facilement évaluer l'état actuel de votre système. Vous pouvez également exploiter le Machine Learning pour détecter des anomalies, ainsi que l'alerting pour savoir ce qui cloche. Ainsi, vous réagissez rapidement aux événements qui se produisent dans votre environnement.

En matière de monitoring Azure, Elastic Observability peut :

  • monitorer vos logs d'activité, de connexion et d'audit à l'aide du module Azure de Filebeat avec Azure Event Hubs ;
  • analyser vos indicateurs de calcul, de conteneur, de stockage de base de données, de facturation et de visibilité sur les applications à l'aide du module Azure de Metricbeat.

Dans cet article, nous allons étudier l'observabilité Azure avec la Suite Elastic. Nous vous encourageons à suivre les différentes étapes dans votre propre déploiement. Si vous n'en avez pas, consultez l'article sur la prise en main d'Elastic Cloud sur Microsoft Azure. Pour vous inscrire à Elastic Cloud (le service géré d'Elasticsearch), rien de plus simple : passez par la Market Place Azure. Celle-ci vous apportera une grande flexibilité et vous permettra de tirer parti de la facturation intégrée.

L'observabilité Azure avec Elastic

Elastic Observability offre une solution clé en main pour le monitoring Azure. Filebeat est équipé d'un module Azure prêt à l'emploi, qui vous permet d'ajouter rapidement des agents de transfert légers à votre écosystème. Une fois ceux-ci installés, vous serez en mesure de collecter les événements de log et de les transférer vers Elasticsearch ou Logstash afin de les indexer. Vous pourrez ensuite analyser vos données et les représenter de manière pertinente dans des visualisations et des tableaux de bord Kibana préintégrés. En bref, vous êtes opérationnel rapidement.

À nous de jouer !

Ingestion des logs Azure

Dans une optique de simplicité, des instructions relatives à l'installation de Filebeat sont proposées directement dans Kibana. Nous allons les suivre pour déployer Filebeat et ingérer les logs d'activité, de connexion et/ou d'audit Azure évoqués précédemment.

Téléchargement et installation de Filebeat

À compter de la version 7.10, sur la page d'accueil de Kibana, cliquez sur Install Filebeat (Installer Filebeat).

Si vous n'avez pas encore mis votre déploiement à niveau vers la version 7.10, prenez le temps de lire notre documentation sur la mise à niveau des versions. Les mises à niveau sont conçues pour s'exécuter de façon automatique tout en atténuant les indisponibilités imprévues.

Pour commencer, cliquez sur le menu de navigation, puis sur Home (Accueil).

Cliquez sur Add data (Ajouter des données).

Vous accédez ainsi au menu du même nom. Sélectionnez Azure logs (Logs Azure).

Suivez les étapes indiquées pour installer Filebeat sur votre système. Si vous souhaitez en savoir davantage sur Filebeat, vous pouvez cliquer sur View exported fields (Voir les champs exportés) et Learn more (En savoir plus).

Vous pouvez laisser cette page ouverte, car nous y reviendrons après avoir procédé aux configurations suivantes.

Configuration de Filebeat

Une fois Filebeat téléchargé et installé pour votre système, vous allez modifier le fichier filebeat.yml. Sur un système Linux, on le trouve généralement sous /etc/filebeat.

L'avantage d'exécuter ce processus à partir de Kibana, c'est que vous serez guidé pour ajouter les entrées nécessaires à ce fichier afin de communiquer avec votre déploiement Elastic Cloud. Vous devez modifier deux variables : cloud.id et cloud.auth.

Pour ceux d'entre vous qui utilisent une Suite Elastic autogérée sur leur compte Azure, veuillez consulter le guide de démarrage rapide de Filebeat sur la connexion à la Suite Elastic.

Conseil de pro : vous ne savez pas où obtenir ces valeurs ? Pour en savoir plus, consultez notre documentation.

Création d'un hub d'événements

Dans le cadre de cette procédure, nous aurons besoin de deux éléments : d'une part, Azure Event Hubs pour les logs d'activité, de connexion et/ou d'audit, et d'autre part, un accès à un stockage Blob. Si aucun hub d'événements n'est configuré sur votre machine, consultez la rubrique Démarrage rapide : Créer un hub d’événements avec le portail Azure pour en savoir plus. Vous devrez ensuite vous reporter aux instructions sur l'envoi des logs d'activité au hub d'événements.

Lorsque vous créez un hub d'événements, vous pouvez ajouter celui-ci à un espace de nom existant (si vous en avez un), ou en créer un tout nouveau, comme nous allons le voir ici.

À partir du service Event Hubs de votre portail Azure, cliquez sur Add (Ajouter).

Sélectionnez un groupe de ressources, puis donnez-lui un nom. Par exemple : elastic-eventhub.

Choisissez le niveau d'emplacement et de tarification, puis poursuivez en ajoutant des étiquettes facultatives si vous le souhaitez, et enfin cliquez sur Create (Créer).

Cliquez sur Shared access policies (Polices d'accès partagé).

Cliquez sur la police par défaut qui s'affiche (RootManageSharedAccessKey). Puis, cliquez pour copier la chaîne de connexion. Collez cette chaîne dans un endroit sécurisé, car celle-ci servira à paramétrer le fichier de configuration du module Azure de Filebeat : azure.yml.

Accédez à Activity log (log d'activité), puis cliquez sur Diagnostics settings (Paramètres de diagnostic).

Cliquez sur Add diagnostic setting (Ajouter un paramètre de diagnostic), puis nommez ce paramètre elastic-diag.

Sélectionnez les logs de votre choix, puis choisissez Stream to an event hub (Envoyer vers un hub d'événements).

Choisissez l'espace de nom elastic-eventhub, sélectionnez l'option (Create in selected namespace) (Créer dans l'espace de nom sélectionné) pour le nom du hub d'événements, et enfin, sélectionnez la police RootManageShareAccessKey.

Un hub d'événements appelé insights-activity-logs sera créé et s'affichera sous l'espace de nom elastic-eventhub. Nous utiliserons le fichier de configuration azure.yml.

Cliquez sur Save (Enregistrer). Puis, si vous le souhaitez, revenez à elastic-eventhub et observez les indicateurs d'événement qui commencent à affluer.

Activation du module Azure

Pour activer le module Azure, une seule commande suffit. Celle-ci est présentée en troisième sur la page de Kibana (là où nous avons commencé).

Exécutez cette commande pour que le fichier de configuration azure.yml devienne actif et que la communication avec votre abonnement Azure soit effective.

Sur Linux, la commande d'activation du module est la suivante :

sudo filebeat modules enable azure

Pour répertorier tous les modules, en affichant ceux qui sont activés en premier, exécutez :

sudo filebeat modules list

Pour désactiver le module, exécutez simplement :

sudo filebeat modules disable azure

Configuration du module Azure

Après avoir activé le fichier azure.yml, vous devez le configurer. Sur Linux, on trouve généralement ce fichier dans le répertoire /etc/filebeat/modules.d. Si un module n'est pas activé, il y aura une extension .disabled dans ce répertoire également.

Par défaut, seuls les logs d'activité (activitylogs) sont activés dans le module Azure, comme l'indique l'expression enabled: true.

Pour configurer les logs d'audit (auditlogs) et les logs de connexion (signinlogs), vous devez avoir le rôle d'administrateur global ou d'administrateur de sécurité de votre compte Azure. Vous pouvez consulter l'instruction sur l'exportation des logs d'audit et de connexion vers le hub d'événements pour en savoir plus. Vous pouvez les activer en changeant enabled: false sur true.

Important : si vous ne disposez pas des permissions suffisantes pour configurer les logs d'audit et de connexion, alors les modules indiqués dans le fichier azure.yml doivent rester désactivés.

L'heure est venue d'ajouter les informations au fichier de configuration azure.yml. Ce que vous devez faire, c'est ajouter les détails des entrées eventhub et connection_string enregistrées précédemment, puis les détails relatifs au compte de stockage.

Conseil de pro : le nom et la clé du compte de stockage sont indiqués dans le compte de stockage que vous souhaitez utiliser. Cliquez sur Access keys (Clés d'accès). Vous pouvez également consulter la rubrique Gérer les clés d’accès au compte de stockage de Microsoft Azure si vous avez besoin d'aide.

En partant du principe que vous configurez uniquement les logs d'activité, votre fichier de configuration devrait ressembler à ce qui suit :

- module: azure 
  # Tous les logs 
  activitylogs: 
    enabled: true 
    var: 
      # nom du hub d'événements contenant les logs d'activité 
      eventhub: "insights-activity-logs" 
      # nom du groupe d'utilisateurs ayant accès au hub d'événements 
      consumer_group: "$Default" 
      # chaîne de connexion nécessaire pour communiquer avec Event Hubs       
      connection_string: "<clé de votre chaîne de connexion>" 
      # le compte de stockage  
      storage_account: "<nom de votre stockage>" 
      # la clé de votre compte de stockage 
      storage_account_key: "<clé de votre compte>"

Pour en savoir plus sur cette configuration, consultez la documentation relative à la configuration d'un module. Le compte de stockage et la clé sont nécessaires pour maintenir l'ordre des logs, dans le cas où le service Filebeat s'arrêterait.

Conseil de pro : la variable eventhub correspond au nom de l'instance, plutôt qu'à l'espace de nom Event Hubs. Les espaces de nom Event Hubs constituent le conteneur de regroupement de plusieurs hubs d'événements. Aussi, la facturation se fait au niveau de l'espace de nom. Veuillez vous reporter au Forum Aux Questions (FAQ) sur Event Hubs sur le site docs de Microsoft pour en savoir plus.

Paramétrage et lancement de Filebeat

Maintenant que nous avons configuré Filebeat, un hub d'événements et un compte de stockage, il est temps de nous lancer en paramétrant Filebeat et en le démarrant. Revenons sur la page Kibana où nous avons téléchargé et configuré Filebeat. La quatrième étape présente les commandes nécessaires à ce stade.

Étant donné que nous avons utilisé RPM pour installer Filebeat en tant que service, nous allons également l'utiliser pour l'exécuter en tant que service. Selon le type de système dont vous vous servez, la procédure peut être légèrement différente. Consultez la rubrique Filebeat et systemd pour en savoir plus sur l'exécution de Filebeat en tant que service pour les packages DEB et RPM, ou reportez-vous à la rubrique de démarrage rapide sur Filebeat si vous utilisez une plateforme différente.

Nous devons tout d'abord exécuter l'étape setup, qui permettra de charger différents éléments, comme des actifs, des index et des visualisations prédéfinis, lesquels sont mis à profit par les tableaux de bord Azure Cloud préconçus. La commande setup exploite l'ensemble des intégrations prêtes à l'emploi Elastic/Azure. Aussi, inutile d'élaborer votre propre intégration : les intégrations proposées sont entièrement personnalisables. Vous pouvez également tirer profit de celles développées par la communauté.

Pour exécuter l'étape de paramétrage :

sudo filebeat setup

Vous pouvez également exécuter la commande setup avec un -e, qui renverra les données de logging à l'écran plutôt qu'au syslog, ce qui vous permettra de vérifier les étapes accomplies.

sudo filebeat setup -e

Ensuite, démarrez le service :

sudo service filebeat start

Pour vérifier le statut :

sudo service filebeat status

Pour arrêter Filebeat :

sudo service filebeat stop

Pour vérifier et valider dans une boîte de dialogue que le service s'exécute correctement :

sudo journalctl -u filebeat -f

Visualisation dans Kibana

Maintenant que les logs d'activité sont collectés par le hub d'événements, puis envoyés à Elasticsearch par Filebeat, nous pouvons les visualiser dans Kibana.

En supposant que la page dans laquelle nous avons entamé la configuration de Filebeat soit toujours ouverte, vous devriez pouvoir vérifier les données avec l'option Check data (Vérifier les données), puis cliquer sur Azure logs dashboard (Tableau de bord des logs Azure) pour accéder au tableau de bord.

blog-azure-log-mon-11.jpg

Tadam ! Ingestion, analyse et visualisation des logs en deux temps trois mouvements !

Conclusion

Nous espérons que cette ressource vous a été utile pour apprendre à manipuler Filebeat, ingérer des logs d'activité Azure à l'aide d'un hub d'événements et monitorer votre déploiement Azure avec des tableaux de bord prêts à l'emploi.

Prochaine étape : collecter vos indicateurs Azure de calcul, de conteneur, de stockage de base de données, de facturation et de visibilité sur les applications à l'aide du module Azure de Metricbeat.

Envie de poser une question ou d'apporter votre pierre à l'édifice ? Prenez part au groupe de discussion sur Elastic Observability. Visitez également notre hub de formations Elastic : vous y trouverez également des vidéos de prise en main et des ressources de formation très utiles !