Aller au contenu principal

Un article tagués avec « alloy »

Voir tous les tags

L'observabilité accessible et facile avec kokilog

· 10 minutes de lecture
Antonio M

Qu'est-ce que Kokilog et l'Observabilité

Kokilog est une solution d'aide à l'analyse et à la décision portant sur tous les événements se déroulant sur votre infrastructure.

Concrètement, les événements importants se déroulant sur l'infrastructure du client sont consolidés puis envoyés sur un stockage dédié et sécurisé. Ces mêmes données sont formatées puis présentées au client via un ensemble de tableaux de bord conçu pour faciliter l'analyse et la prise de décision.

Afin de traiter au plus tôt les événements importants, les plus critiques sont notifiés par e-mail au client.

Laissons à Red Hat le soin de présenter l'Observabilité

Comment se matérialise l'apport de l'Observabilité ?

  • une attaque web est-elle en cours ?
  • pourquoi mon système, à court de mémoire, tue-t-il aléatoirement les processus MySQL ?
  • quelles tâches cron ont échoué la nuit dernière ?
  • qui s'est connecté à mon serveur durant les dernières 24 heures et par quel moyen ?
  • quel pays ouvre le plus de connexions vers mon site web ?
  • mes sauvegardes se sont-elles bien déroulées ?
  • mes mails sont-ils bien envoyés ?
  • quels sont les temps de réponse min, moyen ou max de mes sites web ces 20 dernières minutes ?
  • etc.

Autant de questions auxquelles Kokilog apporte une réponse précise et claire.

L'offre OVH Cloud MIS (Managed Infrastructure Service) et l'Observabilité

info

Historiquement, l'offre OVH Cloud MIS ne comprenait pas de service d'observabilité : rien ne permettait au client de suivre les performances et les événements liés à ses infrastructures, ni d'en analyser d'éventuels dysfonctionnements. De surcroît, les clients possédant une infrastructure hautement disponible ne pouvaient accéder qu'aux journaux des services du serveur principal, ceux des serveurs secondaires restant inaccessibles faute de pouvoir s'y connecter. Il y avait donc une véritable carence à combler.

La stack LAMP (Linux, Apache, MySQL et PHP) et l'Observabilité

Historiquement, chez les hébergeurs et infogéreurs, l'observabilité de la stack LAMP se limitait, au mieux, à l'accès à des graphiques de performance Grafana ou Munin.
Exceptionnellement, chez les plus chanceux ou fortunés, un Graylog ou Kibana, couplé à Elasticsearch, offrait l'affichage des événements en mode graphique, accompagné d'une recherche par motifs.
La mise en œuvre de filtres et l'envoi étaient au mieux complexes et laborieux : rsyslog ou syslog-ng pour le « parsing » des journaux de services, Logstash avec Grok pour le découpage selon motif. Bref, le problème de l'agrégation, de la présentation et de l'aide à l'analyse restait entier, car loin d'être accessible ou exploitable par le plus grand nombre.
Le stockage onéreux d'Elasticsearch ne participant pas à améliorer la situation.

En contrepoint des offres d'observabilité Kubernetes, nous avons décidé chez Kokiris de proposer une offre d'observabilité complète et adaptée aux stacks dites classiques, telles que la stack LAMP, mais aussi aux écosystèmes plus modernes tels que Docker et ses orchestrateurs.

Loki et Alloy, le couple « Changeur de jeu »

Apparu en 2018, Loki généralisa l'usage du stockage S3 dès 2020 et ouvrit la porte à une agrégation de logs basée sur un stockage abordable, prérequis à une rétention réellement exploitable. Quant au collecteur Alloy apparu en 2024, celui-ci permit la collecte d'événements et métriques, le scraping Prometheus, le découpage et filtrage selon motif et l'envoi des données vers des cibles telles que Loki ou Mimir.

Une observabilité orientée client et taillée sur mesure

Une fois la définition des stacks techniques normalisée et leur déploiement industrialisé, fournir des tableaux de bord adaptés aux métriques et événements liés aux services fut un processus naturel.

