Wyszukiwanie w witrynie

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 sieci WWW dla demona Collectd w połączeniu z Apache CGI interfejs w celu tworzenia graficznych wyników HTML w celu monitorowania urządzeń Linux.

Na końcu artykułu zaprezentujemy także, w jaki sposób można zabezpieczyć interfejs Collectd-web za pomocą mechanizmu .hpasswd Apache Authentication.

Wymagania

Wymóg tego artykułu jest taki, że w systemie Linux musisz mieć zainstalowane programy Collectd i Collectd-Web. Aby zainstalować te pakiety, wykonaj kroki #1 i #2 z poprzedniego artykułu z tej serii pod adresem:

  1. Zainstaluj Collectd i Collectd-Web w systemie Linux

Wykonaj tylko dwa kroki z powyższego linku:


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

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

Krok 1: Instalacja serwera WWW Apache

1. Zakładając, że masz już zainstalowany serwer WWW Apache w swoim systemie, jeśli nie, możesz przeprowadzić instalację za pomocą następującego polecenia, 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 dokumentów serwera WWW (który znajduje się w /var/www/html/ lub /var/www ścieżkę systemową i sklonuj projekt Collectd-web Github, wydając poniższe polecenia:


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

Zmień także następujący skrypt Collectd-web na wykonywalny, wydają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 Collectd-web cgi-bin hosta, musisz jawnie włączyć interfejs Apache CGI dla skryptów Bash (z .cgi ), zmieniając domyślny host dostępne w witrynach i dodając poniższy blok instrukcji.

W systemach Debian

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 dyrektyw poniżej dyrektywy Document Root, 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 wyjdź z edytora nano (CTRL+x), następnie włącz moduł Apache CGI i zrestartuj serwer w podanej kolejności aby zastosować wszystkie wprowadzone do tej pory zmiany, wydając poniższe polecenia:


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

W systemach RedHat

4. Aby włączyć interfejs CGI Apache dla CentOS/RHEL, otwórz plik konfiguracyjny httpd.conf 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 należy zrestartować 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ć zebrane dotychczas statystyki dotyczące Twojego komputera, otwórz przeglądarkę i przejdź do adresu IP/zebranego- urządzenia web/ lokalizacja URI przy użyciu protokołu HTTP.


http://192.168.1.211/collect-web/

Krok 4: Zabezpiecz hasłem adres URL zebranej sieci internetowej przy użyciu 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 od odwiedzających do wprowadzenia nazwy użytkownika i hasła w celu uzyskania dostępu do zasobu sieciowego.

Aby to zrobić, musisz zainstalować pakiet apache2-utils i utworzyć zestaw danych uwierzytelniających do lokalnego uwierzytelniania. Aby osiągnąć ten cel, najpierw wydaj 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ę na domyślnym hoście Apache Collectd-web ścieżkę, 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ślny host Apache do edycji i poinstruuj serwer, aby używał podstawowego htpasswd uwierzytelnianie po stronie serwera, dodając następujący blok 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 poprzez wydanie poniższego polecenia i odwiedzenie strony URL Coollectd-web jako opisane powyżej.

Na stronie internetowej powinno pojawić się wyskakujące okienko z prośbą o podanie danych uwierzytelniających. Użyj utworzonej wcześniej nazwy użytkownika i hasła, 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