Blog

DNSmetrics : collecte unifiée de mesures à partir de plusieurs fournisseurs DNS

par Max Timtchenko 18 avril 2017 | 4 minutes de lecture

Nous sommes ravis de vous annoncer que nous avons ouvert l'accès à l'outil que nous utilisons pour collecter et transformer les métriques de nos fournisseurs DNS gérés. Nous utilisons Métriques DNS pour fournir des données dans un format standard aux systèmes de surveillance et d'alerte de notre équipe SRE, et nous espérons que cela pourra également vous être utile.

Le rôle central du DNS

Chez PagerDuty, nous nous soucions beaucoup de la fiabilité et de la disponibilité de notre service. La disponibilité est une exigence clé dans la conception de notre infrastructure interne, mais les mêmes exigences doivent également être appliquées aux infrastructures qui ne nous appartiennent pas. PagerDuty s'appuie sur des fournisseurs tiers pour certains des composants essentiels de l'infrastructure, et aujourd'hui nous parlerons de l'un d'entre eux : le DNS.

Le système de noms de domaine est chargé de traduire les noms de domaine, comme pagerduty.com, en adresses réseau de serveurs pouvant répondre aux requêtes API et applications Web. Étant donné que les adresses peuvent changer, la plupart des systèmes (et presque tous les humains) utilisent des noms. Ainsi, si le DNS n'est pas disponible pour notre domaine, nos services deviennent inaccessibles pour la majorité de nos clients. Il est donc essentiel de disposer d'un DNS disponible et correctement configuré.

Les fournisseurs DNS en sont conscients et maintiennent un réseau mondial de systèmes hautement disponibles. Toutefois, les grands systèmes ne sont pas infaillibles et la nature du DNS le rend particulièrement vulnérable aux attaques DoS. En fait, de nombreux grands noms du secteur des fournisseurs de DNS gérés ont connu au moins une interruption de service majeure au cours des dernières années (quelques exemples : 1 , 2 , 3 , 4 ). PagerDuty utilisait un seul fournisseur dans le passé, mais nous ne le considérons plus comme suffisamment robuste. Actuellement, nous nous appuyons sur deux fournisseurs pour nos besoins DNS, en configuration actif-actif (chaque fournisseur est responsable d'environ la moitié de notre trafic de production).

Pourquoi nous avons créé DNSmetrics et comment cela aide

La mise en place d'une surveillance et d'alertes sur nos deux fournisseurs DNS s'est avérée difficile. Bien que chaque fournisseur dispose d'aperçus et de rapports disponibles dans son interface d'administration, les rapports diffèrent d'un fournisseur à l'autre : sélection des mesures exposées, emplacement des mêmes données dans différentes interfaces, intervalle de temps utilisé pour les moyennes et les rapports, etc. Il a fallu plus d'efforts et différents écrans pour obtenir un bon aperçu de l'état du DNS sur nos fournisseurs et zones que ce que nous souhaitions, et nous voulions utiliser nos propres outils pour les capacités d'alerte (en particulier autour de l'interaction des deux fournisseurs, par exemple pour vérifier qu'aucun des deux fournisseurs ne reçoit plus d'une certaine part de notre trafic total).

Nous avions besoin d'une meilleure solution et aucune n'était disponible, nous en avons donc créé une. Il s'agit d'un service qui se connecte à nos deux fournisseurs DNS à l'aide de leurs API et extrait les métriques qui nous intéressent. Ces métriques sont normalisées dans le même espace de noms et les mêmes unités, et émises dans un format statsd standard pour être ingérées dans n'importe quel système de surveillance de séries chronologiques.

Au lieu de deux interfaces administratives différentes et de plusieurs écrans sur chacune d'elles, nous disposons désormais d'un tableau de bord unique qui fournit un aperçu de la santé de notre DNS agrégé sur tous les fournisseurs et zones :

De plus, maintenant que nous avions les mesures de séries chronologiques en un seul endroit, nous pouvions appliquer toute la puissance expressive des requêtes de séries chronologiques (moniteurs DataDog, dans notre cas) pour configurer des alertes flexibles sur notre DNS de manière globale sur tous les fournisseurs, par fournisseur et par zone, selon les besoins.

La surveillance des fournisseurs DNS gérés est un problème qui n'est en aucun cas propre à l'équipe SRE de PagerDuty, nous avons donc décidé de DNSmetrics open source Actuellement, il ne prend en charge que les fournisseurs que nous utilisons, mais l'extension de la couverture à d'autres fournisseurs devrait être simple à condition qu'ils disposent d'une API REST qui expose les métriques couramment utilisées. Essayer DNSmetrics est aussi simple que exécuter un conteneur Docker , et nous espérons que vous lui donnerez un tour et que vous lui trouverez peut-être également une place dans votre environnement.