Obtendo informações sobre seu Squid em produção com o squidclient.
Autor: X4ND3M4C | Publicado: 2010-11-25T11:53:00-08:00

Olá comunidade. Hoje trago uma dica de utilitário de linha de comando para acesso rápido a informações sobre o squid em ambiente de produção, o squidclient.OBS: Esse post não irá tratar da instalação do squid uma vez que existem diversos tutoriais para tal disponíveis na web.O squid é um proxy bastante poderoso, porém nem sempre é trivial fazer o dimensionamento do mesmo para um ambiente uma vez que existem diversas variáveis envolvidas como número de usuários acessando o proxy simultâneamente, quantidade de memória necessária, número suficiente de "file descriptors", a quantidade necessária de instâncias de autenticação quando em conjunto com o AD ou outra fonte de autenticação, etc.Para facilitar os ajustes necessários a sua infraestrutura podemos utilizar a ferramenta squidclient.No ubuntu server instalamos o utilitário diretamente dos repositórios com o seguinte comando:apt-get install squidclientApós a instalação faremos nossa primeira verificação.squidclient mgr:infoSerá exibida uma tela conforme a tela abaixo:HTTP/1.0 200 OKServer: squidDate: Thu, 25 Nov 2010 20:08:11 GMTContent-Type: text/plainExpires: Thu, 25 Nov 2010 20:08:11 GMTX-Cache: MISS from meuservidorX-Cache-Lookup: MISS from meuservidor:3128Via: 1.0 meuservidor:3128 (squid)Connection: closeSquid Object Cache: Version 2.7.STABLE7Start Time: Thu, 18 Nov 2010 14:41:54 GMTCurrent Time: Thu, 25 Nov 2010 20:08:11 GMTConnection information for squid: Number of clients accessing cache: 604 Number of HTTP requests received: 10278482 Number of ICP messages received: 0 Number of ICP messages sent: 0 Number of queued ICP replies: 0 Number of HTCP messages received: 0 Number of HTCP messages sent: 0 Request failure ratio:  0.02 Average HTTP requests per minute since start: 987.7 Average ICP messages per minute since start: 0.0 Select loop called: 91903423 times, 6.794 ms avgCache information for squid: Request Hit Ratios: 5min: 0.0%, 60min: 0.0% Byte Hit Ratios: 5min: 7.6%, 60min: 12.0% Request Memory Hit Ratios: 5min: 0.0%, 60min: 0.0% Request Disk Hit Ratios: 5min: 0.0%, 60min: 0.0% Storage Swap size: 0 KB Storage Mem size: 108 KB Mean Object Size: 0.00 KB Requests given to unlinkd: 0Median Service Times (seconds)  5 min    60 min: HTTP Requests (All):   0.05331  0.00379 Cache Misses:          0.09736  0.09219 Cache Hits:            0.00000  0.00000 Near Hits:             0.00000  0.00000 Not-Modified Replies:  0.00000  0.00000 DNS Lookups:           0.05815  0.07284 ICP Queries:           0.00000  0.00000Resource usage for squid: UP Time: 624377.489 seconds CPU Time: 4717.215 seconds CPU Usage: 0.76% CPU Usage, 5 minute avg: 0.65% CPU Usage, 60 minute avg: 0.89% Process Data Segment Size via sbrk(): 39908 KB Maximum Resident Size: 174464 KB Page faults with physical i/o: 1Memory usage for squid via mallinfo(): Total space in arena:   39908 KB Ordinary blocks:        23498 KB   4284 blks Small blocks:               0 KB      0 blks Holding blocks:          1108 KB      1 blks Free Small blocks:          0 KB Free Ordinary blocks:   16409 KB Total in use:           24606 KB 60% Total free:             16409 KB 40% Total size:             41016 KBMemory accounted for: Total accounted:         9511 KB memPoolAlloc calls: 1287300273 memPoolFree calls: 1287290977File descriptor usage for squid: Maximum number of file descriptors:   4096 Largest file desc currently in use:   1151 Number of file desc currently in use:  584 Files queued for open:                   0 Available number of file descriptors: 3512 Reserved number of file descriptors:   100 Store Disk files open:                   0 IO loop method:                     epollInternal Data Structures:     29 StoreEntries     29 StoreEntries with MemObjects     26 Hot Object Cache Items      0 on-disk objectsObserve que é possível verificar diversos pontos de interesse como a quantidade de "file descriptors" utilizada, a quantidade de memória utilizada, a quantidade de clientes acessando o cache, dentre outros.Também podemos obter informações mais detalhadas sobre opções específicas. As opções possíveis podem ser exibidas com o comando:squidclient mgr:menuHTTP/1.0 200 OKServer: squidDate: Thu, 25 Nov 2010 20:13:18 GMTContent-Type: text/plainExpires: Thu, 25 Nov 2010 20:13:18 GMTX-Cache: MISS from meuservidorX-Cache-Lookup: MISS from meuservidor:3128Via: 1.0 meuservidor:3128 (squid)Connection: close mem                    Memory Utilization public cbdata                 Callback Data Registry Contents public events                 Event Queue public squidaio_counts        Async IO Function Counters public coss                   COSS Stats public diskd                  DISKD Stats public config                 Current Squid Configuration hidden ipcache                IP Cache Stats and Contents public fqdncache              FQDN Cache Stats and Contents public idns                   Internal DNS Statistics public ntlmauthenticator      NTLM User Authenticator Stats public external_acl           External ACL stats public http_headers           HTTP Header Statistics public menu                   This Cachemanager Menu public shutdown               Shut Down the Squid Process hidden reconfigure            Reconfigure the Squid Process hidden offline_toggle         Toggle offline_mode setting hidden info                   General Runtime Information public filedescriptors        Process Filedescriptor Allocation public objects                All Cache Objects public vm_objects             In-Memory and In-Transit Objects public openfd_objects         Objects with Swapout files open public pending_objects        Objects being retreived from the network public client_objects         Objects being sent to clients public io                     Server-side network read() size histograms public counters               Traffic and Resource Counters public peer_select            Peer Selection Algorithms public digest_stats           Cache Digest and ICP blob public 5min                   5 Minute Average of Counters public 60min                  60 Minute Average of Counters public utilization            Cache Utilization public histograms             Full Histogram Counts public active_requests        Client-side Active Requests public store_digest           Store Digest public storedir               Store Directory Stats public store_check_cachable_stats storeCheckCachable() Stats public store_io               Store IO Interface Stats public pconn                  Persistent Connection Utilization Histograms public refresh                Refresh Algorithm Statistics public delay                  Delay Pool Levels public forward                Request Forwarding Statistics public client_list            Cache Client List public asndb                  AS Number Database public server_list            Peer Cache Statistics publicCom as informações providas pelo squidclient podemos dimensionar de forma adequada o servidor squid aos mais diversos cenários, sempre com uma visão em tempo real do ambiente.É isso ai, um grande abraço a todos...