使用 Collectd-web 和 Apache CGI 在 Linux 監控伺服器資源

本教程將討論如何安裝和運行Collectd-web界面,這是一個用於Collectd守護程序的前端 Web 監控工具,以及Apache CGI界面,以產生圖形 HTML 輸出以監控 Linux 主機。

Monitor Linux Server Resources

在本文的最後,我們還將介紹如何使用.hpasswd Apache 認證機制來保護 Collectd-web 介面。

需求

本文的要求是,您必須在 Linux 系統上安裝了CollectdCollectd-Web。要安裝這些軟件包,您必須按照本系列先前文章中的步驟#1#2進行操作,鏈接如下:

  1. 在 Linux 中安裝 Collectd 和 Collectd-Web

只需按照上述鏈接中的以下兩個步驟:

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

完成這兩個必要步驟後,您可以繼續閱讀本文中關於配置Collectd-webApache CGI的進一步說明。

步驟 1:安裝 Apache Web 伺服器

1.假設您已經在系統上安裝了 Apache Web 伺服器,如果尚未安裝,您可以根據您的 Linux 發行版使用以下命令進行安裝。

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

2. 安裝 Apache 後,將目錄更改為您的預設網頁伺服器文件根目錄(位於 /var/www/html//var/www 系統路徑),然後使用以下命令克隆 Collectd-web Github 專案:

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

同時,通過以下命令使以下 Collectd-web 腳本可執行:

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

步驟 2:啟用 Apache 的 CGI(.cgi 腳本)預設主機的支援

3. 為了讓 Apache 執行預設主機 HTML Collectd-web cgi-bin 目錄下的 CGI 腳本,您需要明確為 Bash 腳本(帶有 .cgi 擴展名)啟用 Apache 的 CGI 介面,方法是修改 sites-available 預設主機並添加以下語句塊。

在 Debian 系統上

首先使用 nano 編輯器打開 Apache 預設主機配置文件:

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

在文件編輯時,在下圖所示的 Document Root 語句之下添加以下指示塊:

<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

編輯完成後,使用 CTRL + o 保存並退出 nano 編輯器 (CTRL+x),然後通過以下命令啟用 Apache 的 CGI 模塊並重新啟動伺服器,以應用到目前為止所做的所有更改:

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

在 RedHat 系統上

4. 要為 CentOS/RHEL 啟用 Apache 的 CGI 介面,打開 httpd.conf Apache 配置文件,並在文件底部添加以下行:

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

將以下摘錄加入到 httpd.conf 档。

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

為了套用更改,請重新啟動 httpd 守护进程,執行以下命令:

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

步驟 3: 浏览 Collectd-web 界面

5. 為了訪問 Collectd-web 界面並可视化管理員至今收集到的統計信息,請開啟瀏覽器,並使用 HTTP 協議转到您的機器 IP Address/collectd-web/ URI 位置。

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

步驟 4: 使用 Apache 认证保護 Collectd-web 网址

6. 如果您想通過使用 Apache 认证機制(Collectd-web)限制訪問,這需要訪客輸入用戶名和密碼才能訪問網絡資源。.htpasswd

要做到这一点,您需要安裝 apache2-utils 包,並為本地認證創建一组憑證。為此目標,首先发出以下命令以安裝 apache2-utils 包:

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

7. 接下來,通過下达以下命令生成用戶名和密碼,該密碼將儲存在 Apache 默認主機 Collectd-web 路徑下的隱藏本地 .htpasswd 文件中:

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

嘗試通過分配以下權限來保護此文件:

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

8. 在下一步中,生成.htpass文件后,打开Apache默认主机进行编辑,并通过添加以下指令块来指示服务器使用htpasswd基本的服务器端身份验证,如下面的屏幕截图所示:

<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. 为了反映更改,最后一步是通过下面的命令重新启动Apache服务器,并按照上述描述访问Coollectd-webURL页面。

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/