Instalimi dhe konfigurimi bazë
Nisja e serverit mbikëqyrës
Shtimi i programeve
Menaxhimi i programeve
Klienti i uebserverit
konkluzioni
Mbikëqyrësi është një sistem klient/server që përdoret për të kontrolluar një sërë procesesh UNIX, më konkretisht procese që lidhen me një projekt ose një klient. Për shembull, mund të përdorni mbikëqyrësin për të krijuar dhe monitoruar një numër arbitrar të radhëve të punonjësve të aplikacionit tuaj në internet.
Përbërësit e këtij sistemi janë:
- mbikëqyrësi: Pjesa e serverit të sistemit.
- supervisorctl: Ndërfaqja e linjës së komandës e përdorur për të bashkëvepruar me serverin.
- Serveri në internet: Një server i thjeshtë në internet dhe një ndërfaqe përdoruesi në internet me funksionalitet bazë në krahasim me supervisorctl .
- Ndërfaqja XML-RPC: I njëjti server HTTP i përdorur nga klienti në internet, shërben një ndërfaqe XML-RPC që mund të përdoret për të kontrolluar programet mbikëqyrëse.
Në këtë tutorial ne do të instalojmë versionin më të përditësuar të mbikëqyrësit, do të demonstrojmë se si të krijojmë dhe menaxhojmë programet përmes supervisorctl, dhe të konfigurojmë një ndërfaqe ueb për të menaxhuar programet tona.
Instalimi dhe konfigurimi bazë
Ne do të instalojmë mbikëqyrësin përmes easy_install, një veçori e setuptools të python.
Së pari, përditësoni listën e paketave tuaja lokale dhe më pas instaloni python setuptools.
sudo apt-get update && sudo apt-get install python-setuptools
Tani mund të instalojmë mbikëqyrës.
sudo easy_install supervisor
Pasi të përfundojë instalimi, ne duhet të gjenerojmë skedarin tonë të konfigurimit. Krijoni një dosje me emrin supervisorbrenda /etc.
sudo mkdir /etc/supervisor
Dhe pastaj ekzekutoni sa vijon.
echo_supervisord_conf > /etc/supervisor/supervisord.conf
Nëse nuk jeni identifikuar me rootpërdoruesin, mund të merrni një Permission deniedgabim (madje edhe me sudo). Kjo është për shkak të ridrejtimit. Për ta kapërcyer këtë, identifikohuni si root.
sudo su
Pastaj mund ta ekzekutoni përsëri komandën.
echo_supervisord_conf > /etc/supervisor/supervisord.conf
Tani mund ta lini rootpërdoruesin me exitkomandën. echo_supervisord_confKomanda është dhënë nga instalimi tonë mbikëqyrës.
Konfigurimi bazë
Hapni /etc/supervisor/supervisord.confskedarin dhe kontrolloni përmbajtjen e tij. Do të vini re se ky skedar konfigurimi ndjek INIsintaksën dhe ndahet sipas seksioneve (paraqiten me kllapa si në [section-name]).
Për të shtuar programe që do të menaxhohen nga mbikëqyrësi, ne vetëm duhet të krijojmë [program]seksionet e duhura . Megjithatë, për të shmangur ngatërrimin me skedarin kryesor të konfigurimit sa herë që na duhet të shtojmë (ose ndryshojmë) një program, ne do të përdorim [include]seksionin. Gjeni këtë seksion, hiqni komentin dhe më pas modifikojeni që të duket si më poshtë.
[include]
files=conf.d/*.conf
Tani për çdo program që duam të shtojmë, do të krijojmë një .iniskedar brenda /etc/supervisor/conf.d/drejtorisë. Le të krijojmë këtë dosje.
sudo mkdir /etc/supervisor/conf.d
Nisja e serverit mbikëqyrës
Siç u përmend më parë, mbikëqyrësi përbëhet nga një server dhe klientë që lidhen me të. Për të qenë në gjendje të menaxhojmë dhe kontrollojmë programet, duhet të nisim serverin. Për ta bërë këtë, ne do të regjistrojmë serverin mbikëqyrës në systemd, në mënyrë që serveri të fillojë në fillimin e sistemit.
Për ta bërë këtë, krijoni një skedar të quajtur supervisord.servicenë /etc/systemd/systemdrejtori.
sudo touch /etc/systemd/system/supervisord.service
Shtoni përmbajtjen e mëposhtme në skedar.
[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
Aktivizoni shërbimin e mbikëqyrjes.
sudo systemctl start supervisord.service
Për sa kohë që skedari i shërbimit ndodhet në /etc/systemd/systemdrejtori, ai do të niset automatikisht në fillimin e sistemit.
Ju mund të kontrolloni statusin e shërbimit.
systemctl status supervisord.service
Gjithashtu, mund të shikoni regjistrat.
sudo journalctl -u supervisord.service
Shtimi i programeve
Programet e kontrolluara nga mbikëqyrësi jepen nga [program]seksione të ndryshme në konfigurim. Për secilin program që duam të menaxhojmë, ne do të krijojmë një skedar konfigurimi të pavarur që informon shtegun e ekzekutueshëm të komandës, çdo variabël mjedisor, se si të kryhet në rast mbylljeje.
Së pari, le të krijojmë një skript të thjeshtë që regjistron një stamp kohor. Krijoni një skedar të quajtur hello_supervisor.sh(kudo që dëshironi, ne do t'i referohemi shtegut të plotë të këtij skripti).
touch hello_supervisor.sh
Tani, vendosni përmbajtjen e mëposhtme në të
#!/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
Tani bëjeni të ekzekutueshme
chmod +x hello_supervisor.sh
Në aspektin praktik, ky skenar është shumë i padobishëm. Megjithatë, ne mund ta përdorim atë për të demonstruar fuqinë e mbikëqyrësit. Krijoni skedarin përkatës të konfigurimit duke ekzekutuar sa vijon.
sudo touch /etc/supervisor/conf.d/hello_supervisor.conf
Tani vendosni përmbajtjen e mëposhtme në këtë skedar.
[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
Shënim: Sigurohuni që ta zëvendësoni USERme emrin tuaj të përdoruesit.
Ne do ta shqyrtojmë këtë konfigurim hap pas hapi.
[program:hello_supervisor]
command=/home/USER/hello_supervisor.sh
Së pari, konfigurimi fillon duke përcaktuar një program me emrin hello_supervisor . Ai gjithashtu informon shtegun e plotë të ekzekutuesit që do të ekzekutohet.
autostart=true
Kjo linjë thotë se ky program duhet të fillojë automatikisht kur të fillojë mbikëqyrësi.
autorestart=true
Nëse programi del, për ndonjë arsye, kjo linjë informon mbikëqyrësin që të rifillojë automatikisht procesin.
stderr_logfile=/var/log/hello_supervisor.err.log
stdout_logfile=/var/log/hello_supervisor.out.log
Këto rreshta përcaktojnë vendndodhjen e skedarit log për stderrdhe stdout, përkatësisht.
Menaxhimi i programeve
Tani që kemi instaluar dhe konfiguruar mbikëqyrësin, ne jemi në gjendje të menaxhojmë proceset tona.
Pas shtimit të një programi të ri, duhet të ekzekutojmë dy komandat e mëposhtme, për të informuar serverin që të rilexojë skedarët e konfigurimit dhe të aplikojë çdo ndryshim.
sudo supervisorctl reread
sudo supervisorctl update
Tani ekzekutoni supervisorctlklientin.
sudo supervisorctl
Ju do të përshëndeteni me një listë të proceseve të regjistruara. Do të shihni një proces të quajtur hello_supervisorme një RUNNINGstatus.
hello_supervisor RUNNING pid 6853, uptime 0:22:30
supervisor>
Shkruani helpnjë listë të komandave të disponueshme.
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
Në pak fjalë, mund të kemi start, stopdhe restartprogramet duke kaluar emrin e programit si një argument për komandën përkatëse.
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>
Mund t'i hedhim një sy edhe daljes së programit me tailkomandën.
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
Për stderrdaljen, mund të përdorni tailgjithashtu.
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!
Duke thirrur statuskomandën, mund të shikoni statusin e të gjitha programeve të regjistruara.
Pasi të keni mbaruar, mund të hiqni dorë.
supervisor> quit
Klienti i uebserverit
Për të lejuar aksesin te serveri i uebit i mbikëqyrësit, hapni skedarin e konfigurimit të mbikëqyrësit dhe gjeni [inet_http_server]seksionin.
nano /etc/supervisor/supervisord.conf
Tani përditësoni konfigurimin e këtij seksioni me sa vijon.
[inet_http_server]
port=*:9001
username=your_username
password=your_password
Zëvendësoni your_usernamedhe your_passwordme kredencialet tuaja të dëshiruara, ruani modifikimet tuaja dhe rinisni shërbimin e mbikëqyrësit.
sudo systemctl restart supervisord.service
Mos harroni të lejoni TCPhyrjen në portin 9001në murin tuaj të zjarrit dhe më pas hyrjen http://{server-ip}:9001nga shfletuesi juaj. Kur ju kërkohet, jepni usernamedhe password. Tani mund t'i kontrolloni proceset tuaja nga ueb.
konkluzioni
Ne kemi instaluar versionin më të përditësuar të mbikëqyrësit, kemi mësuar se si ta konfigurojmë atë për fillimin automatik të sistemit me systemd dhe kemi rishikuar gjithashtu një përdorim bazë të supervisorctl. Për konfigurime më të avancuara dhe raste përdorimi mund t'i referoheni dokumentacionit zyrtar të mbikëqyrësit .