Поиск по сайту:

Мониторинг ресурсов сервера с помощью Collectd-web и Apache CGI в Linux


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

В конце статьи мы также представим, как можно защитить веб-интерфейс Collectd с помощью механизма аутентификации .hpasswd Apache.

Требования

Требование этой статьи: в вашей системе Linux должны быть установлены Collectd и Collectd-Web. Чтобы установить эти пакеты, необходимо выполнить шаги #1 и #2 из предыдущей статьи этой серии по адресу:

  1. Установите Collectd и Collectd-Web в Linux

Выполните только следующие два шага по ссылке выше:


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, расположенные в каталоге хоста HTML Collectd-web cgi-bin по умолчанию, вам необходимо явно включить интерфейс Apache CGI для сценариев Bash (с .cgi). ), изменив хост по умолчанию доступные для сайтов и добавив приведенный ниже блок операторов.

В системах 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, откройте файл конфигурации 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

5. Чтобы посетить интерфейс Collectd-web и просмотреть статистику о вашем компьютере, собранную на данный момент, откройте браузер и перейдите к своему компьютеру IP Address/collectd- web/ расположение URI с использованием протокола 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 как описано выше.

На веб-странице должно появиться всплывающее окно с запросом учетных данных для аутентификации. Используйте имя пользователя и пароль, созданные ранее, для доступа к веб-интерфейсу 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