Configuration étape par étape : surveillance Grafana et Prometheus à l’aide de Node Exporter
Introduction
La surveillance est un aspect crucial de la gestion des environnements cloud, garantissant que vous pouvez suivre la santé, les performances et la fiabilité de votre infrastructure. Prometheus et Grafana sont des outils puissants couramment utilisés pour la surveillance et la visualisation. Prometheus excelle dans la collecte et l’interrogation de métriques, tandis que Grafana fournit une interface pour visualiser ces données via des tableaux de bord personnalisables.
L’utilisation d’AWS EC2 pour héberger ces outils offre flexibilité et évolutivité, ce qui en fait un choix idéal pour mettre en place une solution de surveillance robuste.
Conditions préalables
Avant de vous lancer dans la configuration, assurez-vous d’avoir les éléments suivants :
- Instance AWS EC2 : Un compte AWS actif et une instance EC2 exécutant Amazon Linux 2.
- Connaissances de base : Familiarité avec les commandes Linux et les services AWS de base.
- Outils nécessaires : Un client SSH pour vous connecter à votre instance EC2 et à l’AWS CLI pour gérer les ressources AWS.
Remarque : ce blog est basé sur la configuration de Grafana et Prometheus sur Amazon Linux 2, vous pouvez également utiliser d’autres versions de système d’exploitation selon vos besoins.
Configuration de l’instance EC2
Lancement d’une instance EC2 :
- Connectez-vous à votre console AWS et accédez au tableau de bord EC2.
- Lancer une nouvelle instance en sélectionnant « Lancer l’instance ».
- Choisissez Amazon Linux 2 comme Amazon Machine Image (AMI).
- Sélectionnez un type d’instance : T2.small est suffisant pour les besoins de surveillance de base ou, si vous le souhaitez, vous pouvez opter pour un type d’instance supérieur.
- Configurez les groupes de sécurité : Autorisez le trafic entrant pour SSH (port 22), HTTP (port 80), HTTPS (port 443) et les ports personnalisés pour Prometheus (9090) et Grafana (3000).
- Lancer l’instance et téléchargez la paire de clés pour l’accès SSH.
Connexion à l’instance :
- Connectez-vous en SSH à votre instance EC2 à l’aide de la paire de clés téléchargée :
ssh -i your-key.pem ec2-user@your-ec2-public-ip
- Mettez à jour la liste des packages et installez les packages essentiels :
sudo yum update -y sudo yum install git wget -y
Installation et configuration de Prometheus sur Amazon Linux 2
Installation étape par étape de Prometheus :
- Créez un utilisateur système pour Prometheus :
sudo useradd --no-create-home --shell /bin/false prometheus
- Créez des répertoires pour la configuration et les données de Prometheus :
sudo mkdir /etc/prometheus sudo mkdir /var/lib/prometheus
- Définissez la propriété du répertoire de données :
sudo chown prometheus:prometheus /var/lib/prometheus
- Accédez au répertoire /tmp :
cd /tmp/
- Téléchargez Prométhée :
wget https://github.com/prometheus/prometheus/releases/download/v2.31.1/prometheus-2.31.1.linux-amd64.tar.gz
- Extrayez le package Prometheus téléchargé :
tar -xvf prometheus-2.31.1.linux-amd64.tar.gz
- Accédez au répertoire extrait :
cd prometheus-2.31.1.linux-amd64
- Déplacez les fichiers de configuration et définissez la propriété :
sudo mv console* /etc/prometheus sudo mv prometheus.yml /etc/prometheus sudo chown -R prometheus:prometheus /etc/prometheus
- Déplacez les binaires et définissez la propriété :
sudo mv prometheus /usr/local/bin/ sudo chown prometheus:prometheus /usr/local/bin/prometheus
Création du service Prometheus Systemd :
- Créez un fichier de service systemd pour Prometheus :
sudo nano /etc/systemd/system/prometheus.service
- Ajoutez le contenu suivant :
[Unit] Description=Prometheus Wants=network-online.target After=network-online.target [Service] User=prometheus Group=prometheus Type=simple ExecStart=/usr/local/bin/prometheus \ --config.file /etc/prometheus/prometheus.yml \ --storage.tsdb.path /var/lib/prometheus/ \ --web.console.templates=/etc/prometheus/consoles \ --web.console.libraries=/etc/prometheus/console_libraries [Install] WantedBy=multi-user.target
- Rechargez systemd pour appliquer le nouveau service :
sudo systemctl daemon-reload
- Activez et démarrez le service Prometheus :
sudo systemctl enable prometheus sudo systemctl start prometheus
- Vérifiez si le service Prometheus est en cours d’exécution
sudo systemctl status prometheus
Tester Prometheus :
Accédez à l’interface utilisateur de Prometheus : Ouvrez votre navigateur et accédez à http://your-ec2-public-ip:9090
pour vérifier que Prometheus est en cours d’exécution.
Installation étape par étape de Node Exporter :
- Accédez à la page de téléchargement de Prometheus :
http://prometheus.io/download
- Copiez le lien de téléchargement de Node Exporter :
wget https://github.com/prometheus/node_exporter/releases/download/v1.5.0/node_exporter-1.5.0.linux-amd64.tar.gz
- Extrayez le fichier téléchargé :
tar xvf node_exporter-1.5.0.linux-amd64.tar.gz
- Accédez au répertoire Node Exporter extrait :
cd node_exporter-1.5.0.linux-amd64/
- Démarrez Node Exporter en exécutant l’exécutable :
./node_exporter
Vous verrez Node Exporter écouter sur le port 9100.
- Vérifiez si Node Exporter est en cours d’exécution :
curl localhost:9100/metrics
Vous pouvez également visiterhttp://your-ec2-public-ip:9100/metrics
depuis un navigateur.
Configuration de l’exportateur de nœuds en tant que service :
Pour vous assurer que Node Exporter s’exécute en tant que service en arrière-plan et démarre automatiquement au redémarrage, suivez les étapes ci-dessous :
- Copiez le binaire de Node Exporter dans /usr/local/bin :
sudo cp node_exporter /usr/local/bin
- Créez un utilisateur système pour Node Exporter :
sudo useradd node_exporter --no-create-home --shell /bin/false
- Changez la propriété du binaire Node Exporter :
sudo chown node_exporter:node_exporter /usr/local/bin/node_exporter
- Créez un fichier de service systemd pour Node Exporter :
sudo nano /etc/systemd/system/node_exporter.service
- Ajoutez le contenu suivant au fichier de service :
[Unit] Description=Node Exporter Wants=network-online.target After=network-online.target [Service] User=node_exporter Group=node_exporter Type=simple ExecStart=/usr/local/bin/node_exporter [Install] WantedBy=multi-user.target
- Recharger systemd :
sudo systemctl daemon-reload
- Démarrez et activez Node Exporter en tant que service :
sudo systemctl start node_exporter sudo systemctl enable node_exporter
- Vérifiez l’état du service Node Exporter :
sudo systemctl status node_exporter
Ajout de cibles dans prometheus.yml
Configuration de Prometheus pour supprimer les métriques de l’exportateur de nœuds –
- Modifiez le fichier prometheus.yml :
sudo nano /etc/prometheus/prometheus.yml
- Ajoutez les cibles Node Exporter sous scrape_configs :
scrape_configs: - job_name: 'node_exporter' static_configs: - targets: ['localhost:9100']
Remarque : Remplacerlocalhost:9100
avec l’adresse IP et le port réels si vous supprimez plusieurs instances EC2 et autorisez le port sur les instances pour Prometheus. Ainsi, les métriques peuvent être escamotées par Prometheus. - Redémarrez Prometheus pour appliquer les modifications :
sudo systemctl restart prometheus
- Vérifiez les cibles dans l’interface utilisateur de Prometheus :
visitez http://your-ec2-public-ip:9090/targets depuis un navigateur.
Installation et configuration de Grafana
Configuration de Grafana :
Nous allons d’abord ajouter le dépôt Grafana pour que le système sache où le récupérer :
- Créez un fichier de référentiel pour Grafana :
sudo nano /etc/yum.repos.d/grafana.repo
- Ajoutez le contenu suivant au fichier du référentiel :
[grafana] name=grafana baseurl=https://packages.grafana.com/oss/rpm repo_gpgcheck=1 enabled=1 gpgcheck=1 gpgkey=https://packages.grafana.com/gpg.key sslverify=1 sslcacert=/etc/pki/tls/certs/ca-bundle.crt
- Installez Grafana :
sudo yum install grafana -y
- Rechargez la configuration du gestionnaire systemd :
sudo systemctl daemon-reload
- Démarrez le serveur Grafana :
sudo systemctl start grafana-server
- Vérifiez l’état du service Grafana :
sudo systemctl status grafana-server
- Activez Grafana pour démarrer au démarrage :
sudo systemctl enable grafana-server.service
Test de Grafana :
Pour tester Grafana, ouvrez votre navigateur et visitez l’adresse IP publique de votre instance EC2 suivie de :3000
(par exemple, http://your-ec2-public-ip:3000
).
Connectez-vous avec les identifiants par défaut : Nom d’utilisateur : administrateur et Mot de passe : administrateur. Vous serez invité à définir un nouveau mot de passe.
Installation et configuration de Nginx :
- Installez Nginx sur votre instance EC2 :
sudo yum install nginx -y
- Obtenez un certificat SSL : Utilisez Let’s Encrypt pour un certificat SSL gratuit.
- Configurez Nginx pour rediriger HTTP vers HTTPS et le trafic proxy vers Grafana :
sudo nano /etc/nginx/nginx.conf
Ajoutez le bloc serveur suivant :
server { listen 80; server_name your-domain.com www.your-domain.com; return 301 https://$host$request_uri; } server { listen 443 ssl; server_name your-domain.com www.your-domain.com; ssl_certificate /etc/letsencrypt/live/your-domain.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/your-domain.com/privkey.pem; location / { proxy_pass http://localhost:3000; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } }
- Redémarrez Nginx pour appliquer les modifications :
sudo systemctl restart nginx
Ajout d’une entrée DNS sur la Route 53
Mise en place de la Route 53 :
- Accédez à Route 53 dans la AWS Management Console.
- Créer une nouvelle zone hébergée pour votre domaine si ce n’est pas déjà fait.
- Ajouter un enregistrement A :
- Choisissez votre zone hébergée et cliquez sur « Créer un enregistrement ».
- Définissez le type d’enregistrement sur A – Adresse IPv4.
- Saisissez votre nom de domaine et l’adresse IP publique de votre instance EC2.
- Activez « Alias » si vous utilisez un AWS Load Balancer (facultatif).
- Sauvegarder l’enregistrement et attendez la propagation DNS.
Création et personnalisation de tableaux de bord
Connexion de la source de données Prometheus :
- Ajoutez Prometheus comme source de données dans Grafana :
- Accédez à Configuration > Sources de données > Ajouter une source de données.
- Choisissez Prometheus et définissez l’URL sur
http://localhost:9090
. - Cliquez Enregistrer et tester pour garantir que la connexion fonctionne.
Création de tableaux de bord :
- Créez un nouveau tableau de bord :
Configuration des alertes dans Grafana :
- Créez une règle d’alerte :
- Accédez à un tableau de bord dans la section Tableaux de bord.
- Dans le coin supérieur droit du panneau, cliquez sur les trois points (ellipses).
- Dans le menu déroulant, sélectionnez Plus… puis choisissez Nouvelle règle d’alerte.
- Définissez les conditions (par exemple, déclencher une alerte lorsque l’utilisation du processeur dépasse 80 %).
- Configurez l’intervalle d’évaluation (à quelle fréquence l’alerte doit être vérifiée).
- Configurez les notifications d’alerte :
- Définir les points de contact : Configurez vos points de contact, qui sont des intégrations (par exemple, e-mail, Slack) pour envoyer des notifications.
- Créez une politique de notification : Définissez une politique de notification pour définir des règles d’acheminement des alertes vers vos points de contact. Dans cette politique, décidez quand et où les alertes doivent être envoyées en fonction de leur importance ou de leurs critères.
- Ajouter des modèles de notification (facultatif) : Utilisez des modèles pour créer des messages cohérents pour vos notifications entre différents points de contact.
Conclusion
La mise en place d’une surveillance avec Grafana et Prometheus sur une instance AWS EC2, sécurisée avec Nginx et intégrée à Route 53 pour la gestion DNS, fournit une solution évolutive et flexible pour suivre la santé et les performances de votre infrastructure. Ce guide vous a accompagné tout au long du processus de configuration, du lancement d’une instance EC2 à la configuration de Prometheus et Grafana, en passant par l’installation de Node Exporter, la configuration de Nginx pour la terminaison SSL, la configuration des alertes dans Grafana et la sécurisation de votre configuration. Avec ces outils en place, vous pouvez obtenir des informations précieuses sur les performances de votre système et être alerté de tout problème avant qu’il ne devienne critique.
Source link