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:
- 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