Need some guidance for setting upstream logs in NGINX TCP Load Balancer

Sergey A. Osokin osa at freebsd.org.ru
Wed Jul 21 10:21:00 UTC 2021


Hi Akki,

hope you're doing well these days.

On Tue, Jul 20, 2021 at 02:05:41PM +0530, awani227 wrote:
> Hi,
> 
> I'm using 'nginx/1.21.1' for load balancing TCP connection for DBs
> like Teradata, Netezza, Oracle and MySQL. I'm using stream directive
> for it as per the guidance
> 'https://docs.nginx.com/nginx/admin-guide/load-balancer/tcp-udp-load-balancer/' . 
> 
> Following is my stream configuration  (/etc/nginx/nginx.conf)
> 
> stream {
> 
>     log_format  timed_combined  '$remote_addr - [$time_local] $session_time $msec $status $protocol ua="$upstream_addr" "$upstream_connect_time" "$upstream_response_time"';
>     access_log /var/log/nginx/access.log timed_combined;
> 
>     upstream stream_backend_mysql {
>         hash $remote_addr;
>         server 192.168.122.251:3306;
>         server 192.168.122.252:3306;
>     }
> 
>     server {
>         listen 3306;
>         proxy_pass stream_backend_mysql;
>         proxy_connect_timeout 1s;
>     }
> }
> 
> I'm able to establish connection for mysql in this setup, but when
> I'm adding the log_format directive nginx is giving following error,
> 
> 'nginx: [emerg] unknown "upstream_response_time" variable' 

The $upstream_response_time embedded variable is available with
ngx_http_upstream module,
https://nginx.org/en/docs/http/ngx_http_upstream_module.html#variables

For ngx_stream_upstream you can utilize the following variables:
https://nginx.org/en/docs/stream/ngx_stream_upstream_module.html#variables

-- 
Sergey


More information about the nginx mailing list