For more information regarding the security incident at F5, the actions we are taking to address it, and our ongoing efforts to protect our customers, click here.

Forum Discussion

yadgayan's avatar
yadgayan
Icon for Cirrus rankCirrus
Sep 21, 2023
Solved

iRule to log traffic details

Hi,

I want to log below information to syslog via iRule

Request headers including e.g. tap-*, X-* (e.g. X-Forwarded-For & X-Forwarded-Port )
src IP
src Port
request url
referral url
method
response
sessionid
x_uri (assume included from F5)
timestamp (ms granular)

Any one has iRule handy for this or covers partially? 

 

Thank you, 

  • Hi yadgayan , 

    U can use this : 

    when HTTP_REQUEST {
        log local0. "HTTP Method = [HTTP::method]"
        log local0. "HTTP URI = [HTTP::uri]"
        log local0. "HTTP Path = [HTTP::path]"
        log local0. "HTTP Query = [HTTP::query]"
        log local0. "HTTP Version = [HTTP::version]"
        log local0. "HTTP Host Header = [HTTP::host]"
        log local0. "HTTP User Agent Header = [HTTP::header value "user-agent"]"
    }
    when HTTP_RESPONSE {
        log local0. "HTTP Status = [HTTP::status]"
        log local0. "HTTP version = [HTTP::version]"
        log local0. "HTTP Content Length Header = [HTTP::header value "content-length"]"
    }

    - you can remove any info you don't want to log it. 
    refer to this Link to find our more : https://my.f5.com/manage/s/article/K42210592

    I haven't tested this irule , but it should work. 

    By the way : you can use High speed logging ( HSL ), it's pretty good to use : 
    https://my.f5.com/manage/s/article/K00847516

    I hope this helps u 🙂 

8 Replies

  • Hi yadgayan , 

    U can use this : 

    when HTTP_REQUEST {
        log local0. "HTTP Method = [HTTP::method]"
        log local0. "HTTP URI = [HTTP::uri]"
        log local0. "HTTP Path = [HTTP::path]"
        log local0. "HTTP Query = [HTTP::query]"
        log local0. "HTTP Version = [HTTP::version]"
        log local0. "HTTP Host Header = [HTTP::host]"
        log local0. "HTTP User Agent Header = [HTTP::header value "user-agent"]"
    }
    when HTTP_RESPONSE {
        log local0. "HTTP Status = [HTTP::status]"
        log local0. "HTTP version = [HTTP::version]"
        log local0. "HTTP Content Length Header = [HTTP::header value "content-length"]"
    }

    - you can remove any info you don't want to log it. 
    refer to this Link to find our more : https://my.f5.com/manage/s/article/K42210592

    I haven't tested this irule , but it should work. 

    By the way : you can use High speed logging ( HSL ), it's pretty good to use : 
    https://my.f5.com/manage/s/article/K00847516

    I hope this helps u 🙂 

  • i added all into single. 

     

    when HTTP_REQUEST {

        log local0. "HTTP Method = [HTTP::method] Client = [IP::client_addr] HTTP URI = [HTTP::uri] HTTP Path = [HTTP::path] HTTP Query = [HTTP::query] HTTP Version = [HTTP::version] HTTP Host Header = [HTTP::host] HTTP User Agent Header = [HTTP::header value "user-agent"] Session_ID=[ACCESS::session data get session.user.sessionid] Assigned PPP Dynamic IPv4: [ACCESS::session data get session.assigned.clientip] NA Resource: [ACCESS::session data get session.assigned.resources.na] Client IP: [ACCESS::session data get session.user.clientip]"

    }

    when HTTP_RESPONSE {

        log local0. "HTTP Status = [HTTP::status] HTTP version = [HTTP::version] HTTP Content Length Header = [HTTP::header value "content-length"]"

    }

     

    will this cover all?

    • yadgayan , 
      yes all in same irule , this will be good. 

      but monitor your system resources utilization ( CPU , Memory ) 

      Go to Statistics >>> Performance report >>>> then have a look in CPU & memory graphs and curves after adding this irule. 

      it's recommended to monitor that because irules consumes cpu cycles .

  • its working but how i log meta of a session (e.g. cookie, transaction)?

  • yadgayan  - If your post was solved it would be helpful to the community to select Accept As Solution.
    Thanks for joining and being part of our community.

    • LiefZimmerman's avatar
      LiefZimmerman
      Icon for Admin rankAdmin

      Since there was a bit of modification on the original suggestion I've also accepted your clarification as part of the solution.
      Thanks for following up.