Этот учебник будет обсуждать, как установить и запустить интерфейс Collectd-web, который является инструментом мониторинга веб-интерфейса для демона Collectd, совместно с интерфейсом Apache CGI для создания графических HTML-выводов для мониторинга Linux-боксов.

В конце статьи мы также расскажем, как можно защитить интерфейс Collectd-web, используя механизм аутентификации .hpasswd Apache.
Требования
Требование этой статьи – наличие установленных Collectd и Collectd-Web на вашей системе Linux. Чтобы установить эти пакеты, вам необходимо выполнить шаги #1 и #2 из предыдущей статьи этой серии по ссылке:
Выполните только следующие два шага по ссылке выше:
Step 1: Install Collectd Service Step 2: Install Collectd-Web and Dependencies
Как только эти два необходимых действия будут успешно выполнены, вы можете продолжить дальнейшие инструкции в этой статье по настройке Collectd-web с Apache CGI.
Шаг 1: Установка веб-сервера Apache
1. Предполагая, что у вас уже установлен веб-сервер Apache на вашей системе, если нет, вы можете установить его с помощью следующей команды в соответствии с вашим дистрибутивом 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 мог запускать скрипты CGI, расположенные в каталоге cgi-bin стандартного хоста HTML Collectd-web, вам необходимо явно включить интерфейс Apache CGI для скриптов Bash (с расширением .cgi), изменив конфигурационный файл стандартного хоста sites-available и добавив ниже приведенный блок инструкций.
На системах Debian
Сначала откройте файл конфигурации стандартного хоста Apache для редактирования с помощью редактора nano:
# 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>

После завершения редактирования файла закройте его с помощью CTRL + o и выйдите из редактора nano (CTRL+x), затем включите модуль Apache CGI и перезапустите сервер, чтобы применить все внесенные изменения, выполнив следующие команды:
# a2enmod cgi cgid # service apache2 restart OR # systemctl restart apache2.service [For systemd init scripts]

На системах RedHat
4. Чтобы включить интерфейс Apache CGI для CentOS/RHEL, откройте файл конфигурации Apache httpd.conf и добавьте следующие строки в конец файла:
# 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 и визуализировать статистику о вашем компьютере, откройте браузер и перейдите по адресу вашего компьютера IP-адрес/collectd-web/ с использованием протокола HTTP.
http://192.168.1.211/collect-web/

Шаг 4: Защита паролем URL Collectd-web с использованием аутентификации Apache
6. Если вы хотите ограничить доступ к интерфейсу Collectd-web, защитив его с помощью механизма аутентификации Apache (.htpasswd), который требует от посетителей ввода имени пользователя и пароля для доступа к веб-ресурсу.
Для этого вам необходимо установить пакет apache2-utils и создать набор учетных данных для локальной аутентификации. Для достижения этой цели сначала выполните следующую команду для установки пакета apache2-utils:
# apt-get install apache2-utils [On Debian based Systems] # yum install httpd-tools [On RedHat based Systems]
7. Затем сгенерируйте имя пользователя и пароль, которые будут сохранены в скрытом локальном файле .htpass, расположенном в пути по умолчанию хоста Apache Collectd-web, выполнив следующую команду:
# 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>

9. Последний шаг для отражения изменений – перезапустить сервер Apache, выполнив нижеприведенную команду, и посетить страницу URL Coollectd-web, как описано выше.
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


Source:
https://www.tecmint.com/monitor-linux-server-resources-with-collectd-web-and-apache-cgi/