J'ai déjà Prometheus, mais j'ai toujours besoin de Nightingale ?

En ce qui concerne la surveillance actuelle, Prometheus est sans aucun doute le projet le plus populaire. Si vous surveillez uniquement les machines et les périphériques réseau, Zabbix peut toujours rivaliser. Si vous souhaitez surveiller non seulement les appareils mais également les applications, Kubernetes et autres infrastructures, Prometheus est le meilleur. choix. Certains projets open source prennent même en charge l'exposition des indicateurs du protocole Prometheus, tels que les nouvelles versions de Zookeeper, les nouvelles versions de RabbitMQ, Nginx vts, etc. L'influence de Prométhée est évidente.

Le mot Prometheus mentionné dans de nombreux scénarios n'est en fait pas seulement le projet Prometheus lui-même, mais l'écosystème Prometheus, y compris les formats d'indicateurs, les protocoles de transmission, les langages de requête, divers collecteurs d'exportateurs, divers stockages compatibles définis par Prometheus, etc.

Dans l'écosystème Prometheus, divers exportateurs peuvent être utilisés pour la collecte, VictoriaMetrics peut être utilisé pour le stockage et Grafana peut être utilisé pour visualiser des images. Cela semble être très complet. Pourquoi existe-t-il un autre projet open source appelé "Nightingale" qui prétend le faire. être en partenariat avec Prometheus ? Cet article tente d’en explorer un ou deux.

Introduction au Rossignol

Un extrait de l'introduction du projet Nightingale sur le site officiel de Nightingale :

Nightingale Monitor est un outil d'observation et d'analyse cloud natif open source qui adopte le concept de conception tout-en-un. Il intègre la collecte de données, la visualisation, la surveillance et l'alarme, ainsi que l'analyse des données. Il est étroitement intégré à l'écosystème cloud natif et. fournit aux entreprises des fonctionnalités prêtes à l’emploi, des capacités de surveillance, d’analyse et d’alarme. Nightingale a publié la version v1 sur github le 20 mars 2020 et a accumulé plus de 100 versions.

Nightingale a été initialement développé et open source par Didi, et a été donné au Comité de développement open source de la Fédération informatique de Chine (CCF ODC) le 11 mai 2022, devenant ainsi le premier projet open source à recevoir des dons après la création du CCF ODC. L'équipe R&D principale de Nightingale est également l'équipe R&D d'origine du projet Open-Falcon Depuis 2014 (Open-Falcon était open source en 2014), cela a pris 10 ans, juste pour faire du bon travail de surveillance.

Après avoir lu l'introduction du projet, je peux seulement savoir que Nightingale est un système de surveillance. Quelles sont les différences entre lui et Prometheus ? Je ne l'ai pas encore vu. Ne vous inquiétez pas, examinons d'abord le problème de Prometheus.

Problème de Prométhée

La collecte, le stockage et la visualisation des images de Prometheus ont tous été très bien résolus. Il s’agit simplement d’une alarme. Pour certaines entreprises, cela peut présenter les problèmes suivants :

  • Une entreprise possède de nombreux ensembles de Prometheus et les règles sont dispersées dans plusieurs yamls, ce qui n'est pas pratique à gérer.
  • J'espère disposer d'une interface utilisateur facile à utiliser et isolée des autorisations qui ouvre les capacités de surveillance à toutes les équipes de l'entreprise et leur permet de se servir elles-mêmes.
  • Utiliser directement Promql pour interroger des données et configurer des règles d'alarme est un peu exigeant. Certaines bibliothèques de règles et instructions de requête peuvent-elles être intégrées afin que les connaissances puissent être accumulées et que les utilisateurs ordinaires puissent les utiliser immédiatement ?
  • On espère que les règles d'alarme pourront être plus flexibles, par exemple en prenant en charge différentes règles avec des temps d'efficacité différents, et en fournissant des mécanismes d'auto-réparation d'alarme intégrés, etc.

