Forum Discussion

Mike_P_'s avatar
Mike_P_
Icon for Nimbostratus rankNimbostratus
Nov 03, 2017

A Reliable iRule has started to mark virtual servers as up when they are not

I have been using an irule to send logs to a high speed logging system as a requirement from our security folks. For a long time it has been fine, but after recent upgrades I have noticed it is marking virtual servers as up even when the pool members are down. I have looked at the code but nothing stands out to me as far as why it would cause this. Asking for another set of eyes out there to see if something stands out to them. Thanks!

 

when HTTP_REQUEST {
    set hsl [HSL::open -proto UDP -pool hsl_pool]
    upvar 0 tcl_platform static::tcl_platform
    set vhost [HTTP::host]:[TCP::local_port]
    set url [HTTP::uri]
    set method [HTTP::method]
    set user_agent [HTTP::header "User-Agent"]
    set tcp_start_time [clock format [clock seconds] -format "%m/%d/%Y %H:%M:%S"]
    set virtual_server [LB::server]
    set referer [HTTP::header "Referer"]
}

when HTTP_RESPONSE {
   set client [IP::client_addr]:[TCP::client_port]
   set node [IP::server_addr]:[TCP::server_port]
   set status [HTTP::status]
  log connection info
  Log HTTP request via syslog protocol as local7.info; see RFC 3164 for more info
  local3 = 19; info = 6; 8*19 + 6 = 158
  HSL doesn't actually talk 'syslog-ng' must be something else.
 HSL::send $hsl "<158> hsl_client_logging_irule $tcp_start_time|$static::tcl_platform(machine)|$vhost|$virtual_server|$client|$node|

$url|$method|$status|$referer|$user_agent"
}