GoAccess 사용자 정의 로그 형식 상세 및 사용 log_format

이전 GoAccess 설치를 수행 한 후, 기사의 내용은 사용자 정의 log_format 해결 지침은 주로

이 문서는 주로 두 부분으로 나뉘어 :

  • 첫째, 공식 사용자 지정 형식
  • 둘째, 실험 로그의 nginx 구문 분석이 사용자 정의 형식

대부분의 말은 GoAccess가의 nginx-log_format 형식을 고정 해결하기 위해 인터넷을 사용하는
등 :

nginx log_format配置:
log_format  main  '$remote_addr - $remote_user [$time_local] requesthost:"$http_host"; "$request" requesttime:"$request_time"; '
        '$status $body_bytes_sent "$http_referer" - $request_body'
        '"$http_user_agent" "$http_x_forwarded_for"';

GoAccess log_format配置:
log-format %h - %^ [%d:%t %^] requesthost:"%v"; "%r" requesttime:"%T"; %s %b "%R" - %^"%u"

그러나 사실, 많은 경우에, 서버는 Nginx에 이미 존재하고 로그 파일이 너무 log_format nginx를 구성 불편 조정을 조정할 수 있습니다 GoAccess 이전 구성 자신의 log_format에 따라 경우에, 다른 것들에 사용될 수있다 구성 log_format.

공식 매뉴얼 :

GoAccess는 가상 웹 로그 형식을 해결하고, 임의의 사용자 지정 형식 문자열을 허용 할 수 있습니다.

  • 시간 형식 파라미터 : 일반 및 특수 문자 형식 지정자의 조합을 포함하는 공백 문자 지정된 로그 시간 포맷, 다음 시간 형식.
    예를 들면 : 그들은 퍼센트 기호 (%)를 시작으로 구성되어 있습니다. % T 또는 % H % M : %의 S .
  • 날짜 형식 상 매개 변수 : 날짜 형식의
    일반 및 특수 문자 형식 지정자의 조합을 포함하는 공백 문자, 로그 지정된 날짜 형식, 다음 후.
    예를 들면 : 그들은 퍼센트 기호 (%)를 시작으로 구성되어 있습니다.

주 : 타임 스탬프 계산 마이크로 주어진 경우, 매개 변수 F %는 시간 포맷으로 사용되어야한다.

  • 파라미터 그럴싸 로그 : 로그 포맷 공백이나 탭 세퍼레이터 (\ t) 다음에, 로그 형식 문자열을 지정한다.

상세한으로 특별한 형식 지정자

  • X %의 시간과 날짜 포맷 형식 변수 날짜 및 시간 필드가 일치한다. 대신 두 개의 독립 변수의 장면의 날짜와 시간에 대한 타임 스탬프를 사용.
  • % T 경기 시간 필드의 시간 형식의 변수입니다.
  • % 날짜 형식 변수의 날짜 필드를 일치 D.
  • %의 V는 서버 이름 (또는 가상 호스트 서비스 영역)의 정식 이름에 따라 설정된다.
  • % 문서 인증 사용자 ID에 의해 결정 E HTTP 요청.
  • % H의 호스트 (클라이언트 IP 주소, IPv4 또는 IPv6).
  • % 클라이언트가 요청한 행의 R 번호. 이러한 요청은 (단일 및 이중 인용 부호) 구분 기호 부분이 참조에 의해 해결 될 수를 사용합니다. 별도의 필드를 해결하기 위해 형식 조합 : 그렇지 않으면, 필요 (%의 m, % U %의 Q와 % H 예를 들어) 특별한 형식 지정자를 사용합니다.

注意: %의 R도 사용할 %의 m, % U % q를 귀하의 요청에 %의 H 조합 있지만 둘 수 있으며, 완전한 요청에 사용될 수있다.

  • 방법 %의 m 요청.
  • % U는 URL을 요청했다.

注意: 쿼리 문자열 % U 경우, % q를 사용해야합니다. 경로가 어떤 URL 쿼리 문자열을 포함하지 않는 경우, 당신은 나중에 요청에 추가 된 % q를 쿼리 문자열을 사용할 수 있습니다.

  • % Q 쿼리 문자열.
  • % H 요청 프로토콜.
  • % S 서버는 클라이언트의 상태 코드를 반환합니다.
  • % B는 클라이언트 객체의 크기를 반환합니다.
  • % R HTTP 요청 "리퍼러"값.
  • % U HTTP 요청 "해당 UserAgent"값.
  • % D 요청 처리 시간은 마이크로 사용 소모.
  • % T 시간 처리 요구를 소모하고, 제 2 대역을 사용하여 밀리.
  • L %의 시간을 밀리 십진수 계산에 처리 요구를 소모.
  • % ^이 필드를 무시한다.
  • 그것이 null 이외의 문자 (! isspace와)를 찾을 때까지 % ~ 로그 문자열을 구문 분석하기 위해 계속합니다.
  • 호스트 ~ H X-전달-의 경우 (XFF) 필드 (클라이언트 IP 주소, IPv4 또는 IPv6).

사용자 정의 log_format 분석 실험

      이 해결의 nginx 로그에 대한 수요는하지만, nginx를이 GoAccess 구문 분석을 사용하여 nginx_logformat 때문에 조정하지 않고, 이미 구성되어 log_format 때문에

종래 log_format 파라미터 설정

nginx log_format配置:
log_format  main  '$remote_addr - $remote_user [$time_local] requesthost:"$http_host"; "$request" requesttime:"$request_time"; '
        '$status $body_bytes_sent "$http_referer" - $request_body'
        '"$http_user_agent" "$http_x_forwarded_for"';

GoAccess log_format配置:
log-format %h - %^ [%d:%t %^] requesthost:"%v"; "%r" requesttime:"%T"; %s %b "%R" - %^"%u"

nginx를-log_format를 다음과 같이 내 구성은

log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                  '$status $body_bytes_sent "$http_referer" '
                  '"$http_user_agent" "$http_x_forwarded_for" $upstream_addr $request_time';

Nginx에 때문에 log_format 구성 goaccess는 다음 상단 특별한 의미의 형식에 따라, 하나 개의 관계를 하나 여야합니다
去掉requesthost、"%v"、requesttime,后边加上 - %^ %T

注:一定要仔细,一个log_format配置的字符中有一个空格,那另外一个log_format配置中也必须有一个空格

그 결과 goaccess 사용자 정의 log_format

log-format %h - %^ [%d:%t %^]; "%r" %s %b "%R" - %^"%u" - %^ %T

정상적인 상황에서는 시간 형식과 날짜 형식은 구성을 조정하지 않습니다
이 구성의 I의 goaccess는 않도록 다음과

time-format %T
date-format %d/%b/%Y
log-format %h - %^ [%d:%t %^]; "%r" %s %b "%R" - %^"%u" - %^ %T

이 프로파일은 다음 구문 분석 로그에 사용됩니다
(로그 파일이 큰 경우, 구문 분석 구문 분석 단어가 나타납니다)

[root@k8s-etcd-2 ~]# /usr/local/bin/goaccess -a -c -d -f /var/log/nginx/access.log -p /usr/local/etc/goaccess/goaccess.conf > /home/test.html
Parsing... [215,438] [35,906/s]

분석의 완료를 기다리지 후에는 웹 페이지를 볼 수 있습니다

출시 다섯 개 원래 기사 · 원의 칭찬 0 · 조회수 1424

추천

출처blog.csdn.net/weixin_43860781/article/details/104668332