[Ubuntu-BR] [OT] Ubuntu-Server + Squid + Nagios
Silva, Thiago Alexandre Vitorino Da
Thiago.Vitorino em brasmarcis.com
Quarta Junho 22 15:04:55 UTC 2011
Pessoal, bom dia!
Tenho um servidor com Ubuntu-Server 10.04 LTS com Squid e Nagios. Encontrei na internet um plugin de monitoramento, o check_squid (em anexo e pode ser baixado em http://workaround.org/sites/default/files/check_squid.pl.txt).
Tive alguns problemas para implementar-lo, porém não encontrei soluções na Internet, ou nada que descrevesse como corrigir.
Depois de perder algumas horas testando e fuçando, entrontrei as soluções e resolvi compartilhar com vcs.
Problema 1 - Dependencias:
----------------------------------
Após colocar o plugin na pasta /usr/lib/nagios/plugins e testar-lo pelo console (./check_squid –H xxx.xxx.xxx.xxx –p xxxx) o plugin informa que não foi possível localizar o módulo Perl Nagios::Plugin.
Solução
--------
Instalar as dependencias necessárias com o apt-get. Por algum motivo, a instalação pelo CPAN não funfa .
# apt-get install libnagios-plugin-perl
O check_squid utiliza o binário squidclient para fazer as leituras necessárias, portanto intale-o:
# apt-get install squidclient
Problema 2 - O check_squid não localiza o squidclient em /usr/sbin/squidclient
----------------------------------
Ao executar (novamente) o plugin pelo console, a mensagem abaixo é exibida:
sh: /usr/sbin/squidclient: not found
SQUID CRITICAL - squidclient error
Solução
-------
Por default, o plugin espera que o squidclient esteja no diretório /usr/sbin/squidclient. Porém no Ubuntu, o apt-get instala o mesmo em /usr/bin/squidclient
Basta definir o parâmetro -s no comando
# ./check_squid -H ip.da.interface -p porta -s /usr/sbin/squidclient
Problema 3 - Erro script Perl
----------------------------------
Após instalar as dependencias e tentar rodar o plugin pelo console novamente, vário erros relacionados ao script Perl (abaixo) aparecem e o resultado do plugin não é exibido.
Use of uninitialized value in sprintf at /usr/local/share/perl/5.10.1/Nagios/Plugin/Performance.pm line 68.
Solução
-------
Como o meu squid.conf está configurado para escutar somente em uma interface (http_port ip.da.inter.face:porta) o mesmo não aceita acesso ao cache_mgr pelo 127.0.0.1, justamente porque o squid não está escutando a porta e o cache_mgr, por default, só aceita conexões ao cache_mgr via localhost. A solução foi alterar a ACL e permitir o acesso a partir do IP da interface.
# vim /etc/squid3/squid.conf
## Adicionar a linha na seção de ACLs
acl ipsquid src ip.da.inter.face # Mesmo IP que esta no parâmetro http_port
## Alterar a linha http_access allow manager localhost para:
http_access allow manager ipsquid
Para testar se o squidclient vai retornar os valores necessários para a leitura do plugin, utilize o seguinte comando:
# squidclient -h ip.da.inter.face -p porta mgr:info
O squidlclient deve retornar diversas informações relacionados ao cache.
****** Dica: Utilize # ./check_squid --help e o plugin mostrará os parâmetros que podem ser utilizados com ele. Tem várias opções muito interessantes!!
Bom, é isso!!
Abraços!
Regards / Atenciosamente,
---
Thiago Vitorino
The information contained in this message is privileged and intended only for the recipients named. If the reader is not a representative of the intended recipient, any review, dissemination or copying of this message or the information it contains is prohibited. If you have received this message in error, please immediately notify the sender, and delete the original message and attachments.
Please consider the environment before printing this email.
More information about the ubuntu-br
mailing list