总体思路
步骤一 输出可观测的负载均衡日志
示例配置
http {
# 带上游指标的访问日志
log_format lb '$remote_addr - $remote_user [$time_local] '
'"$request" $status $body_bytes_sent '
'"$http_referer" "$http_user_agent" '
'"$http_x_forwarded_for" '
'upstream=$upstream_addr '
'rt=$request_time u_rt=$upstream_response_time '
'u_status=$upstream_status';
access_log /var/log/nginx/access_lb.log lb;
upstream backend {
least_conn; # 动态策略示例:最少连接
server 10.0.1.11:8080 weight=3 max_fails=2 fail_timeout=30s;
server 10.0.1.12:8080 weight=1 max_fails=2 fail_timeout=30s;
server 10.0.1.13:8080 backup;
}
server {
listen 80;
location / {
proxy_pass http://backend;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
}
# 四层转发(如 TCP)日志示例
stream {
log_format stream_lb_json escape=json
'{'
'"timestamp":"$time_iso8601",'
'"remote_addr":"$remote_addr",'
'"protocol":"$protocol",'
'"status":"$status",'
'"bytes_sent":"$bytes_sent",'
'"bytes_received":"$bytes_received",'
'"session_time":"$session_time",'
'"upstream_addr":"$upstream_addr",'
'"upstream_connect_time":"$upstream_connect_time"'
'}';
access_log /var/log/nginx/stream_access.log stream_lb_json;
upstream graylog_servers {
server 10.10.253.101:9000;
server 10.10.253.102:9000 backup;
server 10.10.253.103:9000 backup;
}
server {
listen 9000;
proxy_pass graylog_servers;
}
}
要点:
步骤二 用日志分析评估与决策
步骤三 基于日志洞察进行负载均衡优化
步骤四 在容器平台的落地