Plotando banda "agregada" pelo squid no MRTG
Tenho usado o squid a algum tempo e algumas vezes pensei que seria util ter um gráfico de quanta banda ele está economizando, ou seja, agregando ao meu link.
Semana passada tirei um tempo e montei o esquema que está ai em baixo.
Descobri que com o proxy transparente chegamos a picos de 1 megabit de banda "agregada" no horário comercial, e uma media de +/- 650 kbps neste mesmo horário.
Isto p/ um link de 6 Mbps a 100% neste horário.
Com o preço que custa meu link posso dizer que o meu squid paga o seu hardware a cada 30 dias ou pouco mais :). Otimo!!!
Segue o esquema.
[]'s
------------ arquivo .cfg do MRTG --------------------
Target[BandaAgregada]: `/usr/local/mrtg/run/external/banda-squid.sh`
MaxBytes[BandaAgregada]: 1000000
Xsize[BandaAgregada]: 600
Title[BandaAgregada]: Squid Cache - Banda Agregada
Options[BandaAgregada]: bits, growright
PageTop[BandaAgregada]: <h1>Banda agregada pelo Squid Cache</h1>
YLegend[BandaAgregada]: Bits por segundo
LegendI[BandaAgregada]: Banda Agregada
LegendO[BandaAgregada]: Banda Agregada
#ShortLegend[BandaAgregada]:
kMG[BandaAgregada]: k,M,G,T
-------- script banda-squid.sh ---------------
#! /bin/sh
IP_SQUID=ip do squid
SNMP_GET_EXEC=/usr/local/ucd-snmp/bin/snmpget
CACHE_SERVER_IN_KB=$($SNMP_GET_EXEC -p 3401 IP_SQUID public enterprises.3495.1.3.2.1.12.0)
CACHE_SERVER_IN_KB=$(echo $CACHE_SERVER_IN_KB | cut -d":" -f2)
CACHE_HTTP_OUT_KB=$($SNMP_GET_EXEC -p 3401 IP_SQUID public enterprises.3495.1.3.2.1.5.0)
CACHE_HTTP_OUT_KB=$(echo $CACHE_HTTP_OUT_KB | cut -d":" -f2)
DELTA=$(( $CACHE_HTTP_OUT_KB - $CACHE_SERVER_IN_KB ))
echo $DELTA
echo $DELTA
----------------------------------------------
Plotando banda "agregada" pelo squid no MRTG
Opa, legal esse seu esquema.
Teria como explicar como é o funcionamento do mesmo. O mrtg está rodando na mesma máquina que tem o squid?
Tipo eu tenho o mrtg rodando em uma máquina separada dos hosts que monitoro. Em consequencia meus proxys não estão na máquina onde rodo o mrtg. Como eu faria nesse caso.
Plotando banda "agregada" pelo squid no MRTG
O MRTG e o squid estão em maquinas diferentes.
A informação sobre o tráfego do squid é recuperada via SNMP.
Vc precisa de um "cliente" SNMP instalado, no caso foi usado o snmpget.
Caso seu linux não possua esta ferramenta, baixe as fontes do ucd-snmp, compile e instale.
Seu squid precisa ter sido compilado com suporte a SNMP, ou vc vai ter de recompila-lo.
[]'s
Plotando banda "agregada" pelo squid no MRTG
É preciso ter esse "echo $DELTA" duas vezes no final do script?
É preciso configurar alguma acl no squid?
Plotando banda "agregada" pelo squid no MRTG
O MRTG exige dois valores para cada gráfico, então ou o script faz o output duplo ou vc teria de chama-lo duas vezes.
Sobre as ACL, vc precisa liberar o acesso SNMP para sua maquina com o MRTG e bloquear todo o resto:
acl snmppublic snmp_community public
acl mrtg_host src ???.???.???.???/255.255.255.255
snmp_access allow snmppublic mrtg_host
snmp_access deny all
As duas OID's que o script está lendo em seu squid são:
Tráfego (HTTP) recebido dos servidores da internet e
Tráfego (HTTP) enviado aos clientes.
A diferença entre um e outro é o que seu cache "tirou do bolso".
[]'s
Plotando banda "agregada" pelo squid no MRTG
Coloquei pra rodar com algumas modificações para funcionar com o pacote net-snmp. Ficou muito show!!!!