Serverressourcen mit Collectd-web und Apache CGI in Linux überwachen

Dieses Tutorial wird erläutern, wie Sie die Collectd-web-Schnittstelle installieren und ausführen können, die ein Frontend-Webüberwachungstool für den Collectd-Daemon ist, in Verbindung mit der Apache CGI-Schnittstelle, um grafische HTML-Ausgaben zu erzeugen, um Linux-Boxen zu überwachen.

Monitor Linux Server Resources

Am Ende des Artikels werden wir auch vorstellen, wie Sie die Collectd-web-Schnittstelle mithilfe des .hpasswd-Apache-Authentifizierungsmechanismus schützen können.

Anforderungen

Die Voraussetzung für diesen Artikel ist, dass Sie Collectd und Collectd-Web auf Ihrem Linux-System installiert haben. Um diese Pakete zu installieren, müssen Sie die Schritte #1 und #2 aus dem vorherigen Artikel dieser Serie unter folgendem Link befolgen:

  1. Installieren von Collectd und Collectd-Web in Linux

Befolgen Sie nur die folgenden beiden Schritte aus dem obigen Link:

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

Sobald diese beiden erforderlichen Schritte erfolgreich abgeschlossen sind, können Sie die weiteren Anweisungen in diesem Artikel befolgen, um Collectd-web mit Apache CGI zu konfigurieren.

Schritt 1: Apache Webserver installieren

1. Nehmen Sie an, dass Sie bereits den Apache-Webserver auf Ihrem System installiert haben. Andernfalls können Sie ihn gemäß Ihrer Linux-Distribution mit folgendem Befehl installieren.

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

Nach der Installation von Apache ändern Sie das Verzeichnis zum Standard-Webserver-Stammverzeichnis (das sich unter /var/www/html/ oder /var/www im Systempfad befindet) und klonen Sie das Collectd-web Github-Projekt, indem Sie die folgenden Befehle ausführen:

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

Machen Sie außerdem das folgende Collectd-web-Skript ausführbar, indem Sie den folgenden Befehl ausführen:

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

Schritt 2: Aktivieren Sie Apache CGI (.cgi-Skripte) für den Standard-Host

3. Damit Apache die CGI-Skripte im Standard-Host-HTML-Collectd-web-cgi-bin-Verzeichnis ausführen kann, müssen Sie die Apache CGI-Schnittstelle für Bash-Skripte (mit der Erweiterung .cgi) explizit aktivieren, indem Sie das Standard-Host- und Hinzufügen der folgenden Anweisungsblock.

Auf Debian-Systemen

Öffnen Sie zunächst die Apache-Standard-Hostkonfigurationsdatei zum Bearbeiten mit dem Editor nano:

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

Fügen Sie während der Bearbeitung der Datei den folgenden Anweisungsblock unterhalb der Anweisung Document Root hinzu, wie auf dem untenstehenden Bild dargestellt:

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

Nachdem Sie die Bearbeitung der Datei abgeschlossen haben, schließen Sie sie mit STRG + o und verlassen Sie den Nano-Editor (STRG+x), aktivieren Sie das Apache-CGI-Modul und starten Sie den Server neu, um alle bisher vorgenommenen Änderungen anzuwenden, indem Sie die folgenden Befehle eingeben:

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

Auf RedHat-Systemen

4. Um die Apache-CGI-Schnittstelle für CentOS/RHEL zu aktivieren, öffnen Sie die Apache-Konfigurationsdatei httpd.conf und fügen Sie die folgenden Zeilen am Ende der Datei hinzu:

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

Fügen Sie den folgenden Auszug zur Datei httpd.conf hinzu.

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

Um die Änderungen anzuwenden, starten Sie den httpd-Daemon neu, indem Sie den folgenden Befehl eingeben:

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

Schritt 3: Durchsuchen Sie die Collectd-web-Benutzeroberfläche

5. Um die Collectd-web-Benutzeroberfläche zu besuchen und Statistiken über Ihren bisher gesammelten Rechner zu visualisieren, öffnen Sie einen Browser und navigieren Sie unter Verwendung des HTTP-Protokolls zu Ihrem Rechner IP-Adresse/collectd-web/.

http://192.168.1.211/collect-web/
Collectd-Web Dashboard

Schritt 4: Schützen Sie die Collectd-web-URL mit der Apache-Authentifizierung

6. Wenn Sie den Zugriff auf die Collectd-web-Benutzeroberfläche einschränken möchten, indem Sie sie mit dem Apache-Authentifizierungsmechanismus (.htpasswd) schützen, der Besucher dazu verpflichtet, einen Benutzernamen und ein Passwort einzugeben, um auf eine Webressource zuzugreifen.

Um dies zu erreichen, müssen Sie das Paket apache2-utils installieren und einen Satz Anmeldeinformationen für die lokale Authentifizierung erstellen. Um dieses Ziel zu erreichen, geben Sie zuerst den folgenden Befehl ein, um das Paket apache2-utils zu installieren:

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

7. Generieren Sie als nächstes einen Benutzernamen und ein Passwort, die in einer versteckten lokalen .htpass-Datei gespeichert werden, die sich im Standard-Hostpfad von Apache Collectd-web befindet, indem Sie den folgenden Befehl eingeben:

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

Versuchen Sie, diese Datei zu schützen, indem Sie die folgenden Berechtigungen zuweisen:

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

8. Im nächsten Schritt, nachdem Sie die Datei .htpass generiert haben, öffnen Sie den Standard-Host von Apache zum Bearbeiten und weisen Sie den Server an, die Basis-Serverauthentifizierung mit htpasswd zu verwenden, indem Sie den folgenden Direktivenblock hinzufügen, wie auf dem untenstehenden Screenshot dargestellt:

<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>
Apache Password Protect Directory

9. Der letzte Schritt, um die Änderungen zu reflektieren, besteht darin, den Apache-Server neu zu starten, indem Sie den folgenden Befehl ausführen und die URL-Seite Coollectd-web wie oben beschrieben besuchen.

A pop-up should appear on the web page requesting for your authentication credentials. Use the username and password created earlier to access Collectd web interface.

# 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  
Apache Password Authentication
Collectd-Web Panel

Source:
https://www.tecmint.com/monitor-linux-server-resources-with-collectd-web-and-apache-cgi/