Pesquisa de site

Monitore recursos do servidor com Collectd-web e Apache CGI no Linux


Este tutorial discutirá como você pode instalar e executar a interface Collectd-web, que é uma ferramenta front-end de monitoramento da web para o daemon Collectd, em conjunto com o Apache CGI para produzir saídas gráficas em HTML para monitorar caixas Linux.

No final do artigo iremos, também, apresentar como você pode proteger a interface Collectd-web usando o mecanismo .hpasswd de autenticação Apache.

Requisitos

O requisito deste artigo é que você deve ter Collectd e Collectd-Web instalados em seu sistema Linux. Para instalar esses pacotes, você deve seguir as etapas #1 e #2 do artigo anterior desta série em:

  1. Instale Collectd e Collectd-Web no Linux

Siga apenas as duas etapas do link acima:


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

Depois que essas duas coisas necessárias forem concluídas com êxito, você poderá continuar com as instruções adicionais neste artigo para configurar o Collectd-web com o Apache CGI.

Etapa 1: Instalando o Servidor Web Apache

1. Supondo que você já tenha instalado o servidor web Apache em seu sistema, caso contrário, você pode instalar usando o seguinte comando de acordo com sua distribuição Linux.


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

2. Após a instalação do Apache, altere o diretório para a raiz de documentos padrão do servidor web (localizada em /var/www/html/ ou /var/www caminho do sistema e clone o projeto Collectd-web Github emitindo os comandos abaixo:


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

Além disso, torne o seguinte script Collectd-web executável emitindo o seguinte comando:


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

Etapa 2: Habilitar Apache CGI (scripts .cgi) para host padrão

3. Para que o Apache execute os scripts CGI localizados no diretório HTML Collectd-web cgi-bin do host padrão, você precisa ativar explicitamente a interface Apache CGI para scripts Bash (com .cgi ) alterando o host padrão de sites disponíveis e adicionando o bloco de instruções abaixo.

Em sistemas Debian

Primeiro abra o arquivo de configuração do host padrão do Apache para edição com o editor nano:


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

Enquanto o arquivo é aberto para edição, adicione o seguinte bloco de diretiva abaixo da diretiva Document Root conforme ilustrado na imagem abaixo:


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

Depois de terminar de editar o arquivo, feche-o com CTRL + o e saia do nano editor (CTRL+x), ative o módulo Apache CGI e reinicie o servidor na ordem para aplicar todas as alterações feitas até agora emitindo os comandos abaixo:


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

Em sistemas RedHat

4. Para ativar a interface Apache CGI para CentOS/RHEL, abra o arquivo de configuração httpd.conf do Apache e adicione as seguintes linhas na parte inferior do arquivo:


nano /etc/httpd/conf/httpd.conf

Adicione o seguinte trecho ao arquivo httpd.conf.


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

Para aplicar as alterações, reinicie o daemon httpd emitindo o seguinte comando:


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

Etapa 3: navegar na interface do Collectd-web

5. Para visitar a interface Collectd-web e visualizar as estatísticas sobre sua máquina coletadas até o momento, abra um navegador e navegue até o Endereço IP/collectd- localização do URI web/ usando o protocolo HTTP.


http://192.168.1.211/collect-web/

Etapa 4: URL Collectd-web protegido por senha usando autenticação Apache

6. Caso você queira limitar o acesso à interface Collectd-web protegendo-a usando o mecanismo de autenticação Apache (.htpasswd), que requer visitantes para inserir um nome de usuário e uma senha para acessar um recurso da web.

Para fazer isso, você precisa instalar o pacote apache2-utils e criar um conjunto de credenciais para autenticação local. Para atingir esse objetivo, primeiro emita o seguinte comando para instalar o pacote apache2-utils:


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

7. Em seguida, gere um nome de usuário e uma senha que serão armazenados em um arquivo .htpass local oculto localizado no host padrão do Apache Collectd-web caminho emitindo o comando abaixo:


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

Tente proteger este arquivo atribuindo as seguintes permissões:


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

8. Na próxima etapa, depois de gerar o arquivo .htpass, abra o host padrão do Apache para edição e instrua o servidor a usar o htpasswd básico autenticação do lado do servidor adicionando o seguinte bloco de diretiva conforme ilustrado na captura de tela abaixo:


<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. A última etapa para refletir as alterações é reiniciar o servidor Apache emitindo o comando abaixo e visitar a página URL Coollectd-web como descrito acima.

Um pop-up deverá aparecer na página da web solicitando suas credenciais de autenticação. Use o nome de usuário e a senha criados anteriormente para acessar a interface web do 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