Instaliranje i konfiguriranje Supervisora ​​na Ubuntu 16.04

Supervizor je klijent/poslužitelj sustav koji se koristi za kontrolu niza UNIX procesa, točnije procesa povezanih s projektom ili kupcem. Na primjer, možete koristiti supervizor za stvaranje i praćenje proizvoljnog broja redova radnika vaše web aplikacije.

Komponente ovog sustava su:

  • supervisord: Poslužiteljski dio sustava.
  • supervisorctl: sučelje naredbenog retka koje se koristi za interakciju s poslužiteljem.
  • Web poslužitelj: Jednostavan web poslužitelj i web korisničko sučelje s osnovnom funkcionalnošću u usporedbi s supervisorctl .
  • XML-RPC sučelje: Isti HTTP poslužitelj koji koristi web klijent, služi XML-RPC sučelju koje se može koristiti za kontrolu programa nadzora.

U ovom vodiču instalirat ćemo najnoviju verziju supervizora, pokazati kako supervisorctlpokrenuti programe i upravljati njima putem , te konfigurirati web sučelje za upravljanje našim programima.

Instalacija i osnovna konfiguracija

Instalirat ćemo supervizor putem easy_install, značajke pythonovih alata za postavljanje.

Najprije ažurirajte svoj popis lokalnih paketa, a zatim instalirajte python setuptools.

sudo apt-get update && sudo apt-get install python-setuptools

Sada možemo instalirati supervizor.

sudo easy_install supervisor

Nakon što je instalacija dovršena, moramo generirati našu konfiguracijsku datoteku. Stvorite mapu pod nazivom supervisorunutar /etc.

sudo mkdir /etc/supervisor

A zatim izvršite sljedeće.

echo_supervisord_conf >  /etc/supervisor/supervisord.conf

Ako niste prijavljeni s rootkorisnikom, možete dobiti Permission deniedpogrešku (čak i s sudo). To je zbog preusmjeravanja. Da biste to riješili, prijavite se kao root.

sudo su

Zatim možete ponovno pokrenuti naredbu.

echo_supervisord_conf > /etc/supervisor/supervisord.conf

Sada možete ostaviti rootkorisnika s exitnaredbom. echo_supervisord_confZapovijed dao je našoj nadzornika instalacije.

Osnovna konfiguracija

Otvorite /etc/supervisor/supervisord.confdatoteku i provjerite njen sadržaj. Primijetit ćete da ova konfiguracijska datoteka slijedi INIsintaksu i podijeljena je po odjeljcima (predstavljeni u zagradama kao u [section-name]).

Da bismo dodali programe kojima će upravljati nadzornik, samo trebamo stvoriti odgovarajuće [program]odjeljke. Međutim, kako bismo izbjegli petljanje oko glavne konfiguracijske datoteke svaki put kada trebamo dodati (ili promijeniti) program, koristit ćemo [include]odjeljak. Pronađite ovaj odjeljak, dekomentirajte ga i zatim ga uredite da izgleda ovako.

