O perspectivă asupra a 26 de tehnici de analiză a datelor mari: partea 1
O perspectivă asupra a 26 de tehnici de analiză a datelor mari: partea 1
Supervizorul este un sistem client / server utilizat pentru a controla o serie de procese UNIX, mai precis procese legate de un proiect sau un client. De exemplu, puteți utiliza supraveghetorul pentru a genera și monitoriza un număr arbitrar de cozi de lucrători din aplicația dvs. web.
Componentele acestui sistem sunt:
În acest tutorial vom instala cea mai actualizată versiune de supervizor, vom demonstra cum să generați și să gestionați programele supervisorctl
și să configurați o interfață web pentru a gestiona programele noastre.
Vom instala supervizorul prin easy_install
, o caracteristică a seturilor de configurare ale lui Python.
Mai întâi, actualizați lista locală de pachete și apoi instalați python setuptools
.
sudo apt-get update && sudo apt-get install python-setuptools
Acum putem instala supervizorul.
sudo easy_install supervisor
Odată ce instalarea este completă, trebuie să generăm fișierul de configurare. Creați un folder numit supervisor
în interior /etc
.
sudo mkdir /etc/supervisor
Apoi executați următoarele.
echo_supervisord_conf > /etc/supervisor/supervisord.conf
Dacă nu sunteți autentificat cu root
utilizatorul, puteți primi o Permission denied
eroare (chiar și cu sudo
). Acest lucru se datorează redirecționării. Pentru a depăși acest lucru, conectați-vă ca root.
sudo su
Apoi puteți rula comanda din nou.
echo_supervisord_conf > /etc/supervisor/supervisord.conf
Acum puteți lăsa root
utilizatorul cu exit
comanda. echo_supervisord_conf
Comanda a fost asigurată de instalarea noastră supervizor.
Deschideți /etc/supervisor/supervisord.conf
fișierul și verificați conținutul acestuia. Veți observa că acest fișier de configurare urmează INI
sintaxa și este împărțit pe secțiuni (reprezentate prin paranteze ca în [section-name]
).
Pentru a adăuga programe care vor fi gestionate de către supervizor, trebuie doar să creăm [program]
secțiunile corespunzătoare . Totuși, pentru a evita încurcarea cu fișierul principal de configurare de fiecare dată când trebuie să adăugăm (sau să schimbăm) un program, vom folosi [include]
secțiunea. Găsiți această secțiune, decomandați-o și apoi modificați-o astfel încât să arate după cum urmează.
[include]
files=conf.d/*.conf
Acum pentru fiecare program pe care dorim să îl adăugăm, vom crea un .ini
fișier în interiorul /etc/supervisor/conf.d/
directorului. Vă permite să creăm acest folder.
sudo mkdir /etc/supervisor/conf.d
Așa cum am menționat anterior, supervizorul este format dintr-un server și clienți care se conectează la acesta. Pentru a putea gestiona și controla programele, trebuie să pornim serverul. Pentru a face acest lucru, vom înregistra serverul de supraveghere în systemd
, astfel încât serverul să poată fi pornit la pornirea sistemului.
Pentru aceasta, creați un fișier numit supervisord.service
în /etc/systemd/system
director.
sudo touch /etc/systemd/system/supervisord.service
Adăugați următorul conținut în fișier.
[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
Activați serviciul de supraveghere.
sudo systemctl start supervisord.service
Atâta timp cât fișierul de serviciu este localizat în /etc/systemd/system
director, acesta va fi pornit automat la pornirea sistemului.
Puteți verifica starea serviciului.
systemctl status supervisord.service
De asemenea, puteți consulta jurnalele.
sudo journalctl -u supervisord.service
Programele controlate de supervizor sunt date de diferite [program]
secțiuni din configurație. Pentru fiecare program pe care dorim să îl gestionăm, vom crea un fișier de configurare autonom care informează calea executabilă a comenzii, orice variabile de mediu, cum se poate efectua în cazul unei opriri.
Mai întâi, să creăm un script simplu care înregistrează un timestamp. Creați un fișier numit hello_supervisor.sh
(oriunde doriți, vom face referire la calea completă a acestui script).
touch hello_supervisor.sh
Acum, puneți în ea următorul conținut
#!/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
Acum face-l executabil
chmod +x hello_supervisor.sh
În termeni practice, acest scenariu este inutil. Cu toate acestea, îl putem folosi pentru a demonstra puterea supraveghetorului. Creați fișierul de configurare corespunzător executând următoarele.
sudo touch /etc/supervisor/conf.d/hello_supervisor.conf
Acum introduceți următorul conținut în acest fișier.
[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
Notă: Asigurați-vă că înlocuiți USER
cu numele de utilizator.
Vom examina această configurație pas cu pas.
[program:hello_supervisor]
command=/home/USER/hello_supervisor.sh
În primul rând, configurația începe prin definirea unui program de nume hello_supervisor . De asemenea, informează calea completă a executabilului care trebuie rulat.
autostart=true
Această linie afirmă că acest program ar trebui să fie automat început atunci când supervizorul este pornit.
autorestart=true
Dacă programul renunță, din orice motiv, această linie informează supraveghetorul să repornească automat procesul.
stderr_logfile=/var/log/hello_supervisor.err.log
stdout_logfile=/var/log/hello_supervisor.out.log
Aceste linii definesc locația fișierului de înregistrare pentru stderr
și stdout
, respectiv.
Acum că am instalat și configurat supraveghetorul, suntem capabili să ne gestionăm procesele.
După adăugarea unui program nou, ar trebui să executăm următoarele două comenzi, pentru a informa serverul să recitească fișierele de configurare și să aplice orice modificări.
sudo supervisorctl reread
sudo supervisorctl update
Acum executați supervisorctl
clientul.
sudo supervisorctl
Veți fi întâmpinat cu o listă a proceselor înregistrate. Veți vedea un proces proclamat hello_supervisor
cu un RUNNING
statut.
hello_supervisor RUNNING pid 6853, uptime 0:22:30
supervisor>
Tastați help
pentru o listă de comenzi disponibile.
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
Pe scurt, putem start
, stop
și restart
programe prin care trece numele programului ca argument la comanda respectivă.
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>
Putem, de asemenea, să aruncăm o privire la ieșirea programului cu tail
comanda.
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
Pentru stderr
ieșire, puteți utiliza tail
, de asemenea.
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!
Invocând status
comanda, puteți vizualiza starea tuturor programelor înregistrate.
După ce ai terminat, poți renunța.
supervisor> quit
Pentru a permite accesul la serverul de supraveghere, deschideți fișierul de configurare de supraveghere și localizați [inet_http_server]
secțiunea.
nano /etc/supervisor/supervisord.conf
Acum actualizați configurația acestei secțiuni cu următoarele.
[inet_http_server]
port=*:9001
username=your_username
password=your_password
Înlocuiți your_username
și your_password
cu datele de acreditare dorite, salvați-vă modificările și reporniți serviciul de supraveghere.
sudo systemctl restart supervisord.service
Nu uitați să permiteți TCP
accesul la portul de 9001
pe firewall și apoi accesul http://{server-ip}:9001
din browser. Când vi se cere, furnizați-vă username
și password
. Acum puteți controla procese de pe web.
Am instalat cea mai actualizată versiune de supervizare, am învățat cum să o configurăm pentru pornirea automată a sistemului cu systemd și, de asemenea, am revizuit o utilizare de bază a supervisorctl
. Pentru cazuri de configurare și utilizare mai avansate, puteți consulta documentația oficială de control .
O perspectivă asupra a 26 de tehnici de analiză a datelor mari: partea 1
Mulți dintre voi cunoașteți Switch care va fi lansat în martie 2017 și noile sale funcții. Pentru cei care nu știu, am pregătit o listă de funcții care fac din „Switch” un „gadget obligatoriu”.
Aștepți ca giganții tehnologiei să-și îndeplinească promisiunile? vezi ce a ramas nelivrat.
Citiți blogul pentru a cunoaște diferitele straturi din Arhitectura Big Data și funcționalitățile acestora în cel mai simplu mod.
Citiți asta pentru a afla cum devine populară inteligența artificială în rândul companiilor la scară mică și cum crește probabilitățile de a le face să crească și de a le oferi concurenților avantaje.
CAPTCHA a devenit destul de dificil de rezolvat pentru utilizatori în ultimii ani. Va fi capabil să rămână eficient în detectarea spam-ului și a botului în viitor?
Pe măsură ce Știința Evoluează într-un ritm rapid, preluând multe dintre eforturile noastre, crește și riscurile de a ne supune unei Singularități inexplicabile. Citiți, ce ar putea însemna singularitatea pentru noi.
Ce este telemedicina, îngrijirea medicală la distanță și impactul acesteia asupra generației viitoare? Este un loc bun sau nu în situația de pandemie? Citiți blogul pentru a găsi o vedere!
Poate ați auzit că hackerii câștigă mulți bani, dar v-ați întrebat vreodată cum câștigă acești bani? sa discutam.
Recent, Apple a lansat macOS Catalina 10.15.4 o actualizare suplimentară pentru a remedia problemele, dar se pare că actualizarea provoacă mai multe probleme care duc la blocarea mașinilor Mac. Citiți acest articol pentru a afla mai multe