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

