Sous Linux, Supervisor est un système client/serveur qui permet aux utilisateurs de contrôler de nombreux processus sur un système d'exploitation tel qu'UNIX. Voici les principaux avantages de Supervisor :
- Commodité : L'écriture de rc.d pour toutes les instances de processus uniques n'est pas pratique. De même, les scripts Rc.d ne redémarrent pas automatiquement les processus en panne. Cependant, Supervisor peut être configuré pour redémarrer automatiquement les processus lorsqu'ils se bloquent.
- Précision : Sous UNIX, il est souvent difficile d'obtenir l'état précis de marche/arrêt des processus. Le superviseur démarre les processus en tant que sous-processus, il est donc conscient de l'état actif/inactif de ses enfants. C'est facile à interroger pour un utilisateur final.
Dans ce tutoriel, nous allons apprendre à installer Supervisor et à le configurer pour gérer le processus Nginx sur Ubuntu 20.04.
Prérequis
- Un nouveau VPS Ubuntu 20.04 sur la plate-forme cloud Atlantic.Net.
- Un mot de passe root est configuré sur votre serveur.
Étape 1 - Créer un serveur cloud Atlantic.Net
Tout d'abord, connectez-vous à votre serveur Atlantic.Net Cloud. Créez un nouveau serveur en choisissant Ubuntu 20.04 comme système d'exploitation avec au moins 2 Go de RAM. Connectez-vous à votre serveur cloud via SSH et connectez-vous à l'aide des informations d'identification mises en évidence en haut de la page.
Une fois que vous êtes connecté à votre serveur Ubuntu 20.04, exécutez la commande suivante pour mettre à jour votre système de base avec les derniers packages disponibles.
apt-get update -y
Étape 2 :Installer le superviseur
apt-get install supervisor -y
Après avoir installé le Superviseur, vous pouvez vérifier la version installée du Superviseur avec la commande suivante :
supervisord -v
Vous devriez obtenir le résultat suivant :
4.1.0
Ensuite, vérifiez l'état du service Superviseur avec la commande suivante :
systemctl status supervisor
Vous devriez obtenir le résultat suivant :
supervisor.service - Supervisor process control system for UNIX
Loaded: loaded (/lib/systemd/system/supervisor.service; enabled; vendor preset: enabled) Active: active (running) since Thu 2020-10-01 13:31:42 UTC; 9s ago Docs: http://supervisord.org Main PID: 14419 (supervisord) Tasks: 1 (limit: 2353) Memory: 14.2M CGroup: /system.slice/supervisor.service └─14419 /usr/bin/python3 /usr/bin/supervisord -n -c /etc/supervisor/supervisord.conf
Étape 3 - Activer l'interface Web du superviseur
Supervisor fournit une interface Web pour gérer tous les processus, mais elle est désactivée par défaut. Vous pouvez l'activer en éditant le fichier /etc/supervisor/supervisord.conf.
nano /etc/supervisor/supervisord.conf
Ajoutez les lignes suivantes :
[inet_http_server] port=*:9001 username=admin password=admin
Enregistrez et fermez le fichier, puis redémarrez le service Superviseur pour appliquer les modifications :
systemctl restart supervisor
Étape 4 - Gérer le processus Nginx avec le superviseur
Dans cette section, nous allons apprendre à contrôler le processus Nginx avec Supervisor.
Tout d'abord, installez le serveur Nginx avec la commande suivante :
apt-get install nginx -y
Après avoir installé Nginx, vous devrez arrêter et désactiver le service Nginx car nous utiliserons Supervisor pour gérer le processus Nginx.
Vous pouvez arrêter et désactiver le service Nginx avec la commande suivante :
systemctl stop nginx systemctl disable nginx
Ensuite, vous devrez créer un fichier de configuration autonome pour chaque service que vous souhaitez gérer. Vous pouvez créer un fichier de configuration Nginx avec la commande suivante :
nano /etc/supervisor/conf.d/nginx.conf
Ajoutez les lignes suivantes :
[program:nginx] command=/usr/sbin/nginx -g "daemon off;" autostart=true autorestart=true startretries=5 numprocs=1 startsecs=0 process_name=%(program_name)s_%(process_num)02d stderr_logfile=/var/log/supervisor/%(program_name)s_stderr.log stderr_logfile_maxbytes=10MB stdout_logfile=/var/log/supervisor/%(program_name)s_stdout.log stdout_logfile_maxbytes=10MB
Enregistrez et fermez le fichier lorsque vous avez terminé. Ensuite, informez le superviseur de la nouvelle configuration :
supervisorctl reread
Vous devriez obtenir le résultat suivant :
nginx: available
Ensuite, dites au superviseur de démarrer le service Nginx :
supervisorctl update
Vous devriez obtenir le résultat suivant :
nginx: added process group
Ensuite, vérifiez si le superviseur a démarré le service Nginx avec la commande suivante :
supervisorctl
Vous devriez obtenir le résultat suivant :
nginx:nginx_00 EN COURS D'EXÉCUTION pid 15717, disponibilité 0:00:13
Si vous souhaitez arrêter le service Nginx, exécutez la commande suivante :
stop nginx:nginx_00
Sortie :
nginx:nginx_00: stopped
Pour redémarrer le service Nginx, exécutez la commande suivante :
start nginx:nginx_00
Sortie :
nginx:nginx_00: started
Maintenant, quittez le shell Superviseur avec la commande suivante :
exit
Vous pouvez également vérifier le processus Nginx avec la commande suivante :
ps aux | grep nginx
Vous devriez obtenir le résultat suivant :
root 15721 0.0 0.4 57176 10064 ? S 14:14 0:00 nginx: master process /usr/sbin/nginx - g daemon off; www-data 15722 0.0 0.2 57828 5340 ? S 14:14 0:00 nginx: worker process www-data 15723 0.0 0.2 57828 5340 ? S 14:14 0:00 nginx: worker process
Étape 5 - Accéder à l'interface Web du superviseur
Vous pouvez désormais accéder à l'interface Web du Superviseur à l'aide de l'URL http://your-server-ip:9001 . Il vous sera demandé de fournir un nom d'utilisateur et un mot de passe comme indiqué ci-dessous :
Renseignez votre nom d'utilisateur et votre mot de passe admin que vous avez défini dans la configuration, fichier puis cliquez sur le bouton Connexion bouton. Vous devriez voir l'interface Web du Superviseur sur la page suivante :
Conclusion
Dans ce guide, vous avez appris à installer Supervisor et à activer l'interface Web sur Ubuntu 20.04. Vous avez également appris à contrôler le processus Nginx avec Supervisor. Essayez de contrôler les processus sur votre compte d'hébergement Linux VPS avec Atlantic.Net !