C'est pour ça que Nightingale a été fait. En fait, l'ancienne version de Nightingale était autonome et dérivée d'Open-Falcon. Cependant, à mesure que Prometheus devenait populaire, Nightingale a commencé à adopter l'écosystème Prometheus. Nightingale peut être considéré comme un moteur d'alarme pour les données de séries chronologiques . Bien entendu, Nightingale offre également la possibilité d'afficher des graphiques et des tableaux de bord, et peut même afficher les données d'Elasticsearch, Loki et TDEngine. Cependant, la situation actuelle est que les capacités d'alarme de Nightingale sont les plus utilisées par tout le monde, et la plupart des tableaux de bord utilisent toujours Grafana. L'architecture typique utilisée par Nightingale est la suivante :

Nightingale peut-il remplacer complètement Prométhée ?

En fait, il ne s’agit pas d’une relation de substitution, mais d’une relation synergique. Selon Nightingale, Prometheus est principalement utilisé comme bibliothèque de synchronisation. En plus de Prometheus, vous pouvez également choisir d'autres bibliothèques de synchronisation telles que VictoriaMetrics, Thanos, M3DB et TDEngine. Nightingale est uniquement utilisé comme moteur d'alarme pour une bibliothèque de séries chronologiques. Il peut être connecté à Prometheus ou à d'autres bibliothèques de séries chronologiques. Les utilisateurs peuvent gérer de manière uniforme les règles d'alarme dans Nightingale, porter des jugements sur les données anormales, générer des événements d'alarme et effectuer des notifications de distribution ultérieures. . Alarme d'auto-guérison et autre logique.

De plus, si vous disposez de plusieurs salles informatiques, les bibliothèques de synchronisation sont dispersées dans plusieurs salles informatiques, et le réseau entre les salles informatiques n'est pas bon, et vous souhaitez que la salle informatique périphérique soit autonome sans affecter les alarmes même si le réseau est fragmenté. , Nightingale convient également très bien. Dans ce cas, Nightingale appelle cela le mode de déploiement de la salle informatique périphérique. La bibliothèque de synchronisation et le moteur d'alarme sont déployés vers le bas. Peu importe si le réseau est déconnecté. Lorsque le réseau est bon, les données peuvent être visualisées uniformément au centre. et les règles d'alarme peuvent être gérées de manière uniforme. Le schéma d'architecture est le suivant :

Dans l'exemple ci-dessus, l'architecture de déploiement de trois salles informatiques est démontrée. La liaison réseau entre la salle informatique A et la salle informatique centrale est très bonne, mais la liaison réseau entre la salle informatique B et la salle informatique centrale n'est pas très bonne. la salle informatique dispose d'une bibliothèque de chronométrage. Par conséquent, le moteur d'alarme Nightingale de la salle informatique centrale traite directement les bibliothèques de synchronisation de la salle informatique centrale et de la salle informatique A. La bibliothèque de synchronisation de la salle informatique B est traitée par le moteur d'alarme de la salle informatique B, c'est-à-dire n9e-edge. dans la figure, n9e-edge sera traité à partir du Nightingale dans la salle informatique centrale, synchronisera les règles d'alarme, puis effectuera des jugements d'alarme sur la bibliothèque de synchronisation de la salle informatique locale.

De cette façon, même si le réseau entre la salle informatique B et la salle informatique centrale est séparé, parce que les règles d'alarme ont été synchronisées dans la mémoire n9e-edge, le moteur d'alarme de la salle informatique B peut toujours traiter le travail de détermination d'alarme du normalement deux bibliothèques de timing de la salle informatique B. Amélioration de la haute disponibilité globale du système de surveillance.

Quelle scène utilise Nightingale au lieu de Prométhée ?

La clé dépend de vos points faibles. Si vous utilisez un seul point de Prometheus à ce stade, votre problème peut très bien être résolu. Dans n'importe quelle entreprise, la migration des outils techniques rencontrera diverses résistances.

Si vous rencontrez des problèmes dans la gestion des règles d'alarme et la haute disponibilité des alarmes dans les salles informatiques périphériques, vous pouvez essayer Nightingale. Tout outil a ses propres avantages et inconvénients, choisissez en fonction du scénario.

Nightingale peut-il recevoir des alarmes de divers systèmes de surveillance et fournir une notification d'événement unifiée ?

