Lancer des processus PM2 avec Supervisor sous Ubuntu

Lancer des processus PM2 avec Supervisor sous Ubuntu

Gérer vos applications Node.js avec PM2 et Supervisor sous Ubuntu

L'utilisation de PM2 pour gérer vos applications Node.js est une pratique courante, offrant une gestion simplifiée des processus, un redémarrage automatique en cas de crash et bien plus. Cependant, pour une surveillance optimale et une robustesse accrue, coupler PM2 avec Supervisor sous Ubuntu est une excellente solution. Ce tutoriel vous guidera à travers les étapes nécessaires pour lancer et superviser vos processus PM2 à l'aide de Supervisor.

Installation de PM2 et Supervisor

Avant de commencer, assurez-vous d'avoir Node.js et npm (ou yarn) installés sur votre système Ubuntu. L'installation de PM2 et Supervisor se fait via le gestionnaire de paquets apt. L'utilisation de PM2 en conjonction avec Supervisor apporte une couche supplémentaire de sécurité et de fiabilité. En cas de plantage de Supervisor, il est important d'avoir un plan de secours, par exemple en configurant un système d'alerte ou une surveillance externe de votre serveur. Cela garantit la disponibilité continue de votre application.

sudo apt update sudo apt install pm2 supervisor

Configuration de Supervisor pour lancer PM2

Une fois PM2 et Supervisor installés, il est crucial de configurer correctement Supervisor pour qu'il lance PM2 au démarrage du système. Cela garantit que vos applications Node.js sont toujours actives, même après un redémarrage du serveur. L'étape suivante consiste à créer un fichier de configuration pour Supervisor, ce qui assure une gestion robuste et une maintenance simplifiée de vos processus. La configuration appropriée est essentielle pour garantir une surveillance fiable et un redémarrage automatique en cas de défaillance. Mal configurer Supervisor pourrait entraîner des problèmes importants de disponibilité.

Créez un fichier de configuration pour Supervisor pour PM2 :

sudo nano /etc/supervisor/conf.d/pm2.conf

Ajoutez le contenu suivant, en adaptant le chemin vers votre fichier ecosystem.config.js (voir la section suivante):

[program:pm2] command=/usr/lib/node_modules/pm2/bin/pm2-runtime start /home/utilisateur/mon_projet/ecosystem.config.js --no-daemon autostart=true autorestart=true user=utilisateur redirect_stderr=true stdout_logfile=/var/log/pm2/pm2-stdout.log stderr_logfile=/var/log/pm2/pm2-stderr.log 

Remplacez /home/utilisateur/mon_projet/ecosystem.config.js par le chemin correct vers votre fichier de configuration PM2.

Création du fichier ecosystem.config.js

Ce fichier est au cœur de la gestion de vos applications avec PM2. Il définit les applications à lancer, leurs paramètres et leurs dépendances. Un fichier ecosystem.config.js bien structuré est essentiel pour la gestion efficace de vos applications. Une mauvaise configuration peut entraîner des erreurs de démarrage ou des problèmes de performances. Il est important de tester méticuleusement la configuration avant de la déployer en production.

Exemple d'un fichier ecosystem.config.js:

module.exports = { apps : [{ name: "mon-application", script: "./index.js", instances: 1, autorestart: true, watch: true, max_memory_restart: "1G", env: { NODE_ENV: "development" }, env_production: { NODE_ENV: "production" } }] } 

Redémarrage de Supervisor

Après avoir créé et modifié les fichiers de configuration, vous devez redémarrer Supervisor pour qu'il prenne en compte les modifications. Ce redémarrage assure que Supervisor charge les nouvelles configurations et lance correctement PM2 et vos applications Node.js. Si vous rencontrez des erreurs, vérifiez attentivement les logs de Supervisor et de PM2 pour identifier la cause du problème.

sudo systemctl restart supervisor

Surveillance des logs

Il est essentiel de surveiller les logs de PM2 et de Supervisor pour détecter les erreurs ou les problèmes potentiels. Une surveillance régulière des logs permet une identification rapide des problèmes et une résolution plus efficace. La surveillance des logs est une pratique clé pour maintenir la stabilité et la performance de vos applications.

Vous pouvez consulter les logs avec les commandes suivantes:

tail -f /var/log/pm2/pm2-stdout.log tail -f /var/log/pm2/pm2-stderr.log 
Il est fortement recommandé d'utiliser un système de logging plus robuste en production, tel que Winston, pour une meilleure gestion et analyse des logs.

N'oubliez pas de consulter la documentation officielle de PM2 et de Supervisor pour des informations plus détaillées et des options de configuration avancées. Pour une sécurité optimale, il est crucial de sécuriser votre serveur et d'utiliser les meilleures pratiques de sécurité. Hachage des mots de passe Argon2i dans les fixtures Symfony : nécessaire ? De plus, l'utilisation d'un gestionnaire de configuration comme Ansible ou Puppet peut faciliter le déploiement et la maintenance de votre infrastructure.

Gestion avancée des processus PM2 avec Supervisor

Au-delà de la simple exécution, Supervisor offre des fonctionnalités avancées pour gérer vos applications. En effet, Supervisor permet de contrôler et de surveiller vos applications avec une grande souplesse. L'intégration de Supervisor avec PM2 offre une solution complète pour la gestion des processus en production.

Utilisation des commandes Supervisor

Supervisor propose un ensemble de commandes pour interagir avec les processus qu'il gère. Ces commandes permettent de contrôler l'état des processus et de gérer les redémarrages. Une bonne compréhension de ces commandes est essentielle pour la gestion efficace de vos applications.

  • sudo supervisorctl start pm2 : Démarre le processus PM2.
  • sudo supervisorctl stop pm2 : Arrête le processus PM2.
  • sudo supervisorctl restart pm2 : Redémarre le processus PM2.
  • sudo supervisorctl status pm2 : Affiche l'état du processus PM2.

Conclusion

En combinant la puissance de PM2 pour la gestion des applications Node.js et la robustesse de Supervisor pour la supervision des processus, vous disposez d'une solution fiable et efficace pour le déploiement et la gestion de vos applications en production sur Ubuntu. N'hésitez pas à explorer les options avancées offertes par PM2 et Supervisor pour optimiser davantage votre infrastructure.


Plus récente Plus ancienne

Formulario de contacto