Pantau Sumber Daya Server dengan Collectd-web dan Apache CGI di Linux


Tutorial ini akan membahas bagaimana Anda dapat menginstal dan menjalankan antarmuka Collectd-web, yang merupakan alat pemantauan web front-end untuk daemon Collectd, bersama dengan Apache CGI antarmuka untuk menghasilkan keluaran html grafis untuk memantau kotak Linux.

Di akhir artikel kami juga akan menyajikan bagaimana Anda dapat melindungi antarmuka web Collectd menggunakan mekanisme Otentikasi Apache .hpasswd.

Persyaratan

Persyaratan artikel ini adalah, Anda harus menginstal Collectd dan Collectd-Web di sistem Linux Anda. Untuk menginstal paket ini, Anda harus mengikuti Langkah #1 dan #2 dari artikel sebelumnya dalam seri ini di:

  1. Instal Collectd dan Collectd-Web di Linux

Hanya Ikuti dua langkah berikut dari tautan di atas:


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

Setelah kedua hal yang diperlukan ini berhasil diselesaikan, Anda dapat melanjutkan petunjuk lebih lanjut dalam artikel ini untuk mengonfigurasi Collectd-web dengan Apache CGI.

Langkah 1: Menginstal Server Web Apache

1. Dengan asumsi Anda telah menginstal server web Apache di sistem Anda, jika belum, Anda dapat menginstal menggunakan perintah berikut sesuai dengan distribusi Linux Anda.


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

2. Setelah Apache terinstal, ubah direktori ke root dokumen server web default Anda (yang terletak di bawah /var/www/html/ atau /var/www jalur sistem dan kloning proyek Collectd-web Github dengan mengeluarkan perintah di bawah ini:


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

Selain itu, buat skrip Collectd-web berikut dapat dieksekusi dengan mengeluarkan perintah berikut:


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

Langkah 2: Aktifkan Apache CGI (skrip .cgi) untuk Host Default

3. Agar Apache dapat menjalankan skrip CGI yang terletak di bawah direktori host HTML Collectd-web cgi-bin default, Anda perlu secara eksplisit mengaktifkan antarmuka Apache CGI untuk skrip Bash (dengan .cgi extension) dengan mengubah host default sites-available dan menambahkan blok pernyataan di bawah.

Pada Sistem Debian

Pertama, buka file konfigurasi host default Apache untuk diedit dengan editor nano:


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

Saat file dibuka untuk diedit, tambahkan blok arahan berikut di bawah arahan Document Root seperti yang diilustrasikan pada gambar di bawah ini:


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

Setelah Anda selesai mengedit file, tutup dengan CTRL + o dan keluar dari editor nano (CTRL+x), lalu aktifkan modul Apache CGI dan mulai ulang server secara berurutan untuk menerapkan semua perubahan yang dibuat sejauh ini dengan mengeluarkan perintah di bawah ini:


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

Pada Sistem RedHat

4. Untuk mengaktifkan antarmuka Apache CGI untuk CentOS/RHEL, buka httpd.conf file konfigurasi Apache dan tambahkan baris berikut di bagian bawah file:


nano /etc/httpd/conf/httpd.conf

Tambahkan kutipan berikut ke file httpd.conf.


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

Untuk menerapkan perubahan, restart daemon httpd dengan mengeluarkan perintah berikut:


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

Langkah 3: Telusuri Antarmuka Web yang Dikumpulkan

5. Untuk mengunjungi antarmuka Web yang dikumpulkan dan memvisualisasikan statistik tentang mesin Anda yang dikumpulkan sejauh ini, buka browser dan navigasikan ke Alamat IP/kumpulan- mesin Anda web/ lokasi URI menggunakan protokol HTTP.


http://192.168.1.211/collect-web/

Langkah 4: Lindungi URL Collectd-web dengan Kata Sandi menggunakan Otentikasi Apache

6. Jika Anda ingin membatasi akses ke antarmuka Collectd-web dengan melindunginya menggunakan mekanisme Otentikasi Apache (.htpasswd), yang mengharuskan pengunjung untuk memasukkan nama pengguna dan kata sandi untuk mengakses sumber daya web.

Untuk melakukannya, Anda perlu menginstal paket apache2-utils dan membuat satu set kredensial untuk autentikasi lokal. Untuk mencapai tujuan ini, pertama-tama jalankan perintah berikut untuk menginstal paket Apache2-utils:


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

7. Selanjutnya, buat nama pengguna dan kata sandi yang akan disimpan pada file .htpass lokal tersembunyi yang terletak di bawah host default Apache Collectd-web jalur dengan mengeluarkan perintah di bawah ini:


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

Cobalah untuk melindungi file ini dengan memberikan izin berikut:


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

8. Pada langkah berikutnya, setelah Anda membuat file .htpass, buka host default Apache untuk mengedit dan perintahkan server untuk menggunakan htpasswd dasar otentikasi sisi server dengan menambahkan blok arahan berikut seperti yang diilustrasikan pada gambar di bawah:


<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. Langkah terakhir untuk mencerminkan perubahan adalah memulai ulang server Apache dengan mengeluarkan perintah di bawah ini dan mengunjungi laman URL Coollectd-web sebagai dijelaskan di atas.

Sebuah pop-up akan muncul di halaman web yang meminta kredensial otentikasi Anda. Gunakan nama pengguna dan kata sandi yang dibuat sebelumnya untuk mengakses antarmuka web 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