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.
-- 
Mais sobre o Ubuntu em português: http://www.ubuntu-br.org/comece

Lista de discussão Ubuntu Brasil
Histórico, descadastramento e outras opções:
https://lists.ubuntu.com/mailman/listinfo/ubuntu-br

Responder a