remarque

Nous avons fait le choix dans un premier temps de fournir des tableaux de bord adossés à chaque service important présent sur le système (ex. Apache, PHP, MySQL) ou présentant un intérêt particulier directement exploitable par le client (ex. Oomkill mémoire, Sécurité des connexions, etc.).

L'offre Kokilog dans le détail

  • une analyse agrégée, pratiquement en temps réel, basée sur des dashboards taillés sur mesure
  • un mois minimum de rétention des logs
  • la possibilité d'archiver en lecture seule une copie des logs
  • la possibilité de filtrer sur les événements et critères les plus significatifs ou bien d'effectuer des recherches par mot-clef
  • la corrélation des métriques de performances avec les événements extraits des journaux, afin de réaliser une analyse la plus exhaustive possible
  • une visibilité nouvelle et complète des services
  • des filtres et des dashboards créés par l'équipe technique qui a conçu les stacks d'hébergement et d'infogérance
  • un alerting sur les événements d'exploitation les plus critiques (ex. Oomkill, perte d'accès NFS, slow queries MySQL, erreurs critiques Apache et PHP, etc.)
  • l'agrégation de l'ensemble des événements communs aux infrastructures du client
  • l'ensemble des services déployés sur les serveurs seront représentés dans les tableaux de bord dans un proche avenir
  • la mesure site par site des performances Web et le calcul automatique des SLA
  • l'export des dashboards
  • une solution hautement disponible
  • un stockage sécurisé des logs, conforme HDS et ISO (27001, 27017, 27018, 27701)
  • la possibilité d'étendre l'analyse aux principales applications clientes (prévu pour fin 2026)

Les services actuellement couverts par Kokilog

Couverture non exhaustive — chaque tableau de bord donne également accès aux logs bruts du service concerné.

Services Web

ServiceCouverture
apacheKPIs, erreurs, anomalies, code retour, temps de réponse, localisation géographique, différents top
varnishKPIs, erreurs, anomalies, code retour, temps de réponse, localisation géographique, différents top
haproxyKPIs, erreurs, anomalies, code retour, temps de réponse, codes de traitement, différents top, HA SQL
phpKPIs, erreurs, anomalies, événements
certbot/Let's EncryptKPIs, erreurs, anomalies, événements, domaines, renouvellement

Exemple de tableau de bord

Tableau de bord erreurs Apache

Bases de données

ServiceCouverture
mysqlKPIs, anomalies, slow request, erreur de connexion, de réplication, HA SQL
mariadbKPIs, anomalies, slow request, erreur de connexion, de réplication, HA SQL

Exemple de tableau de bord

Tableau de bord MySQL slow requests

Mail / SMTP

ServiceCouverture
postfixKPIs, anomalies, taille de la file d'attente, statut, taux d'émission, stats de distribution

Système

ServiceCouverture
systemdKPIs, statistiques, sortie de tous les services et units gérés par systemd
cronKPIs, fréquence, anomalies, commandes, réussite ou échec, identité
fail2banKPIs, IP bloquée, débloquée, fréquence, localisation
sauvegardeKPIs, statut, anomalies, statistiques et fréquences
csyncKPIs, statut, anomalies, éléments synchronisés, en attente ou en échec
KernelKPIs, erreurs NFS, Oomkill, anomalies, éléments, informations de sécurité système

Exemple de tableau de bord

Tableau de bord cron

Docker et Orchestrateur de conteneurs

ServiceCouverture
dockerKPIs, statistiques, anomalies, sortie de tous les conteneurs
orchestrateur de conteneurKPIs, statistiques, anomalies
docker nginxKPIs, statistiques web, anomalies
docker traefikKPIs, statistiques web, anomalies
docker OdooKPIs, statistiques web, anomalies

Exemple de tableau de bord

Tableau de bord docker

Connexions et déploiement

ServiceCouverture
ftpKPIs, statistiques, anomalies, connexions, éléments transférés, identités, localisation
sshdKPIs, statistiques, anomalies, connexions, identités, localisation