Certains amis ont vu que Nightingale peut se connecter à diverses bibliothèques de synchronisation, émettre des jugements d'alarme, générer des événements d'alarme et les distribuer, et ils ont pensé : les alarmes générées par mes autres systèmes de surveillance peuvent-elles également être envoyées par Nightingale ? De cette manière, les problèmes tels que les modèles de notification d'alarme, les contacts, les autorisations de connexion par authentification, etc. peuvent être gérés de manière uniforme.

En fait, ce n'est pas possible. Il s'agit d'une exigence typique d'événement OnCall. Il collecte les alarmes de divers systèmes de surveillance (tels que Prometheus, Zabbix, Open-Falcon, Blue Whale, diverses surveillances de nuages, ElastAlert, etc.) et effectue une convergence d'alarmes unifiée et une réduction du bruit, une planification, réclamation et mise à niveau, distribution flexible en fonction des conditions, etc. Si vous voulez bien faire cela, cela vaut la peine d'utiliser un produit distinct. Appelons ce produit le produit OnCall. La relation entre le produit OnCall et chaque système de surveillance est la suivante :

20240509115353

Autrement dit : le système de surveillance (y compris divers types de surveillance cloud) se concentre sur la résolution des problèmes de collecte de données, de stockage, d'analyse visuelle et de détermination des alarmes, et est responsable de la génération des événements d'alarme. Les événements d'alarme sont ensuite transmis au système. Centre OnCall pour le traitement, et le centre OnCall est responsable de la convergence et de la réduction du bruit, de la suppression et du blindage, du filtrage et de la distribution des événements d'alarme et de nombreuses autres questions.

Les produits Good OnCall sont des produits commerciaux, tels que PagerDuty, FlashDuty, Opsgenie, etc. Vous pouvez les rechercher vous-même sur Google pour trouver ce dont vous avez besoin.

Quelles fonctions plus intéressantes Nightingale a-t-il que Prométhée ?

Ici, je vais prendre quelques schémas du système et donner une brève introduction.

20240509115411

20240509115426

Nightingale ne collecte pas de données et peut être connecté à différents collecteurs du marché. Parmi eux, la connexion entre le collecteur categraf et Nightingale est la plus fluide. Si vous utilisez Categoryf comme collecteur, vous pouvez collecter diverses méta-informations de la machine et. créer une couche machine légère.

20240509115440

Nightingale possède des capacités d'auto-réparation d'alarme intégrées, c'est-à-dire que lorsqu'une alarme se produit, il peut exécuter automatiquement un script sur la machine en alarme. Vous pouvez écrire une logique de réparation automatisée dans le script.

20240509115501

Nightingale dispose d'une vue d'indicateur intégrée, qui sera publiée dans la version v7 beta3. Il fournira également de nombreux promql intégrés couramment utilisés, il suffit de cliquer pour interroger, et il sera extrêmement convivial pour les utilisateurs novices.

résumé

Nous avons déjà Prometheus, pourquoi avons-nous besoin de Nightingale ? Cet article est une réponse exploratoire à cette question. J'espère que cela vous aidera, merci à tous d'avoir lu.

Les lycéens créent leur propre langage de programmation open source en guise de cérémonie de passage à l'âge adulte - commentaires acerbes des internautes : S'appuyant sur la défense, Apple a publié la puce M4 RustDesk. Les services nationaux ont été suspendus en raison d'une fraude généralisée. À l'avenir, il envisage de produire un jeu indépendant sur la plateforme Windows Taobao (taobao.com) Redémarrer le travail d'optimisation de la version Web, destination des programmeurs, Visual Studio Code 1.89 publie Java 17, la version Java LTS la plus couramment utilisée, Windows 10 a un part de marché de 70 %, Windows 11 continue de décliner Open Source Daily | Google soutient Hongmeng pour prendre le relais ; l'anxiété et les ambitions de Microsoft ont fermé la plate-forme ouverte ;
{{o.name}}
{{m.nom}}

Je suppose que tu aimes

Origine my.oschina.net/morflameblog/blog/11105690
conseillé
Classement