[include]
files=conf.d/*.conf

Sada ćemo za svaki program koji želimo dodati kreirati .inidatoteku unutar /etc/supervisor/conf.d/direktorija. Kreirajmo ovu mapu.

sudo mkdir /etc/supervisor/conf.d

Pokretanje poslužitelja nadzora

Kao što je već spomenuto, supervizor se sastoji od poslužitelja i klijenata koji se na njega povezuju. Da bismo mogli upravljati i kontrolirati programe, moramo pokrenuti poslužitelj. Da bismo to učinili, registrirat ćemo poslužitelj nadzora u systemd, tako da se poslužitelj može pokrenuti pri pokretanju sustava.

Da biste to učinili, stvorite datoteku pod nazivom supervisord.serviceu /etc/systemd/systemdirektoriju.

sudo touch /etc/systemd/system/supervisord.service

Dodajte sljedeći sadržaj u datoteku.

[Unit]
Description=Supervisor daemon
Documentation=http://supervisord.org
After=network.target

[Service]
ExecStart=/usr/local/bin/supervisord -n -c /etc/supervisor/supervisord.conf
ExecStop=/usr/local/bin/supervisorctl $OPTIONS shutdown
ExecReload=/usr/local/bin/supervisorctl $OPTIONS reload
KillMode=process
Restart=on-failure
RestartSec=42s

[Install]
WantedBy=multi-user.target
Alias=supervisord.service

Aktivirajte uslugu nadzora.

sudo systemctl start supervisord.service

Sve dok se servisna datoteka nalazi u /etc/systemd/systemdirektoriju, automatski će se pokrenuti pri pokretanju sustava.

Možete provjeriti status usluge.

systemctl status supervisord.service

Također, možete provjeriti dnevnike.

sudo journalctl -u supervisord.service

Dodavanje programa

Programi kojima upravlja nadzornik dati su u različitim [program]odjeljcima u konfiguraciji. Za svaki program kojim želimo upravljati, kreirat ćemo samostalnu konfiguracijsku datoteku koja informira put izvršne naredbe, sve varijable okoline, kako izvesti u slučaju isključivanja.

Prvo, napravimo jednostavnu skriptu koja bilježi vremensku oznaku. Stvorite datoteku pod nazivom hello_supervisor.sh(gdje god želite, referirat ćemo na cijeli put ove skripte).

touch hello_supervisor.sh

Sada u njega stavite sljedeći sadržaj

#!/bin/bash
while true
do 
    # Echo current timestamp to stdout
    echo Hello Supervisor: `date`
    # Echo 'error!' to stderr
    echo An error ocurred at `date`! >&2
    sleep 1
done

Sada ga učinite izvršnim

chmod +x hello_supervisor.sh

U praktičnom smislu ova skripta je prilično beskorisna. Međutim, možemo ga upotrijebiti da pokažemo moć supervizora. Stvorite odgovarajuću konfiguracijsku datoteku tako što ćete pokrenuti sljedeće.

sudo touch /etc/supervisor/conf.d/hello_supervisor.conf

Sada stavite sljedeći sadržaj u ovu datoteku.

[program:hello_supervisor]
command=/home/USER/hello_supervisor.sh
autostart=true
autorestart=true
stderr_logfile=/var/log/hello_supervisor.err.log
stdout_logfile=/var/log/hello_supervisor.out.log

Napomena: Obavezno zamijenite USERsvojim korisničkim imenom.

Pregledat ćemo ovu konfiguraciju korak po korak.

[program:hello_supervisor]
command=/home/USER/hello_supervisor.sh

Prvo, konfiguracija počinje definiranjem programa imena hello_supervisor . Također obavještava punu putanju izvršne datoteke koju treba pokrenuti.

autostart=true

Ova linija navodi da se ovaj program treba automatski pokrenuti kada se pokrene supervizor.

autorestart=true

Ako se program zatvori iz bilo kojeg razloga, ova linija obavještava nadzornika da automatski ponovno pokrene proces.

stderr_logfile=/var/log/hello_supervisor.err.log
stdout_logfile=/var/log/hello_supervisor.out.log

Ovi retki definiraju mjesto datoteke dnevnika za stderri stdout, respektivno.

Upravljanje programima

Sada kada smo instalirali i konfigurirali nadzornika, možemo upravljati našim procesima.

Nakon dodavanja novog programa, trebali bismo pokrenuti sljedeće dvije naredbe, da obavijestimo poslužitelj da ponovno pročita konfiguracijske datoteke i da primijeni sve promjene.

sudo supervisorctl reread
sudo supervisorctl update

Sada izvršite supervisorctlklijenta.

sudo supervisorctl

Bit ćete dočekani s popisom registriranih procesa. Vidjet ćete proces pozvan hello_supervisorsa RUNNINGstatusom.

hello_supervisor                 RUNNING   pid 6853, uptime 0:22:30
supervisor>

Upišite helpza popis dostupnih naredbi.

supervisor> help

default commands (type help <topic>):
=====================================
add    exit      open  reload  restart   start   tail   
avail  fg        pid   remove  shutdown  status  update 
clear  maintail  quit  reread  signal    stop    version

U Ukratko, možemo start, stopa restartprogrami prolazeći naziv programa kao argument dotične naredbe.

supervisor> stop hello_supervisor 
hello_supervisor: stopped
supervisor> start hello_supervisor 
hello_supervisor: started
supervisor> restart hello_supervisor 
hello_supervisor: stopped
hello_supervisor: started
supervisor> 

tailNaredbom možemo pogledati i izlaz programa .

supervisor> tail hello_supervisor 
Hello Supervisor: Mon Sep 25 19:27:29 UTC 2017
Hello Supervisor: Mon Sep 25 19:27:30 UTC 2017
Hello Supervisor: Mon Sep 25 19:27:31 UTC 2017

Za stderrizlaz također možete koristiti tail.

supervisor> tail hello_supervisor stderr
An error ocurred at Mon Sep 25 19:31:12 UTC 2017!
An error ocurred at Mon Sep 25 19:31:13 UTC 2017!
An error ocurred at Mon Sep 25 19:31:14 UTC 2017!

Pozivanjem statusnaredbe možete vidjeti status svih registriranih programa.

Kada završite, možete odustati.

supervisor> quit

Klijent web poslužitelja

Da biste dopustili pristup web-poslužitelju nadzora, otvorite konfiguracijsku datoteku nadzornika i pronađite [inet_http_server]odjeljak.

nano /etc/supervisor/supervisord.conf

Sada ažurirajte konfiguraciju ovog odjeljka sljedećim.

[inet_http_server]
port=*:9001
username=your_username
password=your_password

Zamijenite your_usernamei your_passwordsa svojim željenim vjerodajnicama spremite svoje izmjene i ponovno pokrenite uslugu nadzora.

sudo systemctl restart supervisord.service

Ne zaboravite dopustiti TCPpristup portu 9001na vašem vatrozidu, a zatim pristup http://{server-ip}:9001iz vašeg preglednika. Na upit navedite svoje usernamei password. Sada možete kontrolirati svoje procese s weba.

Zaključak

Instalirali smo najnoviju verziju supervisorda, naučili kako ga konfigurirati za automatsko pokretanje sustava sa systemd-om i također pregledali osnovnu upotrebu supervisorctl. Za naprednije konfiguracije i slučajeve korištenja možete pogledati službenu dokumentaciju nadzora .

Ostavite komentar

Uspon strojeva: primjene AI u stvarnom svijetu

Uspon strojeva: primjene AI u stvarnom svijetu

Umjetna inteligencija nije u budućnosti, ovdje je upravo u sadašnjosti. U ovom blogu Pročitajte kako su aplikacije umjetne inteligencije utjecale na različite sektore.

DDOS napadi: kratak pregled

DDOS napadi: kratak pregled

Jeste li i vi žrtva DDOS napada i zbunjeni ste metodama prevencije? Pročitajte ovaj članak kako biste riješili svoje upite.

Jeste li se ikada zapitali kako hakeri zarađuju novac?

Jeste li se ikada zapitali kako hakeri zarađuju novac?

Možda ste čuli da hakeri zarađuju mnogo novca, ali jeste li se ikada zapitali kako zarađuju toliki novac? raspravimo.

Revolucionarni Googleovi izumi koji će vam olakšati život.

Revolucionarni Googleovi izumi koji će vam olakšati život.

Želite li vidjeti revolucionarne izume Googlea i kako su ti izumi promijenili život svakog čovjeka danas? Zatim čitajte na blogu kako biste vidjeli Googleove izume.

Friday Essential: Što se dogodilo s automobilima s umjetnom inteligencijom?

Friday Essential: Što se dogodilo s automobilima s umjetnom inteligencijom?

Koncept samovozećih automobila koji će krenuti na ceste uz pomoć umjetne inteligencije san je koji već neko vrijeme imamo. No, unatoč nekoliko obećanja, nigdje ih nema. Pročitajte ovaj blog kako biste saznali više…

Tehnološka singularnost: daleka budućnost ljudske civilizacije?

Tehnološka singularnost: daleka budućnost ljudske civilizacije?

Kako se znanost razvija velikom brzinom, preuzimajući mnoge naše napore, raste i rizik da se podvrgnemo neobjašnjivoj Singularnosti. Pročitajte što bi za nas mogla značiti singularnost.

Funkcionalnosti slojeva referentne arhitekture velikih podataka

Funkcionalnosti slojeva referentne arhitekture velikih podataka

Pročitajte blog kako biste na najjednostavniji način upoznali različite slojeve u arhitekturi velikih podataka i njihove funkcionalnosti.

Evolucija pohrane podataka – Infografika

Evolucija pohrane podataka – Infografika

Metode pohrane podataka su se razvijale možda od rođenja podataka. Ovaj blog pokriva evoluciju pohrane podataka na temelju infografike.

6 nevjerojatnih prednosti posjedovanja pametnih kućnih uređaja u našim životima

6 nevjerojatnih prednosti posjedovanja pametnih kućnih uređaja u našim životima

U ovom digitalnom svijetu, pametni kućni uređaji postali su ključni dio života. Evo nekoliko nevjerojatnih prednosti pametnih kućnih uređaja o tome kako naš život čine vrijednim življenja i jednostavnijim.

Ažuriranje dodataka macOS Catalina 10.15.4 uzrokuje više problema nego što ih rješava

Ažuriranje dodataka macOS Catalina 10.15.4 uzrokuje više problema nego što ih rješava

Nedavno je Apple izdao macOS Catalina 10.15.4 dodatak ažuriranju kako bi riješio probleme, ali čini se da ažuriranje uzrokuje više problema koji dovode do zalijevanja mac strojeva. Pročitajte ovaj članak da biste saznali više