sábado, 23 de janeiro de 2010

Compilando o suporte SNMP ao Apache 2.2

Hoje, resolvi habilitar o suporte a SNMP no Apache 2.2 que tenho instalado no CentOS 5.4.

Eu tinha visto o módulo há algum tempo atrás mas não tinha tempo para sentar e colocá-lo para funcionar. Com ele é possível obter informações como exibidas abaixo:

Threads Ocupadas e Threads livres

Bytes por requisição

Bytes por segundo

Não consegui encontrar o respectivo pacote compilado e pronto, então tive que por as mãos na massa.

Continuar lendo...


Baixei os pacotes de desenvolvimento necessários para a compilação (net-snmp-devel, rpm-devel, openssl-devel e httpd-devel basicamente).

Para não gastar muito tempo criando um SPEC para a compilação, tomei emprestado o SRC do pacote para o OpenSUSE e fiz algumas alterações de nomes de arquivos e dependências necessárias para compilá-lo e posteriormente poder instalá-lo.

Minhas alterações no arquivo original foram:
  • Na linha 10, substituí "%define apxs /usr/sbin/apxs2" por "%define apxs /usr/sbin/apxs"
  • Linha 19, troquei "Name: apache2-mod_snmp" por "Name: mod_ap2_snmp"
  • Na linha 31 foi necessário ajustar a versão do net-snmp removendo o sufixo mdk no final, ficando "Requires: net-snmp >= 5.2.1.2-3"
  • Mudei a linha 32 de "Requires: apache2 %{apache_mmn}" para "Requires: httpd %{apache_mmn}"
  • Na linha 33 substituí "BuildRequires: apache2-devel" por "BuildRequires: httpd-devel"
  • Removi a linha 30 (Requires: net-snmp-mibs >= 5.2.1.2-3mdk). As MIBS já estão presentes no pacote net-snmp do CentOS.
  • Removi também a linha 34 (BuildRequires: apache2-prefork).
  • Renomeei o arquivo de apache2-mod_snmp.spec para mod_ap2_snmp.spec
Feitas as alterações, parti para a geração do pacote (rpmbuild -bb mod_ap2_snmp.spec).
Uma vez compilado, faltou apenas instalá-lo (rpm -ivh mod_ap2_snmp-1.04-5.1.i386.rpm). Após a instalação, parti para a configuração básica do módulo. Dentro do diretório /etc/httpd/conf.d criei o arquivo mod_ap2_snmp.conf com o seguinte conteúdo:
LoadModule ap2_snmp_module modules/mod_ap2_snmp.so

[Location /ap2_snmp]
# handler managed by snmp module.
Sethandler ap2_snmp
Order Deny,Allow
Deny from all
Allow from 127.0.0.1
[/Location]
Após o arquivo de configuração ser criado, reiniciei o serviço do Apache e acessei a nova location criada acima. Um simples "OK" indicou que tudo estava funcionando.

Fica aí a sugestão.

Nenhum comentário: