
액세스 로그에 저장된 필드 내용을 자르는 방법이 있습니까?
User-Agent의 처음 10자만 유지하고 싶습니다.
답변1
먼저 잘린 사용자 에이전트가 포함된 사용자 지정 변수를 도입합니다. 이를 위해 map
일반 사용자 에이전트 변수에 대한 지시어를 사용합니다 $http_user_agent
. 지도 모듈에 대한 문서는 여기에 있습니다:http://nginx.org/en/docs/http/ngx_http_map_module.html. 그런 다음 지시문을 사용하여 로깅 형식을 구성합니다 log_format
. 다음 문서를 참조하세요.https://docs.nginx.com/nginx/admin-guide/monitoring/logging/. 마지막으로 access_log
사용자 정의 로깅 형식을 사용하도록 지시합니다 .
요약하자면:
# ...
http {
map $http_user_agent $trunc_agent {
default "";
"~*(?P<tr>.{0,10}).*" $tr;
}
log_format myformat '[other fields] "$trunc_agent"';
access_log [logfile] myformat;
}
# ...