À plusieurs reprises, nous avons parlé de l'évolutivité que nous offrent les distributions Linux en ayant des milliers d'applications open source qui peuvent y être installées et ainsi étendre considérablement la capacité d'utilisation et de développement des services et des rôles.
Nous pouvons trouver des applications pour tous types de tâches au niveau personnel ou d'entreprise et aujourd'hui Solvetic analysera en détail une qui frappe en raison de son potentiel de dynamisme lorsqu'il s'agit de collecter plusieurs types de métriques et de nous proposer des rapports détaillés qui seront très utiles. lorsqu'il s'agit de notre gestion et de notre soutien.
Cette application s'appelle Prometheus et aujourd'hui nous allons voir comment l'installer dans Ubuntu 17.04 de manière pratique.
Qu'est-ce que ProméthéePrometheus est un puissant système de surveillance open source qui collecte les métriques de nos services et les stocke dans une base de données de séries chronologiques. Il nous offre un modèle de données multidimensionnel, un langage de requête flexible et diverses possibilités de visualisation grâce à des outils tels que Grafana.
Par défaut, Prometheus n'exporte que des métriques sur lui-même, par exemple le nombre de requêtes reçues, la consommation de mémoire, entre autres. Cependant, il est possible d'étendre Prometheus en installant des exportateurs qui sont des programmes facultatifs qui génèrent des métriques supplémentaires et détaillées d'autres aspects à analyser.
Ces exportateurs se concentrent sur l'infrastructure, les bases de données et les serveurs Web dans les systèmes de messagerie, les API et bien d'autres.
Certains des exportateurs que Prometheus nous propose sont :
node_exporterCet exportateur produit des métriques sur l'infrastructure de l'équipement, y compris l'utilisation actuelle du processeur, de la mémoire et du disque dur, ainsi que des statistiques d'E/S et de réseau (telles que le nombre d'octets lus à partir d'un disque ou la charge moyenne sur un serveur de disque)
blackbox_exporterAvec cet exportateur, nous pourrons générer des métriques dérivées de protocoles de navigation tels que HTTP et HTTPS pour déterminer la disponibilité des points de terminaison, le temps de réponse, etc.
mysqld_exporterLa fonction de cet exportateur est de collecter des métriques liées à un serveur MySQL, telles que le nombre de requêtes exécutées, le temps de réponse moyen des requêtes et l'état de réplication du cluster.
lapinmq_exporterCet exportateur génère des métriques sur le système de messagerie RabbitMQ, y compris des détails tels que le nombre de messages publiés, le nombre de messages prêts à être livrés et la taille de tous les messages dans la file d'attente.
nginx-vts-exporterAvec cet exportateur, nous obtiendrons des métriques sur un serveur Web Nginx en utilisant le module Nginx VTS, qui comprend le nombre de connexions ouvertes, le nombre de réponses envoyées (regroupées par codes de réponse) et la taille totale des demandes envoyées ou reçues dans octets.
Fonctionnalités de ProméthéeCertaines des caractéristiques les plus remarquables de Prometheus sont :
- Dimension de données, car Prometheus stocke toutes les données sous forme de séries temporelles à l'aide de flux de valeurs temporelles appartenant à la même métrique et au même ensemble de dimensions étiquetées. De plus, Prometheus peut générer des séries temporelles dérivées du temps à la suite de requêtes.
- Requêtes dynamiques.À cet égard, Prometheus propose un langage d'expression fonctionnel grâce auquel l'utilisateur peut sélectionner et agréger des données de séries chronologiques en temps réel. Le résultat d'une expression peut être affiché sous forme de graphique, affiché sous forme de données tabulaires dans le navigateur d'expressions Prometheus ou exécuté par des systèmes externes via l'API HTTP.
- Diverses options d'affichage, puisque Prometheus inclut Grafana qui est disponible depuis Grafana 2.5.0 (2015-10-28).
- Stockage efficace, car Prometheus dispose d'un sous-système de stockage local sophistiqué. Pour les index, il utilise LevelDB. Pour les échantillons de données en masse, il possède sa propre couche de stockage personnalisée, qui organise les échantillons de données en morceaux de taille constante (1024 octets de charge utile). Ces morceaux sont stockés sur disque dans un fichier par série temporelle.
- Opération simple car Prometheus est configuré via des paramètres de ligne de commande et un fichier de configuration. Alors que les invites de ligne de commande configurent des paramètres système immuables (tels que les emplacements de stockage, la quantité de données à enregistrer sur le disque et en mémoire), le fichier de configuration définit tout ce qui concerne les tâches de scraping et leurs instances, ainsi que les fichiers de règles chargés avec l'application. .
- Alerte précise, en ayant la possibilité de créer des règles d'alerte qui nous permettent de définir des conditions d'alerte basées sur les valeurs du langage d'expression Prometheus et d'envoyer des notifications sur les alertes de déclenchement à un service externe à un moment donné et ainsi d'être au courant de tout changement.
- Des bibliothèques multiples, grâce au fait que Prometheus nous propose une série de bibliothèques compatibles telles que Java ou Scala, Python, Rubí, Bash, C++, Common Lisp, Elixir, Erlang, Haskell, Lua pour Nginx, Lua pour Tarantool, . NET/C#, Node.js, PHP et Rust.
- Intégration multiple, car nous avons plusieurs bibliothèques et serveurs qui aident à exporter les métriques existantes de systèmes tiers vers les métriques Prometheus, certains d'entre eux sont l'exportateur Aerospike, l'exportateur ClickHouse, l'exportateur Consul, l'exportateur CouchDB, l'exportateur ElasticSearch, l'exportateur Memcached, l'exportateur MongoDB, MSSQL exportateur de serveur, exportateur de serveur MySQL, exportateur OpenTSDB, exportateur PgBouncer, exportateur PostgreSQL ou exportateur ProxySQL.
Nous allons maintenant voir comment installer Prometheus sur Ubuntu 17.04.
1. Installation de Nginx
Étape 1
Le premier point à garder à l'esprit est que Nginx doit être installé dans Ubuntu, si nous ne l'avons pas, nous exécuterons la commande suivante :
sudo apt installer nginx
Étape 2
Là, nous entrerons la lettre S pour confirmer le téléchargement et l'installation des packages nécessaires. Une fois installé, il faudra configurer les paramètres du pare-feu Ubuntu pour autoriser l'accès au service Nginx, pour cela nous exécuterons la ligne suivante pour lister les configurations des applications ufw :
liste des applications sudo ufw
Au niveau Nginx, nous avons les options suivantes
- Nginx Full : ce profil ouvre à la fois le port 80 (trafic Web normal et non crypté) et le port 443 (trafic TLS / SSL crypté)
- Nginx HTTP : ce profil n'ouvre que le port 80 (trafic Web normal et non crypté)
- Nginx HTTPS : Ce profil n'ouvre que le port 443 (trafic TLS/SSL crypté)
Étape 3
Dans ce cas, nous exécuterons la ligne suivante :
sudo ufw autorise 'Nginx HTTP'
Étape 4
Nous pouvons voir que l'état du pare-feu est inactif, dans certains cas, et il doit être nécessaire de l'activer, pour cela nous exécutons la commande suivante :
sudo ufw activer
Une fois que nous avons configuré ces paramètres dans le pare-feu, nous poursuivons l'installation de Prometheus.
Connectez-vous Inscrivez-vous !