Nadgledajte resurse servera pomoću Collectd-web i Apache CGI u Linuxu


Ovaj vodič će govoriti o tome kako možete instalirati i pokrenuti Collectd-web sučelje, koje je front-end alat za praćenje weba za Collectd demon, u kombinaciji sa Apache CGI sučelje za proizvodnju grafičkih html izlaza za praćenje Linux boxova.

Na kraju članka ćemo, također, predstaviti kako možete zaštititi Collectd-web interfejs koristeći .hpasswd mehanizam Apache Authentication.

Zahtjevi

Zahtjev ovog članka je da morate imati instalirane Collectd i Collectd-Web na vašem Linux sistemu. Da biste instalirali ove pakete, morate slijediti korake #1 i #2 iz prethodnog članka ove serije na:

  1. Instalirajte Collectd i Collectd-Web u Linux

Slijedite samo sljedeća dva koraka sa gornje veze:


Step 1: Install Collectd Service 
Step 2: Install Collectd-Web and Dependencies 

Kada se ove dvije potrebne stvari uspješno završe, možete nastaviti dalje instrukcije u ovom članku da konfigurirate Collectd-web sa Apache CGI.

Korak 1: Instaliranje Apache Web servera

1. Pod pretpostavkom da ste već instalirali Apache web server na vašem sistemu, ako niste, možete instalirati koristeći sljedeću naredbu u skladu s vašom Linux distribucijom.


apt-get install apache2	[On Debian based Systems]
yum install httpd		[On RedHat based Systems]

2. Nakon što instalirate Apache, promijenite direktorij u svoj zadani korijen dokumenta web servera (koji se nalazi pod /var/www/html/ ili /var/www sistemsku putanju i klonirajte projekat Collectd-web Github izdavanjem sljedećih naredbi:


cd /var/www/html
git clone https://github.com/httpdss/collectd-web.git

Također, učinite sljedeću Collectd-web skriptu izvršnom izdavanjem sljedeće naredbe:


chmod +x /var/www/html/collectd-web/cgi-bin/graphdefs.cgi

Korak 2: Omogućite Apache CGI (.cgi skripte) za podrazumevani host

3. Da bi Apache mogao pokrenuti CGI skripte koje se nalaze ispod zadanog host HTML Collectd-web cgi-bin direktorija, morate eksplicitno omogućiti Apache CGI interfejs za Bash skripte (sa .cgi ekstenzija) promjenom dostupnih web lokacija zadanog hosta i dodavanjem bloka iskaza ispod.

Na Debian sistemima

Prvo otvorite Apache zadanu konfiguracijsku datoteku hosta za uređivanje sa nano editorom:


nano /etc/apache2/sites-available/000-default.conf

Dok je datoteka otvorena za uređivanje, dodajte sljedeći blok direktive ispod Root dokumenta direktive kao što je prikazano na donjoj slici:


<Directory /var/www/html/collectd-web/cgi-bin>
                Options Indexes ExecCGI
                AllowOverride All
                AddHandler cgi-script .cgi
                Require all granted
</Directory>

Nakon što završite sa uređivanjem fajla, zatvorite ga sa CTRL + o i izađite iz nano editora (CTRL+x), zatim omogućite Apache CGI modul i ponovo pokrenite server po redu da primenite sve do sada napravljene promene izdavanjem naredbi u nastavku:


a2enmod cgi cgid
service apache2 restart
OR
systemctl restart apache2.service     [For systemd init scripts]

Na RedHat sistemima

4. Da omogućite Apache CGI interfejs za CentOS/RHEL, otvorite httpd.conf Apache konfiguracioni fajl i dodajte sledeće redove na dno datoteke:


nano /etc/httpd/conf/httpd.conf

Dodajte sljedeći izvod u datoteku httpd.conf.


ScriptAlias /cgi-bin/ “/var/www/html/collectd-web/cgi-bin"
Options FollowSymLinks ExecCGI
AddHandler cgi-script .cgi .pl

Da biste primijenili promjene, ponovo pokrenite httpd demon izdavanjem sljedeće naredbe:


service httpd restart
OR
systemctl restart httpd        [For systemd init scripts]

Korak 3: Pregledajte Collectd-web interfejs

5. Da biste posjetili Collectd-web sučelje i vizualizirali do sada prikupljene statistike o vašem stroju, otvorite preglednik i idite na svoj uređaj IP Address/collectd- web/ URI lokacija pomoću HTTP protokola.


http://192.168.1.211/collect-web/

Korak 4: Zaštitite lozinkom URL Collectd-web koristeći Apache autentifikaciju

6. U slučaju da želite ograničiti pristup Collectd-web sučelju tako što ćete ga zaštititi korištenjem Apache Authentication mehanizma (.htpasswd), koji zahtijeva posjetitelje da unesete korisničko ime i lozinku za pristup web resursu.

Da biste to učinili, morate instalirati paket apache2-utils i kreirati skup vjerodajnica za lokalnu autentifikaciju. Da biste postigli ovaj cilj, prvo izdajte sljedeću naredbu za instalaciju apache2-utils paketa:


apt-get install apache2-utils	        [On Debian based Systems]
yum install httpd-tools		[On RedHat based Systems]

7. Zatim generirajte korisničko ime i lozinku koje će biti pohranjene u skrivenoj lokalnoj .htpass datoteci koja se nalazi pod Apache zadanim hostom Collectd-web putanje izdavanjem naredbe ispod:


htpasswd -c /var/www/html/collectd-web/.htpass  your_username

Pokušajte zaštititi ovu datoteku dodjeljivanjem sljedećih dozvola:


chmod 700 /var/www/html/collectd-web/.htpass
chown www-data /var/www/html/collectd-web/.htpass

8. U sljedećem koraku, nakon što ste generirali .htpass datoteku, otvorite Apache default host za uređivanje i uputite server da koristi htpasswd basic autentifikaciju na strani servera dodavanjem sljedećeg bloka direktive kao što je ilustrovano na snimku ekrana ispod:


<Directory /var/www/html/collectd-web >
                AuthType Basic
                AuthName "Collectd Restricted Page"
                AuthBasicProvider file
                AuthUserFile /var/www/html/collectd-web/.htpass 
                Require valid-user
</Directory>

9. Posljednji korak kako bi se odrazile promjene je ponovno pokretanje Apache servera izdavanjem donje naredbe i posjetite URL stranicu Coollectd-web kao gore opisano.

Na web stranici bi se trebao pojaviti skočni prozor sa zahtjevom za vaše vjerodajnice za autentifikaciju. Koristite korisničko ime i lozinku kreiranu ranije za pristup Collectd web sučelju.


service apache2 restart		[On Debian based Systems]
service httpd restart			[On RedHat based Systems]

OR
---------------- For systemd init scripts ----------------
systemctl restart apache2.service		
systemctl restart http.service