在经典型负载均衡器的访问日志格式中,有些字段可能返回空值,如“User-Agent”和“Referer”。这可能会导致分析日志时丢失有用的信息。为了解决这个问题,可以采用以下两种方法之一:
方法一:在创建经典型负载均衡器时,将访问日志格式中需要的字段全部包含进去,如下所示:
{ "Format": "timestamp client-ip:port backend-ip:port request-processing-time backend-processing-time response-processing-time elb-status-code backend-status-code received-bytes sent-bytes request-status-enum user-agent" }
这样,即使某些字段为空,也可以在访问日志中看到它们。需要注意的是,若要更改日志格式,必须删除或重置现有负载均衡器,重新创建新的负载均衡器。
方法二:使用AWS Lambda函数,将访问日志发送到AWS Kinesis Firehose。然后在Firehose中使用Lambda函数对访问日志进行转换和加工,以填充空字段。具体代码实现方式可以参考AWS官方文档中的示例。
这样,访问日志中的空字段就可以得到填充,方便进行后续的分析和处理。