[squid-users] Record all traffic option?

From: la. w <[email protected]>
Date: Tue, 4 Feb 2003 15:41:26 -0800

Last time I asked about this I got the impression that I was 'on my own' and this functionality wasn't included in a standard squid distribution:

In rough order of complexity:

1) Be able to log squid traffic to a file: not just headers or status, but content of requests, posts, cookies, and responses to such.
        ex.
                log "all_traffic" (require quotes, " or ')

2) Allow more than files:
        examples:
                log "|my_logger_prog
                log "|user@host:remoteprog args"
        
3) separate for 'from clients' / 'from servers'
        ex:
                log from [all] clients "äll_client_traff"
                log from [all] servers "all_server_traff"

        (3a) This could be evolved orthogonally with filter specs using etherfind or ethereal type grammars (presumably, one more appropriate for squid, but this is a tangent).

4) redirection (filtering), io-capture, _with_ _session_ _support_.
        Conceptually, the simplest would be 1 process that handles 1
        request at a time using 2 or 4 pipes (1 or 2 channels).

        First) to pre-process a client request before being sent out to server.
        Second) to post-process output from server before it is returned to the client.
        Either stage being 'optional', of course if no <recording | logging | processing> is desired.

        A more detailed description _might_ be:

        open 2, 4 or 6 "pipes" to 2nd process(es) used as follows:
        ---first squid receives request from client---
        In any communication to a 'helper' process, a "SESSID" tag would be
        pre-pended but removed before squid send text to server or client)
                not in cache:
                        pipe 1: (squid)-> (proc) # (<SESSID>+raw client request)
                        pipe 2: (proc) -> (squid) # (<SESSID>+client request)
                        ---squid sends request to server---
                        ---squid gets reply from server---
                        pipe 3: (squid) -> (proc) # (<SESSID>+raw server text)
                        pipe 4: (proc) -> (squid) # (<SESSID>+server text to be cached)
                        ---squid caches data if needed---
                in cache:
                --squid retrieves data--
        --then--
        pipe 5: (squid) -> (proc) # (<SESSID>+server's reply (not cached mods))
        pipe 6: (proc) -> (squid) # (<SESSID>+post cache processing)
        ---squid sends text to client as response---

        Notes: SESSID tag could allow 1 "proc" to service multiple requests as responses may be asynchronous.
        Or...1 proc/session and no SESSID, but each invocation of 'proc' can only handle 1 session at a time

        I suppose this also could be looked at as a 'feature'(s) proposal -- I keep rehashing it every several weeks but haven't gotten a chance to even look at doing it myself (too much work for too few allowed keyboard hours-(RSI)). It's a pain when you have more ideas than hand & coding power to implement.

        Feel free to shred the design ideas with alternates -- I can either
justify, ask why, or just go "yeah, what 'they' said" and roll it into
any future plans/discussions...I'm a firm believer in going for quality of design -- though sometimes, I, like others, just settle for what barely scrapes by (yeah, I'm part of the global software QA problem in that sense -- my expectations have been lowered (*sigh*) ).

-Linda
Received on Tue Feb 04 2003 - 16:41:33 MST

This archive was generated by hypermail pre-2.1.9 : Tue Dec 09 2003 - 17:13:14 MST