网站搜索

在 Linux 中使用 Collectd-web 和 Apache CGI 监控服务器资源


本教程将讨论如何安装和运行 Collectd-web 界面,它是 Collectd 守护进程的前端 Web 监控工具,与 Apache CGI 结合使用 界面,以便生成图形 html 输出,以便监控 Linux 盒子。

在文章的最后,我们还将介绍如何使用 .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 

成功完成这两项必需的操作后,您可以继续本文中的进一步说明,使用 Apache CGI 配置 Collectd-web

第 1 步:安装 Apache Web 服务器

1. 假设您的系统上已经安装了 Apache Web 服务器,如果没有,您可以根据您的 Linux 发行版使用以下命令进行安装。


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

2. Apache 安装后,将目录更改为默认 Web 服务器文档根目录(位于 /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 脚本的 Apache CGI 接口(使用 .cgi 扩展)通过更改 sites-available 默认主机并添加以下语句块。

在 Debian 系统上

首先打开Apache默认主机配置文件,使用nano编辑器进行编辑:


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

打开文件进行编辑时,在文档根指令下方添加以下指令块,如下图所示:


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

编辑完文件后,使用CTRL + o关闭它并退出nano编辑器(CTRL+x),然后启用Apache CGI模块并按顺序重新启动服务器通过发出以下命令来应用迄今为止所做的所有更改:


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

在 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]

第三步:浏览 Collectd-web 界面

5.为了访问Collectd-web界面并可视化迄今为止收集到的有关您机器的统计信息,请打开浏览器并导航到您的机器IP地址/collectd- web/ 使用 HTTP 协议的 URI 位置。


http://192.168.1.211/collect-web/

第 4 步:使用 Apache 身份验证对 Collectd-web URL 进行密码保护

6. 如果您想通过使用 Apache 身份验证机制 (.htpasswd) 保护 Collectd-web 界面来限制对它的访问,这需要访问者输入用户名和密码以访问网络资源。

为此,您需要安装 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 下隐藏的本地 .htpass 文件中通过发出以下命令来路径:


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 basic通过添加以下指令块进行服务器端身份验证,如下面的屏幕截图所示:


<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. 为了反映更改,最后一步是通过发出以下命令重新启动 Apache 服务器并访问 Coollectd-web URL 页面:如上所述。

网页上应出现一个弹出窗口,请求您提供身份验证凭据。使用之前创建的用户名和密码访问 Collectd Web 界面。


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