Prometheus est un système de surveillance open source qui vous permet de collecter des métriques à partir de n'importe quel système cible configuré. Prometheus met en œuvre un modèle de données multidimensionnel avec des requêtes puissantes, une excellente visualisation, des alertes précises et est livré avec de nombreuses intégrations.
Prometheus a été créé à l'origine par SoundCloud en 2012, mais est maintenant devenu un projet open source indépendant maintenu indépendamment par la communauté open source - tous les composants sont disponibles sous la licence Apache 2 sur Github.
Dans ce tutoriel, je vais vous montrer comment installer et configurer Prometheus et le node_exporter. Nous allons installer le système de surveillance Prometheus, puis configurer le node_exporter pour collecter les métriques du serveur. Nous utiliserons le serveur CentOS 7 pour ce guide de didacticiel.
Prérequis
- Serveur CentOS 7
- Privilèges root
Qu'allons-nous faire ?
- Créer un nouvel utilisateur et télécharger Prometheus
- Configurer Prometheus en tant que service Systemd
- Configurer le pare-feu
- Installer et configurer node_exporter
- Ajouter node_exporter au serveur Prometheus
- Test
Étape 1 - Créer un nouvel utilisateur et télécharger Prometheus
Dans ce didacticiel, le service Prometheus s'exécutera en tant qu'utilisateur non root. Nous devons donc créer un nouvel utilisateur non root sur le système. Nous allons créer un nouvel utilisateur nommé "prometheus", et tous les services prometheus seront exécutés sous l'utilisateur prometheus.
Créez un nouvel utilisateur "prometheus" à l'aide de la commande ci-dessous.
useradd -m -s /bin/bash prometheus
Un nouvel utilisateur a été créé. Connectez-vous maintenant à l'utilisateur et téléchargez prometheus à l'aide de la commande wget.
su - prometheus
wget https://github.com/prometheus/prometheus/releases/download/v2.2.1/prometheus-2.2.1.linux-amd64.tar.gz
Extrayez le fichier prometheus-xx.x.x.tar.gz et renommez le répertoire en 'prometheus'.
tar -xzvf prometheus-2.2.1.linux-amd64.tar.gz
mv prometheus-2.2.1.linux-amd64/ prometheus/
Prometheus est téléchargé sur le serveur et tous les fichiers prometheus se trouvent dans le répertoire '/home/prometheus/prometheus'.
Étape 2 - Configurer Prometheus en tant que service Systemd
Dans cette étape, nous allons configurer prometheus en tant que service systemd. Nous allons créer un nouveau fichier de service prometheus.service dans le répertoire '/etc/systemd/system'.
Accédez au répertoire '/etc/systemd/system/' et créez un nouveau fichier de service 'prometheus.service' à l'aide de l'éditeur vim.
cd /etc/systemd/system/
vim prometheus.service
Collez la configuration du service prometheus ci-dessous.
[Unit]
Description=Prometheus Server
Documentation=https://prometheus.io/docs/introduction/overview/
After=network-online.target
[Service]
User=prometheus
Restart=on-failure
#Change this line if you download the
#Prometheus on different path user
ExecStart=/home/prometheus/prometheus/prometheus \
--config.file=/home/prometheus/prometheus/prometheus.yml \
--storage.tsdb.path=/home/prometheus/prometheus/data
[Install]
WantedBy=multi-user.target
Enregistrez et quittez.
Rechargez maintenant le système systemd à l'aide de la commande systemctl ci-dessous.
systemctl daemon-reload
Démarrez le service prometheus et activez-le pour qu'il se lance à chaque démarrage du système.
systemctl start prometheus
systemctl enable prometheus
Le prometheus fonctionne maintenant en tant que service systemd, vérifiez-le à l'aide de la commande ci-dessous.
systemctl status prometheus
Assurez-vous d'obtenir le statut de service "En cours d'exécution".
Ou vérifiez-le en utilisant la commande netstat ci-dessous.
netstat -plntu
Assurez-vous d'obtenir le résultat comme indiqué ci-dessous.
Prometheus s'exécute par défaut sous le port '9090'.
Étape 3 - Configurer Firewalld
Si vous utilisez Firewalld sur votre système, ajoutez le port 9090 aux ports de la liste Firewalld.
Ouvrez le port 9090 pour l'accès Prometheus à l'aide des commandes firewall-cmd ci-dessous.
firewall-cmd --add-port=9090/tcp --permanent
firewall-cmd --reload
Ouvrez maintenant votre navigateur Web et saisissez l'adresse IP du serveur avec le port 9090.
http://192.168.33.10:9090/graph
Tapez 'http_requests_total' dans le champ de requête et cliquez sur le bouton 'Exécuter'.
Et vous verrez les requêtes HTTP au serveur prometheus avec toutes les informations sur l'heure, le code d'état HTTP et la méthode, etc.
Étape 4 - Installer et configurer node_exporter
node_exporter est un exportateur de métriques machine qui peut s'exécuter sur les systèmes * Nix et Linux.
Dans ce tutoriel, nous allons installer le node_exporter sur le même serveur prometheus. Nous surveillerons et obtiendrons la métrique du serveur prometheus.
Connectez-vous à l'utilisateur prometheus et téléchargez le 'node_exporter' à l'aide de la commande wget.
su - prometheus
wget https://github.com/prometheus/node_exporter/releases/download/v0.16.0-rc.1/node_exporter-0.16.0-rc.1.linux-amd64.tar.gz
Extrayez le node_exporter et renommez le répertoire en 'node_exporter'.
tar -xzvf node_exporter-0.16.0-rc.1.linux-amd64.tar.gz
mv node_exporter-0.16.0-rc.1.linux-amd64 node_exporter
Ensuite, nous allons créer un nouveau fichier de service pour le node_exporter. De retour au shell racine, accédez au répertoire '/etc/systemd/system' et créez un nouveau fichier de service node_exporter 'node_exporter.service' à l'aide de vim.
cd /etc/systemd/system/
vim node_exporter.service
Là, collez la configuration du service node_exporter ci-dessous.
[Unit]
Description=Node Exporter
Wants=network-online.target
After=network-online.target
[Service]
User=prometheus
ExecStart=/home/prometheus/node_exporter/node_exporter
[Install]
WantedBy=default.target
Enregistrez et quittez.
Maintenant, rechargez le système systemd.
systemctl daemon-reload
Ensuite, démarrez le service node_exporter et activez-le pour qu'il se lance à chaque fois au démarrage du système.
systemctl start node_exporter
systemctl enable node_exporter
Le service node_exporter est maintenant en cours d'exécution sur le serveur - vérifiez-le à l'aide de la commande netstat.
netstat -plntu
Et vous obtiendrez que le node-exporter s'exécute sur le port 9100.
Étape 5 - Ajouter node_exporter au serveur Prometheus
Dans cette étape, nous ajouterons le node_exporter au serveur prometheus. Connectez-vous à l'utilisateur prometheus et modifiez le fichier de configuration 'prometheus.yml'.
Connectez-vous à l'utilisateur prometheus.
su - prometheus
Allez dans le répertoire 'prometheus' et modifiez le fichier de configuration 'prometheus.yml'.
cd prometheus/
vim prometheus.yml
Sous la ligne 'scrape_config', ajoutez le nouveau job_name node_exporter en copiant-collant la configuration ci-dessous.
- job_name: 'node_exporter'
static_configs:
- targets: ['localhost:9100']
Enregistrez et quittez.
Redémarrez maintenant le service prometheus.
systemctl restart prometheus
Le node_exporter a été ajouté au serveur prometheus.
Étape 6 - Tester Prometheus et node_exporter
Ouvrez votre navigateur Web, puis saisissez l'adresse IP du serveur.
http://192.168.33.10:9090/
Tapez le collecteur meminfo 'node_memory_MemAvailable_bytes ' dans le champ de requête et cliquez sur le bouton 'Exécuter'.
Et vous obtiendrez le résultat ci-dessous.
Vous obtiendrez la mémoire disponible sur l'instance de serveur 'localhost:9100' et le job_name 'node-exporter'.
Ou si vous souhaitez accéder aux données brutes de node_exporter, vous devez ajouter le port node_exporter 9100 au firewalld.
firewall-cmd --add-port=9100/tcp
firewall-cmd --reload
Et puis tapez l'adresse IP du serveur avec le port 9100.
http://192.168.33.10:9100/metrics
Et vous obtiendrez les données brutes de node_exporter comme indiqué ci-dessous.
L'installation et la configuration du système de surveillance prometheus avec node_exporter sur CentOS 7 ont été effectuées avec succès.