Overvåg serverressourcer med Collectd-web og Apache CGI i Linux


Denne vejledning vil diskutere, hvordan du kan installere og køre Collectd-web-interface, som er et front-end-webovervågningsværktøj til Collectd-dæmon, i forbindelse med Apache CGI-interface for at producere grafiske html-output for at overvåge Linux-kasser.

I slutningen af artiklen præsenterer vi også, hvordan du kan beskytte Collectd-web-interface ved hjælp af .hpasswd Apache-godkendelsesmekanisme.

Kravet i denne artikel er, at du skal have Collectd og Collectd-Web installeret på dit Linux-system. For at installere disse pakker skal du følge trin 1 og nr. 2 fra den forrige artikel i denne serie på:

  1. Installer Collectd og Collectd-Web i Linux

Følg kun følgende to trin fra ovenstående link:

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

Når disse to nødvendige ting er gennemført med succes, kan du fortsætte yderligere instruktioner i denne artikel for at konfigurere Collectd-web med Apache CGI.

Trin 1: Installation af Apache-webserver

1. Forudsat at du allerede har installeret Apache-webserver på dit system, kan du ikke installere ved hjælp af følgende kommando i henhold til din Linux-distribution.

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

2. Når Apache er installeret, skal du ændre biblioteket til din standardwebservers dokumentrod (som ligger under/var/www/html/eller/var/www systemsti og klone Collectd-web Github-projektet ved at udstede nedenstående kommandoer:

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

Gør også følgende Collectd-web-script eksekverbart ved at udstede følgende kommando:

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

Trin 2: Aktivér Apache CGI (.cgi-scripts) for standardhost

3. For at Apache kan køre CGI-scripts, der er placeret under standardværts-HTML Collectd-web cgi-bin-biblioteket, skal du eksplicit aktivere Apache CGI-grænseflade til Bash-scripts (med .cgi-udvidelse) ved at ændre den websteds-tilgængelige standardhost og tilføje nedenstående udsagn blok.

Åbn først Apache-standardværtskonfigurationsfil til redigering med nano-editor:

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

Mens filen åbnes til redigering, skal du tilføje følgende direktivblok under dokumentroddirektivet som illustreret på nedenstående billede:

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

Når du er færdig med at redigere filen, skal du lukke den med CTRL + o og afslutte nano-editoren (CTRL + x), derefter aktivere Apache CGI-modulet og genstarte serveren for at anvende alle de ændringer, der er foretaget hidtil ved at udstede nedenstående kommandoer:

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

4. For at aktivere Apache CGI interface til CentOS/RHEL skal du åbne httpd.conf Apache konfigurationsfil og tilføje følgende linjer i bunden af filen:

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

Tilføj følgende uddrag til filen httpd.conf.

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

For at anvende ændringer skal du genstarte httpd-dæmonen ved at udstede følgende kommando:

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

Trin 3: Gennemse Collectd-web-interface

5. For at besøge Collectd-web-interface og visualisere statistikker om din maskine, der hidtil er indsamlet, skal du åbne en browser og navigere til din maskins IP-adresse/collectd-web/URI-placering ved hjælp af HTTP-protokollen.

http://192.168.1.211/collect-web/

Trin 4: Adgangskodebeskyttet Collectd-web-URL ved hjælp af Apache-godkendelse

6. Hvis du vil begrænse adgangen til Collectd-web-interface ved at beskytte den ved hjælp af Apache-godkendelsesmekanisme (.htpasswd), som kræver, at besøgende indtaster et brugernavn og en adgangskode for at få adgang til en webressource.

For at gøre dette skal du installere apache2-utils-pakken og oprette et sæt legitimationsoplysninger til lokal godkendelse. For at nå dette mål skal du først udstede følgende kommando for at installere pakken apache2-utils:

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

7. Derefter skal du oprette et brugernavn og en adgangskode, der gemmes i en skjult lokal .htpass-fil placeret under Apache-standardværten Collectd-web-sti ved at udstede nedenstående kommando:

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

Prøv at beskytte denne fil ved at tildele følgende tilladelser:

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

8. På det næste trin, når du har genereret .htpass-fil, skal du åbne Apache-standardværten til redigering og instruere serveren om at bruge htpasswd grundlæggende servergodkendelse ved at tilføje følgende direktivblok som vist på nedenstående skærmbillede:

<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 sidste trin for at afspejle ændringer er at genstarte Apache-serveren ved at udstede nedenstående kommando og besøge Coollectd-web-URL-siden som beskrevet ovenfor.

En pop op vises på websiden, der beder om dine autentificeringsoplysninger. Brug brugernavnet og adgangskoden, der blev oprettet tidligere, for at få adgang til Collectd webgrænseflade.

# 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