Monitoruj zasoby serwera za pomocą Collectd-web i Apache CGI w systemie Linux


W tym samouczku omówiono sposób instalacji i uruchamiania interfejsu Collectd-web , który jest narzędziem do monitorowania stron internetowych dla demona Collectd w połączeniu z Apache CGI interfejs do tworzenia graficznych wyjść HTML w celu monitorowania Linuksa.

Na końcu artykułu przedstawimy również, w jaki sposób można chronić interfejs WWW Collectd za pomocą .hpasswd mechanizmu uwierzytelniania Apache.

Zgodnie z wymaganiami tego artykułu musisz mieć Collectd i Collectd-Web zainstalowane w systemie Linux. Aby zainstalować te pakiety, musisz wykonać kroki # 1 i # 2 z poprzedniego artykułu z tej serii pod adresem:

  1. Install Collectd and Collectd-Web in Linux

Tylko wykonaj następujące dwa kroki z powyższego linku:

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

Po pomyślnym zakończeniu tych dwóch wymaganych czynności możesz kontynuować instrukcje w tym artykule, aby skonfigurować Collectd-web z Apache CGI .

Krok 1: Instalacja serwera Web Apache

1. Zakładając, że masz już zainstalowany serwer WWW Apache w swoim systemie, jeśli nie, możesz zainstalować następujące polecenie zgodnie z dystrybucją Linuksa.

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

2. Po zainstalowaniu Apache zmień katalog na domyślny katalog główny serwera WWW (który znajduje się pod /var/www/html/ lub /var/www ścieżka systemowa i sklonuj projekt Collectd-web Github , wydając poniższe polecenia:

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

Wykonaj także następujący skrypt Collectd-web , wykonując następujące polecenie:

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

Krok 2: Włącz Apache CGI (skrypty .cgi) dla Hosta domyślnego

3. Aby Apache mógł uruchamiać skrypty CGI znajdujące się w domyślnym katalogu HTML hostd Collectg-web cgi-bin, musisz jawnie włączyć interfejs Apache CGI dla skryptów Bash (z .cgi rozszerzenie), zmieniając domyślnego hosta dostępne witryny i dodając poniższy blok instrukcji.

Najpierw otwórz domyślny plik konfiguracyjny hosta Apache do edycji za pomocą edytora nano :

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

Gdy plik jest otwarty do edycji, dodaj następujący blok dyrektywy poniżej dyrektywy Korzeń dokumentu , jak pokazano na poniższym obrazku:

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

Po zakończeniu edycji pliku zamknij go za pomocą CTRL + o i zamknij edytor nano (CTRL + x) , a następnie włącz moduł Apache CGI i ponownie uruchom serwer w celu zastosować wszystkie dotychczasowe zmiany, wydając poniższe polecenia:

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

4. Aby włączyć interfejs Apache CGI dla CentOS/RHEL, otwórz httpd.conf plik konfiguracyjny Apache i dodaj następujące wiersze na dole pliku:

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

Dodaj następujący fragment do pliku httpd.conf .

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

Aby zastosować zmiany, uruchom ponownie demona httpd , wydając następującą komendę:

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

Krok 3: Przeglądaj interfejs Collectd-web

5. Aby odwiedzić interfejs Collectd-web i wizualizować statystyki dotyczące zebranej maszyny, otwórz przeglądarkę i przejdź do swojego urządzenia Adres IP/collectd- web/ lokalizacja URI przy użyciu protokołu HTTP.

http://192.168.1.211/collect-web/

Krok 4: Hasło Chroń adres URL Collectd za pomocą uwierzytelniania Apache

6. Jeśli chcesz ograniczyć dostęp do interfejsu Collectd-web , chroniąc go za pomocą mechanizmu uwierzytelniania Apache ( .htpasswd ), który wymaga użytkowników aby wprowadzić nazwę użytkownika i hasło, aby uzyskać dostęp do zasobów internetowych.

Aby to zrobić, musisz zainstalować pakiet apache2-utils i utworzyć zestaw danych uwierzytelniających. Aby osiągnąć ten cel, najpierw uruchom następujące polecenie, aby zainstalować pakiet apache2-utils :

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

7. Następnie wygeneruj nazwę użytkownika i hasło, które będą przechowywane w ukrytym lokalnym pliku .htpass znajdującym się pod domyślnym hostem Apache Collectd-web ścieżka, wydając poniższe polecenie:

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

Spróbuj chronić ten plik, przypisując następujące uprawnienia:

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

8. W następnym kroku, po wygenerowaniu pliku .htpass , otwórz domyślnego hosta Apache do edycji i poinstruuj serwer, aby użył htpasswd podstawowego uwierzytelnianie po stronie serwera przez dodanie następującego bloku dyrektyw, jak pokazano na poniższym zrzucie ekranu:

<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. Ostatnim krokiem w celu odzwierciedlenia zmian jest ponowne uruchomienie serwera Apache przez wykonanie poniższego polecenia i przejście na stronę URL Coollectd- opisane powyżej.

Na stronie internetowej pojawi się wyskakujące okienko z prośbą o podanie danych uwierzytelniających. Użyj nazwy użytkownika i hasła utworzonego wcześniej, aby uzyskać dostęp do interfejsu internetowego Collectd.

# 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