Une application, un système, un produit ou un processus comporte plusieurs mesures de performances importantes qui visent à vous donner un aperçu de l'état et de la force de ce système. L'un de ces rôles métriques importants est la manière dont un paramètre ou un point de données particulier fonctionne au fil du temps. Que faire si vous souhaitez surveiller la latence de la base de données en secondes, le nombre de hits sur un point de terminaison d'API dans une période donnée, ou simplement le temps nécessaire pour exécuter un processus particulier? Un seul point de données capturé à ce moment ne fournit pas beaucoup d'informations à lui seul. Cependant, retracer les mêmes points au fil du temps révèle beaucoup plus, comme l'impact des changements sur une métrique particulière.
Par exemple, si vous voulez savoir comment une nouvelle conception d'interface utilisateur ou un nouveau document d'API affecte le nombre d'appels d'API, ou comment un correctif / une mise à niveau de logiciel particulier a affecté la latence de la base de données, utilisez la valeur actuelle plus tôt. Comparez avec la valeur. Cela aide à fournir ces informations avant que les changements ne soient introduits. C'est la valeur des données de séries chronologiques.
Graphite a été développé sur la base d'un outil open source qui surveille les données de séries chronologiques et affiche des informations sur un tableau de bord facile à lire. Hosted Graphite, un produit de MetricFire, exécute Graphite, offrant une fiabilité et une facilité d'utilisation difficiles à réaliser en interne. Vous pouvez maintenant vous inscrire pour un essai gratuit de Metric Fire et commencer à envoyer vos métriques dès aujourd'hui. Consultez ce guide pour installer Graphite sur Ubuntu pour découvrir ce dont vous avez besoin pour le faire vous-même.
Il existe plusieurs outils dont le but principal est de collecter, surveiller et fournir des informations utiles à l'aide de données chronologiques. Un exemple d'un tel outil est le graphite.
Graphite est un outil de surveillance et de création de graphiques à l'échelle de l'entreprise qui fonctionne aussi bien sur une infrastructure cloud que sur du matériel bon marché. Les entreprises peuvent utiliser Graphite pour suivre les performances des applications, des sites Web, des serveurs réseau et des services commerciaux. Il s'agissait d'un produit pionnier dans la génération d'outils de surveillance. Avec l'avènement de Graphite, le partage, la récupération, le stockage et la visualisation des données de séries chronologiques n'a jamais été aussi simple.
Fondamentalement, Graphite fait deux choses. Enregistre les données de séries chronologiques de nombres et rend un graphique de ces données à la demande. Graphite lui-même ne collecte pas de données, donc pour les collecter, vous devez les collecter avec un minimum d'effort et de modifications de code. Actuellement, il existe de nombreux outils qui peuvent être utilisés pour envoyer des données au graphite. Une liste de ces outils se trouve sur la page de documentation graphite (https://graphite.readthedocs.io/en/latest/tools.html).
La répartition de l'architecture Graphite montre qu'elle se compose de trois composants logiciels:
** Carbon ** - Graphite ne collecte pas de données, mais utilise le composant Carbon, un démon Twisted qui écoute passivement les données de séries chronologiques.
** Whisper ** - Il s'agit d'une bibliothèque de base de données simple pour stocker des données de séries chronologiques (la conception est similaire à RRD)
** Graphite WebApp ** - Django WebApp qui rend des graphiques à la demande en utilisant Cairo.
Dans le cas d'utilisation simplifié de Graphite, vous devez écrire une application qui collecte des données de séries chronologiques numériques (ces données sont généralement collectées par un autre outil ci-dessus) qui vous intéresse. L'application envoie ensuite les données au backend de traitement de Graphite, Carbon, qui stocke les données dans la base de données dédiée de Graphite, Whisper. Les données peuvent ensuite être visualisées via l'interface Web de Graphite, Graphite Web App.
Après vous avoir donné un aperçu de Graphite, le reste de cet article se concentrera spécifiquement sur la façon d'installer Graphite sur le système d'exploitation Ubuntu.
Installer Graphite à partir de la source peut être un processus complexe, mais heureusement, il existe Docker à cette époque! Si vous utilisez docker pour installer l'image Graphite, vous pouvez lancer et exécuter Graphite en quelques minutes seulement. Cela permet une installation rapide et très portable. Pour installer Graphite à l'aide de docker, exécutez simplement la commande suivante:
docker run -d\
--name graphite\
--restart=always\
-p 80:80\
-p 2003-2004:2003-2004\
-p 2023-2024:2023-2024\
-p 8125:8125/udp\
-p 8126:8126\
graphiteapp/graphite-statsd
Cette commande lance un conteneur nommé graphite, qui contient les composants suivants:
Notez également que si les ports correspondants répertoriés dans la commande ci-dessus sont déjà occupés par l'hôte, vous êtes libre de modifier le mappage des ports de conteneur vers n'importe quel port d'hôte. Il n'est pas non plus obligatoire de mapper tous les ports. Par exemple, l'utilisation de la commande ci-dessus signifie que le composant Grafana ne sera exposé sur aucun port. Cela vous oblige à utiliser l'application Web Graphite comme tableau de bord frontal pour votre application. Si vous souhaitez utiliser Grafana comme tableau de bord frontal, utilisez la commande suivante à la place.
docker run -d\
--name graphite\
--restart=always\
-p 80:80\
-p 81:81\
-p 2003-2004:2003-2004\
-p 2023-2024:2023-2024\
-p 8125:8125/udp\
-p 8126:8126\
hopsoft/graphite-statsd
Cela configure le port Grafana 80 et le port Graphite 81. La commande précédente mappe Graphite au port 80. Une représentation détaillée des ports mappés se trouve dans le tableau suivant.
Host | Container | Service |
---|---|---|
80 | 80 | nginx - grafana |
81 | 81 | nginx - graphite |
2003 | 2003 | carbon receiver - plaintext |
2004 | 2004 | carbon receiver - pickle |
2023 | 2023 | carbon aggregator - plaintext |
2024 | 2024 | carbon aggregator - pickle |
8125 | 8125 | statsd |
8126 | 8126 | statsd admin |
Après vous être connecté, mettez à jour les informations de connexion du compte utilisateur administrateur Django par défaut. La valeur par défaut n'est pas sûre.
http:// localhost / account / login
Vous pouvez accéder à la page de connexion (ou http: // localhost: 81 / account / login si Grafana est activé) et vous connecter avec les deux valeurs en utilisant votre nom d'utilisateur et votre mot de passe par défaut. Une fois connecté, vous pouvez mettre à jour le profil de l'utilisateur root à l'URL suivante
http: // localhost / admin / auth / user / 1 / (ou http: // localhost: 81 / admin / auth / user / 1 / Graphana est valide).
Vous pouvez accéder au tableau de bord Graphite en utilisant le lien suivant:
http: // localhost / Dashboard (ou http: // localhost: 81 / dashboard si Grafana est activé).
Si Docker ne convient pas, vous pouvez installer Graphite directement à l'aide de la commande linux apt-get.
Tout d'abord, mettez à jour l'index du package local vers la dernière version stable en exécutant la commande suivante:
sudo apt-get update -y
sudo apt-get upgrade -y
Comme mentionné précédemment, Graphite se compose de plusieurs composants: l'application Web Graphite, le backend de stockage Carbon et la bibliothèque de base de données, Whisper. Chacun de ces composants est situé dans le référentiel par défaut d'Ubuntu. Ceux-ci peuvent être installés simplement en exécutant la commande suivante:
sudo apt-get install graphite-web graphite-carbon -y
Dans le cadre de l'installation, j'ai les questions suivantes:
«Le répertoire / var / lib / graphite / whisper contient des fichiers de base de données whisper. Conservez ces fichiers de base de données même si vous avez complètement supprimé Graphite Carbon au cas où vous le réinstalleriez plus tard. Voulez-vous supprimer le fichier de la base de données lors de la purge du carbone Graphite? "
La question elle-même est explicite et la réponse dépend du cas d'utilisation.
Ensuite, configurez la base de données pour l'application Web Django. Les données Graphite elles-mêmes sont traitées par la bibliothèque de base de données Whisper et Carbon, mais l'application Web Graphite est conçue comme une application Django Python, vous devez donc stocker les données quelque part.
Par défaut, il est configuré pour utiliser les fichiers de base de données SQLite3, mais ceux-ci ne sont pas aussi robustes que les vrais systèmes de gestion de bases de données relationnelles. À la place, utilisez la base de données PostgreSQL pour configurer votre application. En effet, la saisie des données est beaucoup plus rigoureuse et détecte les exceptions susceptibles de poser des problèmes à l'avenir. Exécutez la commande suivante pour installer et configurer PostgreSQL.
sudo apt-get install postgresql libpq-dev python-psycopg2 -y
Cette commande installe et exécute PostgreSQL. Cependant, pour utiliser PostgreSQL, vous devez créer l'utilisateur souhaité avant de créer la base de données Graphite. Ceci est obtenu comme suit:
sudo -u postgres psql
postgres=# CREATE USER graphite WITH PASSWORD 'password';
postgres=# CREATE DATABASE graphite WITH OWNER graphite;
\q
Maintenant que la base de données et les utilisateurs sont prêts, vous devez modifier les paramètres Graphite pour utiliser les composants configurés. Ouvrez le fichier de configuration de l'application Web Graphite local_settings.py.
sudo nano /etc/graphite/local_settings.py
Apportez les modifications suivantes au fichier:
SECRET_KEY = 'something_unique'
TIME_ZONE = 'America/New_York'
USE_REMOTE_USER_AUTHENTICATION = True
Une fois terminé, cela devrait ressembler à ceci:
DATABASES = {
'default': {
'NAME': 'graphite',
'ENGINE': 'django.db.backends.sqlite3',
'USER': 'graphite',
'PASSWORD': 'password',
'HOST': '127.0.0.1',
'PORT': ''
}
}
Lorsque vous avez terminé, appuyez sur CTRL + O, Entrée, CTRL + X pour enregistrer et fermer le fichier et quitter l'éditeur de fichiers.
Exécutez ensuite la commande suivante pour synchroniser la base de données et créer la structure correcte.
sudo graphite-manage migrate auth
sudo graphite-manage syncdb
Il vous sera alors demandé de créer un compte de super utilisateur pour la base de données et d'être invité à saisir certaines valeurs. Suivez simplement les instructions à l'écran et entrez les valeurs appropriées pour chaque question pour terminer la configuration Graphite.
Modifiez ensuite le fichier de configuration du service, graphite-carbone, pour configurer le backend de stockage Graphite, Carbon.
sudo nano /etc/default/graphite-carbon
CARBON_CACHE_ENABLED=true
Lorsque vous avez terminé, enregistrez le fichier et fermez-le.
sudo nano /etc/carbon/carbon.conf
ENABLE_LOGROTATION = True
sudo nano /etc/carbon/storage-schemas.conf
Il existe deux ensembles de règles déjà définis dans ce fichier. Ceux-ci sont divisés en sections. Les mots entre parenthèses sont les en-têtes de section utilisés pour spécifier la nouvelle définition. Sous chaque section se trouve une définition de modèle et une politique de rétention.
Une définition de modèle est une expression régulière utilisée pour faire correspondre les informations envoyées à Carbon. Ces informations incluent les noms de métriques que cette définition de modèle vérifie. Dans le premier exemple, le modèle vérifie si la métrique en question commence par la chaîne "carbone".
La politique de rétention est définie par une série de nombres séparés par des deux-points. Chaque ensemble se compose d'un intervalle métrique (qui spécifie la fréquence à laquelle la métrique est enregistrée), de deux points et de la durée de stockage de ces valeurs. Vous pouvez définir plusieurs ensembles de nombres séparés par des virgules.
Pour démontrer, définissez votre propre schéma qui correspond aux valeurs de test que vous utiliserez plus tard. Ajoutez la section suivante à la fin du fichier.
[test]
pattern = ^test\.
retentions = 10s:10m,1m:1h,10m:1d
Lorsque vous avez terminé, enregistrez le fichier et fermez-le.
Cela correspond à toutes les métriques commençant par la valeur «test». Enregistrez les données collectées 3 fois et modifiez les détails. La première définition (10s: 10m) crée des points de données toutes les 10 secondes et stocke les valeurs pendant seulement 10 minutes.
La deuxième définition d'archive (1m: 1h) crée des points de données par minute. Collectez toutes les données de la dernière minute (6 points si l'archive précédente a créé des points toutes les 10 secondes) et agrégez-les pour créer un seul point. Par défaut, cela se fait en faisant la moyenne des points, mais vous pouvez l'ajuster plus tard. Les données créées à ce niveau de détail sont stockées pendant une heure.
La définition d'archive finale (10m: 1d) créée crée des points de données toutes les 10 minutes et agrège les données comme elle l'a fait dans la deuxième archive. Sauvegardez les données de la journée.
Par conséquent, lorsque vous demandez des informations à Graphite, les données sont renvoyées à partir de l'archive la plus détaillée qui mesure la période que vous demandez. Par exemple, la demande de métriques pour les 5 dernières minutes renverra les informations de la première archive. Si vous avez demandé un graphique pour les 50 dernières minutes, les données seront extraites de la deuxième archive.
sudo cp /usr/share/doc/graphite-carbon/examples/storage-aggregation.conf.example /etc/carbon/storage-aggregation.conf
sudo systemctl start carbon-cache
Apache doit être installé et configuré avant de pouvoir utiliser l'interface Web Graphite. Vous pouvez installer Apache avec la commande suivante:
sudo apt-get install apache2 libapache2-mod-wsgi -y
Une fois l'installation terminée, vous devez désactiver le fichier d'hôte virtuel par défaut. C'est parce qu'il entre en conflit avec le nouveau fichier.
sudo a2dissite 000-default
Copiez ensuite le fichier d'hôte virtuel Graphite Apache dans le répertoire des sites disponibles.
sudo cp /usr/share/graphite-web/apache2-graphite.conf /etc/apache2/sites-available
Ensuite, activez le fichier hôte virtuel en tapant:
sudo a2ensite apache2-graphite
Rechargez le service pour implémenter les modifications.
sudo service apache2 reload
Enfin, Graphite a été installé et vous pouvez désormais accéder à son interface Web. Ouvrez votre navigateur Web préféré et entrez l'URL.
http://your_server_domain_name_or_IP
Toutes nos félicitations. J'ai installé et configuré Graphite.
Même si vous connaissez les bases de l'utilisation du graphite, la mise à l'échelle du graphite au niveau de la production peut être un défi de taille. Si vous envisagez d'exécuter Graphite au niveau de la production, [MetricFire](https://www.metricfire.com/japan/?utm_source=blog&utm_medium=Qiita&utm_campaign=Japan&utm_content=How%20to%20Install%20and%20Configure % 20Graphite% 20on% 20 Ubuntu) [Inscrivez-vous à la démo](https://www.metricfire.com/demo-japan/?utm_source=blog&utm_medium=Qiita&utm_campaign=Japan&utm_content=How%20to%20Install%20and%20Configure% 20on% 20Ubuntu) et obtenez de l'aide.
Recommended Posts