Overvåk serverressurser med Collectd-web og Apache CGI i Linux


Denne opplæringen vil diskutere hvordan du kan installere og kjøre Collectd-webgrensesnitt, som er et front-end webovervåkingsverktøy for Collectd daemon, i forbindelse med Apache CGI-grensesnitt for å produsere grafiske html-utganger for å overvåke Linux-bokser.

På slutten av artikkelen vil vi også presentere hvordan du kan beskytte Collectd-webgrensesnittet ved å bruke .hpasswd Apache Authentication-mekanisme.

Kravet til denne artikkelen er at du må ha Collectd og Collectd-Web installert på Linux-systemet ditt. For å installere disse pakkene må du følge trinn #1 og #2 fra forrige artikkel i denne serien på:

  1. Installer Collectd og Collectd-Web i Linux

Følg bare følgende to trinn fra lenken ovenfor:

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

Når disse to nødvendige tingene er fullført, kan du fortsette videre instruksjoner i denne artikkelen for å konfigurere Collectd-web med Apache CGI.

Trinn 1: Installere Apache Web Server

1. Forutsatt at du allerede har installert Apache webserver på systemet ditt, hvis ikke kan du installere ved å bruke følgende kommando i henhold til din Linux-distribusjon.

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

2. Etter at Apache er installert, endre katalogen til din standard webserver dokumentrot (som er plassert under /var/www/html/ eller /var/www systembane og klon Collectd-web Github-prosjektet ved å utstede kommandoene nedenfor:

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

Gjør også følgende Collectd-web-skript kjørbart ved å utstede følgende kommando:

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

Trinn 2: Aktiver Apache CGI (.cgi-skript) for standardvert

3. For at Apache skal kjøre CGI-skriptene som ligger under standard verts-HTML Collectd-web cgi-bin-katalogen, må du eksplisitt aktivere Apache CGI-grensesnitt for Bash-skript (med .cgi-utvidelse) ved å endre standardverten som er tilgjengelig for nettsteder og legger til setningsblokken nedenfor.

Åpne først Apache standard vertskonfigurasjonsfil for redigering med nano editor:

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

Mens filen er åpnet for redigering, legg til følgende direktivblokk under Document Root-direktivet som illustrert på bildet nedenfor:

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

Etter at du er ferdig med å redigere filen, lukk den med CTRL + o og avslutt nanoredigering (CTRL+x), aktiver deretter Apache CGI-modulen og start serveren på nytt for å bruke alle endringene som er gjort så langt ved å utstede kommandoene nedenfor:

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

4. For å aktivere Apache CGI-grensesnitt for CentOS/RHEL, åpne httpd.conf Apache-konfigurasjonsfilen og legg til følgende linjer nederst i filen:

# nano /etc/httpd/conf/httpd.conf

Legg til følgende utdrag til httpd.conf-filen.

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

For å bruke endringer, start httpd daemon på nytt ved å utstede følgende kommando:

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

Trinn 3: Bla gjennom Collectd-webgrensesnitt

5. For å besøke Collectd-webgrensesnittet og visualisere statistikk om maskinen din som er samlet inn så langt, åpne en nettleser og naviger til maskinens IP-adresse/collectd-web/URI-plassering ved hjelp av HTTP-protokollen.

http://192.168.1.211/collect-web/

Trinn 4: Passordbeskytt Collectd-web URL ved hjelp av Apache-autentisering

6. I tilfelle du ønsker å begrense tilgangen til Collectd-webgrensesnittet ved å beskytte det ved å bruke Apache Authentication-mekanisme (.htpasswd), som krever at besøkende oppgir et brukernavn og et passord for å få tilgang til en nettressurs.

For å gjøre det, må du installere apache2-utils-pakken og opprette et sett med legitimasjon for lokal autentisering. For å oppnå dette målet, utfør først følgende kommando for å installere pakken apache2-utils:

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

7. Deretter genererer du et brukernavn og et passord som vil bli lagret på en skjult lokal .htpass-fil som ligger under Apaches standard vert Collectd-webbane ved å gi kommandoen nedenfor:

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

Prøv å beskytte denne filen ved å tildele følgende tillatelser:

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

8. På neste trinn, etter at du har generert .htpass-fil, åpner du Apache standardvert for redigering og instruerer serveren til å bruke htpasswd grunnleggende autentisering på serversiden ved å legge til følgende direktivblokk som illustrert på skjermbildet nedenfor:

<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. Det siste trinnet for å gjenspeile endringer er å starte Apache-serveren på nytt ved å gi kommandoen nedenfor og gå til Coollectd-nettadressesiden som beskrevet ovenfor.

En pop-up skal vises på nettsiden som ber om autentiseringslegitimasjonen din. Bruk brukernavnet og passordet som ble opprettet tidligere for å få tilgang til Collectd-nettgrensesnittet.

# 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