Exemple de tableau de bord

Tableau de bord de sécurité SSH

Panel

ServiceCouverture
PleskKPIs, statistiques, anomalies, connexions, éléments transférés, identités, localisation, logs

Autres tableaux de bord (dashboard)

  • temps de réponse et code retour par domaine avec calcul de disponibilité (SLA)
  • tableau de bord synthétique de sécurité
  • détection des dépassements mémoire

Exemple de tableau de bord

Tableau de bord SLA par domaine

Questions Fréquemment Posées

Les anomalies de fonctionnement sont-elles notifiées ?

Oui, uniquement par e-mailen voici la liste.

Puis-je ajouter des tableaux de bord (dashboard) ?

Les dashboards personnalisés sont prévus pour l'automne 2026.

J'ai un besoin spécifique à couvrir, comment faire ?

Remontez-le-nous afin que nous en étudions la faisabilité.

Quels sont les canaux de notification disponibles ?

Seuls les e-mails sont actuellement disponibles pour les notifications, ajout de canaux probablement prévu pour l'automne 2026.

Comment y souscrire ?

Contactez le commercial Kokiris ou parlez-en au support Kokiris.

Présentation commerciale : https://www.kokiris.com/services/kokilog

Un couplage IA est-il prévu ?

Oui, prioritairement, car le forensic et l'analyse sont des domaines où l'IA est particulièrement utile.

Kokilog vu de l'intérieur

Un schéma valant mille mots :

Inside kokilog

Déclencheurs et seuils de notification

Ce tableau est susceptible d'être rapidement étoffé.

GroupeAlerteSévéritéForCondition (résumé)
collecte (5m)CollecteServiceContinuSilencieuxwarning10mAucune ligne haproxy/apache/systemd depuis 30 min (ou nomad depuis 2 h)
collecte (5m)CollecteServiceQuotidienSilencieuxwarning30mAucune ligne postfix/cron/resticprofile depuis 26 h
collecte (5m)NoeudMuetcritical15mUn hôte émettait des logs systemd il y a 24 h mais plus rien depuis 1 h
apache (1m)ApacheHigh5xxRatiowarning10mRatio de réponses 5xx > 5 % sur 5 min
apache (1m)ApacheHigh5xxRatioCritical (large uniquement)critical5mRatio de réponses 5xx > 20 % sur 5 min
apache (1m)ApacheLatencyP95Highwarning10mp95 de response_time_us > 5 s sur 5 min
apache (1m)ApacheLogParseErrorswarning15mPlus de 100 lignes en erreur de parsing LogQL sur 5 min
mysql (1m)MysqlBackendDowncritical2mHAProxy logge mysql/... is DOWN sur 5 min
mysql (1m)MysqlReplicationErrorcritical1mMotifs d'erreur de réplication dans le log mysql (slave I/O/SQL, fatal error, connexion master…) sur 10 min
mysql (1m)MysqlTooManyConnectionscritical2mToo many connections dans le log mysql sur 5 min
mysql (1m)MysqlErrorLogHighwarning5mPlus de 5 lignes level=ERROR dans le log mysql sur 10 min
mysql (1m)MysqlFatalErrorcritical0mMotif critique : corruption InnoDB, marked as crashed, OOM, Can't start server sur 5 min
postfix (1m)PostfixDeferredSpikewarning10mPlus de 5 messages deferred sur 15 min
postfix (1m)PostfixErrorswarning5mfatal/panic/error dans le log postfix sur 10 min
oom (1m)OOMKilledcritical0moom-killer invoqué dans les logs kernel sur 10 min
cron (1m)CronJobFailedwarning0mJob cron terminé avec failed with exit status sur 15 min
nfs (1m)NfsServeurInjoignablecritical10mn'obtient plus de reponse du serveur NFS
nfs (1m)NfsServeurInjoignablecritical15msignale des reponses NFS lentes ou absentes du serveur, événements sur 15 minutes sans timeout avere