Monitoring avancé de Linux IaaS dans Azure avec Log Analytics


Cloud, Linux / mardi, mars 12th, 2019

Certains clients ont des besoins de monitoring avancé sur Linux (et Windows), comme des Daemons particuliers, des logs spécifiques, … Tout cela est possible grâce aux Customs Logs.

La source de données Journaux personnalisés dans Azure Monitor permet de collecter des événements à partir de fichiers texte sur des OS Windows et Linux. De nombreuses applications consignent les informations dans des fichiers texte au lieu des services de journalisation standard tels que le journal des événements Windows ou Syslog. Une fois collectées, il est possible d’analyser les données dans des champs individuels des requêtes ou extraire les données lors de la collecte dans des champs individuels.

Cependant, les fichiers journaux à collecter doivent correspondre aux critères suivants:

  • Le journal doit comporter une seule entrée par ligne ou utiliser un horodatage correspondant à l’un des formats suivants au début de chaque entréeAAAA-MM-JJ HH: MM: SS M / J / AAAA HH: MM: SS AM / PM Mon JJ, AAAA HH: MM: SS aaaaaaa HH: mm: ss ddMMyy HH: mm: ss MMM dhh: mm: ss jj / MMM / aaaa: HH: mm: ss zzz aaaa-MM-jjTHH: mm: ssK
  • Le fichier journal ne doit pas autoriser la journalisation circulaire ou la rotation des journaux, où le fichier est remplacé par de nouvelles entrées
  • Le fichier journal doit utiliser le codage ASCII ou UTF-8. Les autres formats tels que UTF-16 ne sont pas pris en charge

Pour rappel, Syslog est un protocole de journalisation des événements commun à Linux. Les applications enverront des messages pouvant être stockés sur la machine locale ou remis à un collecteur Syslog. Lorsque l’agent Log Analytics pour Linux est installé, il configure le daemon Syslog local pour transférer les messages à l’agent. L’agent envoie ensuite le message au moniteur Azure où un enregistrement correspondant est créé.

Azure Monitor prend en charge la collecte des messages envoyés par rsyslog ou syslog-ng, où rsyslog est le daemon par défaut. Le daemon syslog par défaut de la version 5 de Red Hat Enterprise Linux, CentOS et la version Oracle Linux (sysklog) n’est pas pris en charge pour la collecte d’événements syslog. Pour collecter des données syslog à partir de cette version de ces distributions, le daemon rsyslog doit être installé et configuré pour remplacer sysklog. 

Pour configurer le Syslog, rendez-vous dans Log Analytics pour configurer ce que vous désirez.

J’ai « killé » le process XINETD, je lance ensuite une requête dans Log Analytics, et je peux même créer une alerte (mail/sms, Azure Function, Runbook, Webhook, ITSM, …) !

J’ai installé Docker pour voir si cela est pris en compte automatiquement par Log Analytics, cela fonctionne bien !

Ces données sont bien évidemment utilisables au travers de PowerBI, comme je l’avais expliqué précédemment ici.

Je souhaite ensuite récuperer le log DMESG (boot.log), sous Ubuntu il se trouve à l’emplacement /var/log/kern.log. Il convient de le récupérer pour l’injecter dans le Custom Logs de Azure.

Le fichier log est pris en compte lorsque je lance une requête (qui doit inclure le nom de votre Custom Log, ici KERNLOG_CL) !

Voilà comment faire du monitoring avancé de Linux 🙂

Partagez si ça vous plait !